Kiavash Movahedi et al. (2020) Nat Neuroscience
工具:
simplifyEnrichment (R package)
Cytoscape
AI
前言:
GO term功能网络中,每个节点代表一个Gene ontology,点的大小代表富集得分(或者其他用于说书的得分)。网络中有相关关系的功能会形成“边”。人工绘制的边界圈出了标记为相同cluster的功能。
为什么要对GO term聚类?因为现在几乎什么实验条件都能够富集出几百个GO term,这些功能如果一一查看,最后手动挑选的话,难免会得到有偏颇的结论,以至于把实验引入一个更加错误的方向。
为了展示更加全面的生物功能的差异,一个美观的GO term网络是十分有必要的。
绘制步骤:
R语言部分
library(msigdbr)
library(simplifyEnrichment)
library(dplyr)
m_df = msigdbr(species = "Mus musculus", category = "C5",subcategory = "GO:BP")
GOIDs = m_df$gs_exact_source%>% unique() %>% sample(,size = 100) # generate GOID sets randomly
head(GOIDs)
# [1] "GO:0009256" "GO:0009256" "GO:0009256" "GO:0009256" "GO:0009256" "GO:0006103"
mat = GO_similarity(GOIDs)
df = simplifyGO(mat,method = "kmeans")
net = reshape2::melt(mat)
net = net[which(net$value > 0.6),]
net = net[which(as.character(net$Var1)> as.character(net$Var2)),]
head(net)
# Var1 Var2 value
# 402 GO:0015824 GO:0014050 0.6017792
# 511 GO:1990266 GO:0072676 0.7430274
# 1109 GO:1901224 GO:0070374 0.6283545
# 1430 GO:1900425 GO:0060331 0.7138334
# 1785 GO:1905456 GO:1902037 0.7216737
# 1834 GO:0060442 GO:0048755 0.6681442
df$size = sample(1:100,size = 100,replace = T)
head(df)
# id term cluster size
# 1 GO:1901298 regulation of hydrogen peroxide-mediated programmed cell death 6 81
# 2 GO:0015824 proline transport 3 59
# 3 GO:0051703 intraspecies interaction between organisms 5 25
# 4 GO:0038127 ERBB signaling pathway 6 71
# 5 GO:0014050 negative regulation of glutamate secretion 3 75
# 6 GO:0072676 lymphocyte migration 3 1
write.table(net,file = "net.txt",col.names = T,row.names = F,quote = F,sep = "\t")
write.table(df,file = "df.txt",col.names = T,row.names = F,quote = F,sep = "\t")
########################
# variables annotation #
########################
#
# net : variable stored information about edges in the network
# df : variables stored information about nodes in network
# GOIDs : seleted Go ontologys in research
#
得到数据之后,导入Cytoscape绘制网络
Cytoscape的具体操作步骤不在本文中赘述,这里推荐一些Cytoscape 的教学链接。
https://zhuanlan.zhihu.com/p/220527695
http://www.360doc.com/content/19/0409/20/49059453_827533578.shtml
在功能网络的绘制中并不需要多么困难复杂的操作,但依然有些设置需要注意:
- 网络尽可能的饱满,不要太扁或者太宽
- 网络的节点记得要size-code by df$size
- 需要记住每一团网络节点代表了那个GO cluster。
当我们结束Cytoscape网络的绘制后,大致能得到以下的pdf(注意一定是要pdf导出网络,不然没法用AI进行更细致的修改)
之后是AI的过程,这里简单说两句,
- 得到网络pdf后,调整边的颜色(#7FB5E5),点的颜色(#E9471E)
- 如果边太过密集,记得设置边的透明度
- 如果记性不好的话,用Cytoscape来标记GO term cluster的位置
- 用椭圆标出相同cluster的node,然后人工总结该cluster的大致功能
- 如果想要标注基因,记得要用斜体
需要生信和统计图表绘图服务,
可以加我的VX:LGR581X
主要面向学生党毕设,价格便宜哟~