利用kegg數(shù)據(jù)庫的pathway信息,構建基因和基因的互作網(wǎng)絡關系,并用cytoscape展示,可以方便研究者更好的探索那些基因是在生命過程中發(fā)揮重要作用的關鍵基因。
kegg pathway中的基因與基因的互作關系,可以從kegg官方提供的kgml文件中獲取。
獲取方法參考網(wǎng)址:https://www.kegg.jp/kegg/rest/keggapi.html
確定是否存在對應pathway的kgml文件:http://rest.kegg.jp/get/hsa04390/kgml
其中:hsa04390為pathway編號,可以替換為自己關注的pathway編號
腳本參考:https://blog.csdn.net/weixin_43569478/article/details/108079035
R語言批量下載關注pathway編號的kgml文件:
? library(curl)
library("XML")
library("methods")
library(KEGGgraph)
interested_pathway <- c('hsa04390','hsa04371')
for (i in interested_pathway){
url <- paste0("http://rest.kegg.jp/get/",i,"/kgml")
assign(paste0(i,"_kgml"), tempfile())
curl_download(url, paste0(i,"_kgml"))
}
##############生成進行網(wǎng)絡圖繪制的邊文件和節(jié)點文件#####################
for (i in interested_pathway){
? mapkG <- parseKGML2Graph(paste0(i,"_kgml"),expandGenes=TRUE, genesOnly = TRUE)
? mapkNodes <- nodes(mapkG)
? mapkEdges <- edges(mapkG)
? mapkEdges <- mapkEdges[sapply(mapkEdges, length) > 0]
? res <- lapply(1:length(mapkEdges), function(t){
? ? name <- names(mapkEdges)[t]
? ? len? <- length(mapkEdges[[t]])
? ? do.call(rbind, lapply(1:len, function(n){
? ? ? c(name, mapkEdges[[t]][n])
? ? }))
? })
? result <- data.frame(do.call(rbind, res))
? write.table(result,? "edges.txt", sep = "\t", row.names = F, col.names = F, quote = F ,append = T)
? write.table(mapkNodes, "nodes.txt", sep = "\t", row.names = F, col.names = F, quote = F ,append = T)
}