美文网首页绘图转录组
KEGGresults OR Enrichresults 结果导

KEGGresults OR Enrichresults 结果导

作者: 努力学习的消炎药 | 来源:发表于2023-04-11 22:02 被阅读0次

用到了这个需求,找教程的时候,其实也找到了比如这个

(1 封私信) Cytoscape整合GO富集分析和表达结果 - 知乎 (zhihu.com)
但是,这个老师讲的太多了,是属于手把手教学的,但是我的需求只是其中的一步,就是拿到kegg的结果后,把通路的基因转换为表格,然后导入cytoscape,进行绘图。

首先,明确需求,kegg通路,感兴趣的几条,和基因之间的网络图。

最开始,由此需求想到的就是Y叔的一个包,enrichplot::cnetplot(kk2,showCategory = 22,circular=F,colorEdge = TRUE)) 但是,直接出图的话,有点丑,没法改。
如下:

image.png

那么我们就要想办法从KEGG结果里面找材料了,
思路如下:
1.把结果保存下来,使用excle挑通路,
2.把挑好的通路,转换成cytoscape 的形式画图。
代码和做法

# 首先,获得kegg的结果
kk <- enrichKEGG(gene = deg4$ENTREZID,
                 keyType = "kegg",organism= "mmu", 
                 qvalueCutoff = 0.05, 
                 pvalueCutoff=0.05)
##通路的基因是entrezid,但是后面我们做网络图,就需要转换成symbol,(tip:senrichGO,里面可以直接设置readable = T)
#kegg需要转换,可以通过`setReadable()`,当然这个函数是针对的enrichresults,所以GO也是可以通过这个转换的。
library(DOSE)
#这里keyType设置为ENTREZID
kk<-setReadable(kk, OrgDb = org.Mm.eg.db, keyType="ENTREZID")
#转换完成后,便得到了symbol
#随后,报存一下到excle里面进行挑选通路
tmp = dataframe(kk)
write.csv(tmp,file = 'kegg.csv')
## 番外 ,挑选 保存,保存好后
tmp <- read.csv('kegg.csv')
#后面需要对Enrichresult对象进行操作,所以挑对象
kk2 <- dplyr::filter(kk,Description %in%tmp$Description) %>% ##挑出刚才挑选的通路
  data.frame()

## 删掉小尾巴  我这里是老鼠的小尾巴,请各位酌情更改。
kk2$Description <- gsub(' - Mus musculus \\(house mouse\\)','',kk2$Description)

#然后这个挑完的对象,记得画个KEGG的图,这个对象的任务就结束了
##提取需要的列
net <- kk2[,c('Description','geneID')]

到这里,我们拿到了,我们想要的通路名和基因名。
但是它是这样的
head(net)

image.png
这怎么能搞成网络图呢
需要转换,
关键步骤只有一步
netdata <- separate_rows(net,geneID,sep = '/')
意思就是通过后面的这个geneID把基因分组分开,并且保证不错乱。
结果如下
image.png
看着就很美好。
然后保存
tips来了:
colnames(netdata) <- c('source','target')
write.csv(netdata,file = 'tmp.csv',quote = F) 一定要写后面的F,不然,你就会遇到
这个文章的情况:

R语言/cytoscape 导入时候出现 引号 怎么办? - 简书 (jianshu.com)
对!姊妹篇,一个问题,互赚浏览量!!

对了,你还需要生成一个cytoscape 的nodes的备注分组信息,大概就是gene和pathway分开分类的那种。
就比较简单了,算了还是写一下吧
比如:

#从上面的network文档入手,
gene = data.frame( x = unique(netdata$target), y = rep("gene",length(x = unique(netdata$geneID))))  
##在简书里面临时写的,可能会报错,请认真查找修改一下。
path= data.frame( x = unique(netdata$source), y = rep("pathway",length(x = unique(netdata$geneID))))  
netdata2 = cbind(gene,path) #或者是rbind,这俩我经常分不清,需要试一下。

到这里就结束了。下面就该去cytoscape进行操作了
可以看看我那个导入的教程

R语言/cytoscape 导入时候出现 引号 怎么办? - 简书 (jianshu.com)

相关文章

  • Day6 讲个故事

    (承接DAY3内容)思维导图法 1、思考的过程比做出导图的结果更重要 大家看到思维导图,思维是放在前面的,导图是放...

  • 06 二莲 第一课作业 #裂变增长实验室#

    ①每日所完成结果的截图 先是课程的思维导图: 接下来是剧本的导图版:(思维导图版正在制作中) 1、名字:我叫Ali...

  • nacos配置中心

    导包 编写bootstrap.yml文件: @RefreshScope动态刷新 动态配置: 结果:

  • 2019-03-08坚定的函数

    y=e^x函数的导数真好玩,只要X取的区间合适,那么一阶导,二阶导,三阶导……乃至n阶导其结果还是e^x,永不变值...

  • 《请给我结果》内容导图

  • 同济高等数学第七版2.1习题精讲(续二)

    8.设可导,,则是在处可导的()条件。 解:的右导数 的左导数 根据左导数等于右导数在该点才能可导,上面两个结果相...

  • 原来,思维导图还可以这样用

    最近读了一本书,书名叫《日常生活中的思维导图》。结果,完全颠覆了我对思维导图的固有认识,原来,思维导图还可以这么用...

  • 积分因子

    0.判别式 1.恰当方程(E为0) 根据两个因式相乘“前导后不导乘以前不导后导”的逆运算,直接求出来结果,无需求积...

  • 【思维导图】读书笔记-《自控力》

    这周的思维导图作业是做一幅读书笔记的思维导图。要求是,没看过书的人,看了思维导图就能明白书的内容。(结果没有以终为...

  • 【读书清单】暗时间(2)

    01 过程>结果 错误结果并不代表错误过程,而结果正确并不代表方法就一定正确; 看重过程,从概率角度,好的过程会导...

网友评论

    本文标题:KEGGresults OR Enrichresults 结果导

    本文链接:https://www.haomeiwen.com/subject/ukrgddtx.html