美文网首页生信分析
R语言GOplot包画弦图如何准备自己的数据~写了一个简单的py

R语言GOplot包画弦图如何准备自己的数据~写了一个简单的py

作者: 小明的数据分析笔记本 | 来源:发表于2021-06-07 16:53 被阅读0次

    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、生物信息学入门学习资料及自己的学习笔记!

    相关文章

      网友评论

        本文标题:R语言GOplot包画弦图如何准备自己的数据~写了一个简单的py

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