#r #packages #s4
#r #пакет #r-s4
Вопрос:
Я использовал пакеты topGO в R для анализа обогащения генов с помощью следующего кода:
sampleGOdata <- new("topGOdata", description = "Simple session", ontology = "BP",
allGenes = geneList, geneSel = topDiffGenes, nodeSize = 10,
annot = annFUN.db, affyLib = affyLib)
resultFisher <- runTest(sampleGOdata, algorithm = "classic", statistic = "fisher")
allRes <- GenTable(sampleGOdata, classicFisher = resultFisher, orderBy = "fisher",
ranksOf = "classicFisher",topNodes = 10)
Я хочу увидеть и изменить RunTest
функцию и GenTable
функцию для изменения ResultTable
, но я не знаю, как показать функцию. С getAnywhere("GenTable")
я не получаю жесткий код, который я хочу.
getAnywhere("GenTable")
Был найден единственный объект, соответствующий ‘GenTable’
Он был найден в следующих местах
package:topGO namespace:topGO
со значением
function (object, ...) standardGeneric("GenTable") <environment: 0x16a30c10> attr(,"generic") [1] "GenTable" attr(,"generic")attr(,"package") [1] "topGO" attr(,"package") [1] "topGO" attr(,"group") list() attr(,"valueClass") character(0) attr(,"signature") [1] "object" attr(,"default") `NULL` attr(,"skeleton") function (object, ...) stop("invalid call in method dispatch to "GenTable" (no default method)", domain = NA)(object, ...) attr(,"class") [1] "standardGeneric" attr(,"class")attr(,"package") [1] "methods"
Как я могу это сделать?
Ответ №1:
Используйте getMethod()
и укажите подпись. В вашем случае это может быть, например :
getMethod("GenTable","topGOdata")
чтобы показать настраиваемый метод для объектов topGOdata. В этом случае существует только метод, определенный для объектов topGOdata. В случае, если существуют методы с разными сигнатурами, showMethods()
мы сообщим вам, какие из них. В вашем случае :
showMethods("GenTable")
# Function: GenTable (package topGO)
# object="topGOdata"
Вы можете получить код для нужной подписи, указав его в getMethod()
функции.
Комментарии:
1. В случае, если функция (метод), которую вы ищете, является невидимой функцией, которую вам нужно использовать
getAnywhere()
. Например, я хочу найти исходный код метода, связанного с функцией summary() для пространственной пробит-модели. Затемmethods(summary)
показывает мне все методы, связанные с кратким описанием функции. Методsummary.ProbitSpatial
является невидимым методом. ЗатемgetAnywhere(summary.ProbitSpatial)
приводится исходный код. adv-r.had.co.nz/S3.html
Ответ №2:
Я знаю, что это старый вопрос, но для полноты картины для будущих поисковиков, есть также функция, называемая
selectMethod
это отличается от GetMethod тем, что вы можете использовать наследование. Вот как я нашел исходный код для универсальной функции, которая имеет несколько подписей.
Комментарии:
1. была бы признательна за более полную демонстрацию того, как
selectMethod
работает и отличается отgetMethod