GOplot那个R语言包画弦图展示GO富集分析的结果,图还挺漂亮的,但是如果是自己的数据到最终他的画图需要的输入数据还挺麻烦的,我这边写了一个python脚本,希望可以简化画图数据的准备过程,脚本写的比较丑,但是凑合着能用
你自己需要准备的数据是
- GO富集分析的结果
- 感兴趣的基因列表(每行一个基因名)
- 感兴趣的基因对应的数据(比如表达量或者其他)
一个基因名对应着一个数据,每行一个 - 感兴趣的Term的名字(每行一个)
运行脚本
python .\prepare_input_df_for_R_GOplot_GOchord.py .\genes.txt .\process.txt .\GO_enrich_result.tsv a b 3 4 output-1.txt
- 第一个位置是感兴趣的基因名文件
- 第二个位置是感兴趣的Term的文件
- 第三个位置是GO富集分析的结果文件
- 第四个位置是GO富集分析结果文件的分隔符
a代表制表符
b代表逗号
d代表斜线/ - 第五个位置是GO富集分析结果文件中基因名那一列的分隔符 abd同上
- 第六个是GO富集分析结果文件中Term对应的是哪一列
- 第七个是GO富集分析结果文件中基因名对应的是哪一列
- 第八个参数是输出文件的名字
这样就获得了output-1.txt
这个文件,接下来是R语言里的代码
df<-read.csv("D:/Jupyter/GOplot/example/output-1.txt",
header = T,
sep="\t",
row.names = 1,
check.names = F)
head(df)
df<-df[,1:dim(df)[2]-1]
首先是读入数据,python脚本输出的文件是制表符分隔的
结尾处有一列空值,python里不知道如何删掉,这里读入数据以后再删掉吧
which(rowSums(df) == 0)
数据每行都是0,和1,还得检查一下有没有哪一行全是0,如果全是0这一行得删掉
df1<-read.csv("D:/Jupyter/GOplot/example/geneslogfc.csv")
df$logFC<-df1$logFC
读取带数值的基因文件,这个基因文件的顺序需要和感兴趣的基因那个文件完全保持一致
最后就是画图了
library(GOplot)
library(ggplot2)
p1<-GOChord(as.matrix(df),
space = 0.02,
gene.order = 'logFC',
gene.space = 0.25, gene.size = 5)
ggsave(filename = "GOplot_example/p3.pdf",
p1,
width = 15,height = 15)
image.png
后记
python里是可以调用R语言的,好好研究一些,看能不能直接一个python脚本出图,那样就非常方便了
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!
网友评论