热点新闻
KEGG通路的从属/注释信息如何获取
2023-07-10 05:20  浏览:3821  搜索引擎搜索“养老之家”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在养老之家看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

富集分析经常做,之前只知道GO term有从上到下的层次关系,今天才知道KEGG pathway也有类似的分层关系。

起因是我准备更新一下自己的kegg富集结果展示图,之前一直画的这种图,略显朴素了。







正好搜到了这张图,还挺好看的(主要是配色很清新




https://doi.org/10.1016/j.phymed.2021.153714

这张图并不难(等有空把代码整理出来发给大家),可是这个kegg pathway annotation我真没见过呀!去官网看了看,能找到,但没法下载




https://www.genome.jp/kegg/pathway.html

在朋友圈求助后,费了很大劲才把这个问题解决。中间好几个小伙伴都很热心地给了我帮助,感谢他们!

以下是我整理的KEGG pathway annotation文件的网盘链接,用到的代码数据也在里面,想改善一下kegg富集图的朋友可以看看。

链接:https://pan.baidu.com/s/18pwYZGGZSuk2_LGW8_nQFQ
提取码:ihyn
(PS: 觉得有用可以给我本期推送的第1篇推文点个赞呀,谢谢了!)




最终能得到这个表格


整理这个文件的思路如下

  1. 浏览器打开这个网页(https://www.genome.jp/kegg/pathway.html),然后查看网页源代码(一般是鼠标右键),就能看到这个:



先不要被它吓到,后面的信息提取都是基于这些字符串

  1. 然后复制粘贴到一个文本文件kegg_html.txt,删掉前188行左右,后17行左右(删掉的这些行明显不含有用信息),得到kegg_html_copy.txt

  2. 然后运行我编写的代码pre.R就能得到最终表格了

library(tidyverse) tmp1=readLines("kegg_html_copy.txt") tmp2=c() for (li in 1:length(tmp1)) { if(str_detect(tmp1[li],">[0-9]")) { tmp2=append(tmp2,tmp1[li]) } } ### big_anno="" small_anno="" final_lines=c() for (li in 1:length(tmp2)) { if (str_detect(tmp2[li],">[0-9]\\. ")) { tmp_anno=str_extract(tmp2[li],">.*<") tmp_anno=str_split(tmp_anno,"\\. ")[[1]][2] tmp_anno=str_split(tmp_anno,"<")[[1]][1] big_anno=tmp_anno } else if (str_detect(tmp2[li],">[0-9]\\.[0-9]{1,2} ")) { tmp_anno2=str_extract(tmp2[li],">.*<") tmp_anno2=str_replace(tmp_anno2,"^>[0-9]\\.[0-9]{1,2} ","") tmp_anno2=str_split(tmp_anno2,"<")[[1]][1] small_anno=tmp_anno2 } else if (str_detect(tmp2[li],">[0-9]{5}")){ element1=str_extract(tmp2[li],">[0-9]{5}") element1=str_split(element1,">")[[1]][2] if (!str_detect(tmp2[li],"hsa\\+pathogen")) { element2=str_extract(tmp2[li],"pathway\\/[a-zA-Z]{2,4}[0-9]{5}") element2=str_split(element2,"\\/")[[1]][2] element3=str_extract(tmp2[li],"pathway.*?<") #非贪婪匹配 element3=str_extract(element3,">.*<") element3=str_split(element3,">")[[1]][2] element3=str_split(element3,"<")[[1]][1] } else { element2="organism:hsa+pathogen" element3=str_extract(tmp2[li],"hsa\\+pathogen.*?<") #非贪婪匹配 element3=str_extract(element3,">.*<") element3=str_split(element3,">")[[1]][2] element3=str_split(element3,"<")[[1]][1] } tmp_line=paste(as.character(element1),element2,element3,big_anno,small_anno,sep = ";") final_lines=append(final_lines,tmp_line) }else{ print(tmp2[li]) } } ### final_df=as.data.frame(final_lines) colnames(final_df)="V1" final_df=final_df%>%apply(1, function(x){as.data.frame(str_split(x,";")[[1]])}) final_df=as.data.frame(final_df) final_df=as.data.frame(t(final_df)) rownames(final_df)=NULL colnames(final_df)=NULL colnames(final_df)=c("ID","Pathway Identifier","Pathway","big annotion","small annotion") ### library(xlsx) write.xlsx(final_df,file = "kegg_info.xlsx",col.names = T,row.names = F)

发布人:7ed8****    IP:223.213.66.***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发