原文链接: https://bioinfohome.com/index.php/2019/07/08/goplot-01/
示例数据:gene_list.txt;示范代码:GOplot_bioinfohome.R下载链接位于上述原文末尾。
![](https://img.haomeiwen.com/i17735752/e0a66adc70b6fff7.png)
GOplot包是用于GO富集结果可视化的R包,尤其其中的弦图。遗憾的是,标准的GOplot需要FC值。实际生信分析中,我们只有一列筛选而得的基因。这个时候,该如何变通呢……
操作环境:预先配置的 Windows_7_x64_R虚拟机包
R软件版本:R x64 3.5.0
示范代码:GOplot_bioinfohome.R
GOplot输入文件,包含三个,GO富集结果、基因列表(包含logFC)、GO条目。如果,我们处理的数据不包含logFC,或者不想使用logFC。我们可以自己生产随机数代替。最后的pdf文件,借助AI绘制软件,将logFC的图标删除即可得到漂亮的弦图。
第一步,准备输入数据
输入数据非常简单,就是一列基因名,存放在 gene_list.txt 中。 这也符合相当一部分生信的应用场景。
第二步,加载R包,并使用clusterProfiler进行GO富集。
library(GOplot)
library(stringr)
library(org.Hs.eg.db)
library(clusterProfiler)
#需要加载四个R包,如果基因物种不是人org.Hs.eg.db,需要加载对应物种的参考注释。
gene_symbol<-read.table(file="gene_list.txt",header=T)$SYMBOL
entrez_id <- bitr(gene_symbol, fromType="SYMBOL", toType=c("ENTREZID","ENSEMBL"), OrgDb=org.Hs.eg.db)
ego_all <- enrichGO(gene =entrez_id$ENTREZID,
OrgDb = org.Hs.eg.db,
ont = "ALL",
pAdjustMethod = "BH",
pvalueCutoff = 0.05,
readable = TRUE,
pool = TRUE)
# 这里富集参数ont选用 ALL为示范。
第三步,构建GOplot的输入文件。
GOplot的输入文件包含terms,genes,process。
terms: 是一个数据框,包含的字段:Category,ID,term,Genes,adj_pval;
genes:基因名加logFC( logFC 随机生成);
process:GO的条目描述;
GO=ego_all[1:12,c(1,2,3,9,7)]
#因为GO富集结果非常多,不可能也不需要全部显示,一般选取前几行,这里取12,也可以设定为其他值
GO$geneID=str_replace_all(GO$geneID,"/",",")
#这里替换富集条目中基因一栏的分隔符为逗号,这是GOplot默认的。
names(GO)=c("Category","ID","term","Genes","adj_pval")
#重新命名数据框的字段名,这些都是固定的,不可更改
gene=data.frame(ID=gene_symbol,logFC=rnorm(length(gene_symbol),mean=0,sd=2))
#生成输入数据框
gene=data.frame(ID=gene_symbol,logFC=rnorm(length(gene_symbol),mean=0,sd=2))
#随机生成相同数量的正负小数,充作logFC
第四步,使用GOplot作出弦图,并导出pdf,使用AI,微调
circ <- circle_dat(GO,gene)
chord <- chord_dat(data = circ, genes = gene, process = GO$term)
#GO$term就是富集的GO条目描述
GOChord(chord, space = 0.02, gene.order = 'logFC', gene.space = 0.25, gene.size = 5)
网友评论