我使用R中的topGO包来分析基因富集,使用以下代码:
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"
我该怎么做?
答案 0 :(得分:32)
使用getMethod()
并指定签名。在您的情况下,可能是例如:
getMethod("GenTable","topGOdata")
显示topGOdata对象的GenTable方法。在这种情况下,只有为topGOdata对象定义的方法。如果有不同签名的方法,showMethods()
将告诉您哪些签名。在你的情况下:
showMethods("GenTable")
# Function: GenTable (package topGO)
# object="topGOdata"
您可以通过在getMethod()
函数中指定签名来获取所需签名的代码。
答案 1 :(得分:12)
我知道这是一个老问题,但为了未来搜索者的完整性,还有一个名为
的功能selectMethod
与getMethod不同,您可以使用继承。这就是我找到具有多个签名的通用函数的源代码的方法。
答案 2 :(得分:0)
请注意,从R版2.11.0
开始,需要使用findMehtods()
。以下是更改日志的摘录。
getMethods()
现已弃用,其内部使用已被替换 通过findMethods()
和其他更改。从中创建对象 {@ 1}}类也已弃用。