mergeKEGGgraphs - 合并多个KEGG graphNEL对象时出错

时间:2016-06-07 19:55:53

标签: r graph

KEGGgraph R包中的mergeKEGGgraphs函数存在错误。代码(如下)产生以下错误(也在下面)。我已经抓取了函数的代码,并得出结论(希望是正确的),这个错误是由于下面的行:

keggnodeing <- match(nodes(g), keggnodenames)
mergedkeggnode <- keggnodes[keggnodeing]
names(mergedkeggnode) <- sapply(mergedkeggnode, getName) 

发生错误是因为节点(g)生成条目列表中所有图形的条目ID(连接),这些图形是在函数mergeKEGGgraphs开头使用mergeGraphs合并的。但是,keggnodenames生成显示名称 - 而不是条目ID。因此,当您进行匹配(nodes(g),keggnodenames)时,所有条目都将为null。条目ID和显示名称之间没有匹配!

问题:如何解决此错误,以便成功合并这些路径图?

以下代码的错误消息:

Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘getName’ for signature ‘"NULL"’

驱动程序脚本:

require(KEGGgraph)
require(KEGG.db)
require(XML)
require(RCurl)

tmp <- as.list(KEGGPATHNAME2ID)
j=1
kegg <- list()
names.kegg <- NULL
for (i in 1:length(tmp)) {
  file <- getKGMLurl(tmp[[i]], organism="hsa")
  xData <- getURL(file)
  if (xData!="\n") {
    doc <- xmlParse(xData)
    saveXML(doc, file=sprintf("hsa%s.xml", tmp[[i]]))
    kegg.pathway <- parseKGML2(sprintf("hsa%s.xml", tmp[[i]]))
    kegg[j] <- KEGGpathway2Graph(kegg.pathway,genesOnly=FALSE,expandGenes=FALSE)
    names.kegg[j] <- names(tmp[i])
    j<-j+1
  } else {
    print(sprintf("i = %d, hsa%s.xml no data", i, tmp[[i]]))
  }
}
names(kegg) <- names.kegg
kegg.merged <- mergeKEGGgraphs(kegg, edgemode = "directed")

0 个答案:

没有答案