パッケージ内の S4 関数のソースコードを表示するにはどうすればいいですか? 質問する

パッケージ内の S4 関数のソースコードを表示するにはどうすればいいですか? 質問する

私は 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"

これどうやってするの?

ベストアンサー1

getMethod()署名を使用して指定します。あなたの場合、例えば次のようになります。

getMethod("GenTable","topGOdata")

topGOdata オブジェクトの GenTable メソッドを表示します。この場合、topGOdata オブジェクトに定義されているメソッドは 1 つだけです。異なるシグネチャを持つメソッドがある場合は、それshowMethods()がどれであるかを示します。あなたの場合:

showMethods("GenTable")
# Function: GenTable (package topGO)
# object="topGOdata"

関数内で指定することで、必要な署名のコードを取得できますgetMethod()

おすすめ記事