0

早些时候,我发布了一个问题,并且在一些帮助后能够成功加载我的数据并创建一个 topGO 对象。我正在尝试可视化与我从小鼠 RNA-seq 数据中获得的差异表达基因列表显着相关的 GO 术语。

现在,我想提出对ViSEAGO 教程的关注。本教程最初指定加载两个文件:“selection.txt”和“background.txt”。这些文件的来源没有明确说明。然而,在深入研究了 topGO 的文档之后,我能够找到每个文件的数据类型。但是,即使在遵循这些之后,我在运行以下代码时也遇到了问题。有没有人有任何见解可以分享?

工作代码:

mysampleGOdata <- new("topGOdata",
                      description = "my Simple session",
                      ontology = "BP",
                      allGenes = geneList_new,
                      nodeSize = 1,
                      annot = annFUN.org,
                      mapping="org.Mm.eg.db", 
                      ID = "SYMBOL")

resultFisher <- runTest(mysampleGOdata, algorithm = "classic", statistic = "fisher")

head(GenTable(mysampleGOdata,fisher=resultFisher),20)

myNewBP<-GenTable(mysampleGOdata,fisher=resultFisher)

问题:

> head(myNewBP,2)
       GO.ID                      Term Annotated Significant Expected  fisher
1 GO:0006006 glucose metabolic process       194          12     0.19 1.0e-19
2 GO:0019318  hexose metabolic process       223          12     0.22 5.7e-19

> ###################
> # merge results
> myBP_sResults<-ViSEAGO::merge_enrich_terms(
+   Input=list(
+     condition=c("mysampleGOdata","resultFisher")
+   )
+ )
Error in setnames(x, value) : 
  Can't assign 3 names to a 2 column data.table
> myNewBP<-GenTable(mysampleGOdata,fisher=resultFisher)
> ###################
> # display the merged table
> ViSEAGO::show_table(myNewBP)
Error in ViSEAGO::show_table(myNewBP) : 
  object must be enrich_GO_terms, GO_SS, or GO_clusters class objects

根据教程,打印的表格包含每个丰富的 GO 术语、附加列,包括通过比较评估的重要基因列表和频率(重要基因数量与背景基因数量的比率)。我想我有,但它肯定是行不通的。

有人能看出为什么吗?这一点我不是很清楚。谢谢!

4

2 回答 2

1

我认为你试图规避你一开始犯的错误。由于您没有使用 ViSEAGO 包中的包装函数,您收到错误消息。正如您在上一个问题中所述,您在格式化数据时遇到了最初的问题。

以下是一些提示:

  • “选择”文件是带有您的 DEG 名称或 ID 的字符向量。我推荐使用EntrezID。

  • “背景”文件是具有已知基因的字符向量。我也推荐使用EntrezID。您可以使用以下命令轻松生成此字符向量: background=keys(org.Hs.eg.db, keytype ='ENTREZID')

  • 使用这两个文件,您可以轻松地继续执行包的后续步骤,如小插图中所述。

# connect to EntrezGene
EntrezGene<-ViSEAGO::EntrezGene2GO()

# load GO annotations from EntrezGene
# with the add of GO annotations from orthologs genes (see above)
#id = "9606" = homo sapiens
myGENE2GO<-ViSEAGO::annotate(id="9606", EntrezGene)

BP<-ViSEAGO::create_topGOdata(
  geneSel = selection, #your DEG vector
  allGenes = background, #your created background vector
  gene2GO=myGENE2GO, 
  ont="BP",
  nodeSize=5
)

classic<-topGO::runTest(
  BP,
  algorithm ="classic",
  statistic = "fisher"
)

# merge results
BP_sResults<-ViSEAGO::merge_enrich_terms(
  Input=list(
    condition=c("BP","classic")
  )
)

你应该得到一个合并的丰富的 GO 术语列表和你喜欢的相应统计测试。

于 2020-07-11T12:49:37.977 回答
0

我最近遇到了这个问题,非常沮丧。就我而言,整个问题似乎与我使用的软件包版本有关。

我使用 conda 安装 ViSEAGO。尽管如此,我的 conda 环境中的 R 版本有点旧(具体来说是 3.6.1)。因此,在使用 conda 安装 ViSEAGO 时,安装了 1.0.0 版本的软件包。请注意,ViSEAGO 的最新版本是 1.4.0。

因此,我使用 R 版本 4.0.3 创建了一个 conda 环境,并重复使用 conda 安装 ViSEAGO 的过程。执行此操作时,安装了 ViSEAGO 的 1.4.0 版本,一切正常。

我试图回溯错误,但只发现一件事:在较旧的 ViSEAGO 版本中,函数 Custom2GO 加载了 4 列的表;在最新版本中,它包含 5 列(新的列是“gene_symbol”)。我认为这种分歧可能是问题的一部分,因为函数 merge_enrich_terms 的源代码似乎在某些时候处理了“gene_id”和“gene_symbol”列,但我不确定。

希望你觉得我的评论有帮助!

干杯,毛里西奥

于 2021-03-12T15:24:30.620 回答