microbiomeViz:绘制lefse结果中Cladogram「建议收藏」

microbiomeViz:绘制lefse结果中Cladogram「建议收藏」平日经常会分析shotgun宏基因组的数据,我们的pipeline使用MetaPhlAn,Kraken等profiler。这种数据经常会产生一个表格,如下download.file(“https://bitbucket.org/biobakery/biobakery/raw/tip/demos/biobakery_demos/data/metaphlan2/output/SRS014459-Stool_profile.txt”,’SRS014459-Stool_profile.txt’)knitr

大家好,又见面了,我是你们的朋友全栈君。

平日经常会分析shotgun宏基因组的数据,我们的pipeline使用MetaPhlAn,Kraken等profiler。这种数据经常会产生一个表格,如下

download.file("https://bitbucket.org/biobakery/biobakery/raw/tip/demos/biobakery_demos/data/metaphlan2/output/SRS014459-Stool_profile.txt", 'SRS014459-Stool_profile.txt')
knitr::kable(head(read.table('SRS014459-Stool_profile.txt')))
V1 V2
k__Bacteria 100.00000
kBacteria|pFirmicutes 64.91753
kBacteria|pBacteroidetes 35.08247
kBacteria|pFirmicutes|c__Clostridia 64.91753
kBacteria|pBacteroidetes|c__Bacteroidia 35.08247
kBacteria|pFirmicutes|cClostridia|oClostridiales 64.91753

第一列是分类信息注释,第二列是相对丰度(百分比)。在做这种图可视化方面,目前个人见过最强大的是GraPhlAn:

Image

官网上相关的教程很详细,但是问题是,这个完全封闭的python程序,想要hack,还真的是挺难得。Krona可能是另一个选择,但是同样还是会有同样的问题。最近发布的R包Metacoder,画出的图个人真心不是很喜欢:

Image

跟Y叔讨论了一下用ggtree实现像GraPhlAn那样图的可能性,得到了肯定的答复,于是开始自己造轮子。

MicrobiomeViz–千里之行,始于足下
其实可以写一个简单的函数,但是还是想做一个拓展性更强的东西,所以就有了这个包(不断完善中): https://github.com/lch14forever/microbiomeViz

使用实战

让我们产生lefse调用graphlan绘制的物种树标记差异物种的Cladogram

Image

输入数据为metaphlan2结果合并的矩阵。如何生成详见:MetaPhlAn2一条命令获得宏基因组物种组成

ID      BM_SRS013506    BM_SRS015374    BM_SRS015646    BM_SRS017687    BM_SRS019221    BM_SRS019329    BM_SRS020336    BM_SRS022145    BM_SRS022532    
k__Bacteria     100.0   100.0   100.0   100.0   100.0   100.0   100.0   100.0   100.0   100.0   100.0   100.0   100.0   100.0   100.0   100.0   100.0   
k__Bacteria|p__Actinobacteria   1.33609 2.90435 0.45117 6.7964  14.08966        2.30709 7.30108 0.53534 3.57207 8.47622 7.07037 17.30722        30.62601
k__Bacteria|p__Actinobacteria|c__Actinobacteria 1.33609 2.90435 0.45117 6.7964  14.08966        2.30709 7.30108 0.53534 3.57207 8.47622 7.07037 17.30722

包安装和加载

# microbiomeViz需要 R 3.5 以上,依赖包安装
source("https://bioconductor.org/biocLite.R")
biocLite("ggtree")
devtools::install_github("lch14forever/microbiomeViz")
library(microbiomeViz)

物种相对丰对矩阵绘制物种树

# 加载测试数据
df <- read.table("http://bailab.genetics.ac.cn/markdown/R/microbiomeViz/merged_abundance_table.txt", head=TRUE, stringsAsFactors = FALSE)

## 计算均值用于呈现结点大小
dat <- data.frame(V1=df[,1], V2=rowMeans(df[,-1]), stringsAsFactors = FALSE)

# 用物种和丰度生成树骨架
tr <- parseMetaphlanTSV(dat, node.size.offset=2, node.size.scale=0.8)
p <- tree.backbone(tr, size=0.5)
p

Image

差异物种注释

# 读取需要颜色标注的差异物种列表,本质上是两列和颜色对应表
lefse_lists = data.frame(node=c('s__Haemophilus_parainfluenzae','p__Proteobacteria',
                                'f__Veillonellaceae','o__Selenomonadales',
                                'c__Negativicutes', 's__Streptococcus_parasanguinis',

                                'p__Firmicutes','f__Streptococcaceae',
                                'g__Streptococcus','o__Lactobacillales',
                                'c__Bacilli','s__Streptococcus_mitis'),
                         color=c(rep('darkgreen',6), rep('red','6')),
                         stringsAsFactors = FALSE
)


# 注释树

p <- clade.anno(p, lefse_lists, alpha=0.3)
p

Image

简单几行代码,美图大功告成。

Reference

http://lchblogs.netlify.com/post/2018-01-18-r-metagenomeviz/

http://lchblogs.netlify.com/post/2018-04-20-r-microbiomeviz_example/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144822.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月18日 下午5:40
下一篇 2022年5月18日 下午6:00


相关推荐

  • 理解maven命令package、install、deploy的联系与区别

    理解maven命令package、install、deploy的联系与区别  我们在用maven构建java项目时,最常用的打包命令有mvnpackage、mvninstall、deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命令还是有区别的。下面通过分别执行这三个命令的输出结果,来分析各自所执行的maven的生命周期。mvncleanpackagemvncleaninstallm…

    2022年6月14日
    36
  • CSV文件内容乱码处理办法

    CSV文件内容乱码处理办法CSV 文件内容乱码处理办法

    2026年3月18日
    23
  • VMware 虚拟机如何连接网络「建议收藏」

    VMware 虚拟机如何连接网络「建议收藏」ps:本教程是针对虚拟机NAT模式连接网络一、首先查看自己的虚拟机服务有没有开启,选择电脑里面的服务查看;1.计算机点击右键选择管理2.进入管理选择VM开头的服务如果没有开启的话就右键开启二、虚拟机服务开启后就查看本地网络虚拟机的网卡启动没有1.电脑右下角网络标志右键进入网络和共享中心2.点击更改适配器,查看虚拟机的虚拟网卡启动没有,没有启动的话右键点击启动3.网卡开启后设置ip地址

    2022年4月20日
    2.8K
  • 一个新的敲诈者病毒

    一个新的敲诈者病毒

    2021年7月23日
    73
  • 用通俗易懂的大白话讲解Map/Reduce原理「建议收藏」

    用通俗易懂的大白话讲解Map/Reduce原理「建议收藏」下面是我自己的微信公众号(不定期更新JAVA、大数据、个人成长等干货)1、公众号上有经典的技术电子书可以免费领2、大家有问题可以在公众号问我,只要你问了我就会回复(相互交流)也可以扫描下面二维码,加我个人微信,和我直接沟通Hadoop简介Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及……

    2022年7月26日
    5
  • python树莓派编程下载_树莓派Python编程入门与实战(完整版) 中文pdf扫描版[85MB]

    树莓派是一个只有信用卡大小的裸露电路板,它也是一个运行开源Linux操作系统的完全可编程的PC系统。树莓派的官方编程语言是Python,树莓派Python编程入门与实战就介绍了树莓派的Python编程方法。本书共分7个部分。前6个部分介绍了树莓派编程环境、Python基础知识、高级Python、图形编程、业务编程和树莓派Python项目;第7部分通过附录介绍了如何将树莓派操作系统加载到Raspbi…

    2022年4月8日
    224

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号