专栏名称: EasyCharts
EasyCharts,易图表,我们将定期推送各种数据可视化与分析教程,包括Excel(Power BI)、Origin、Sigmaplot、GraphPad、R、Python、Matlab、Tableau、D3.js等。
目录
相关文章推荐
歸藏的AI工具箱  ·  终于有给设计师用的 Cursor 了 ·  18 小时前  
歸藏的AI工具箱  ·  终于有给设计师用的 Cursor 了 ·  18 小时前  
前端大全  ·  前端行情变了,差别真的挺大。。。 ·  昨天  
前端大全  ·  真的建议所有前端立即拿下软考(红利期) ·  4 天前  
前端大全  ·  React+AI 技术栈(2025 版) ·  3 天前  
商务河北  ·  经开区“美•强•优”三重奏 ·  3 天前  
51好读  ›  专栏  ›  EasyCharts

microbiomeViz:绘制lefse结果中Cladogram

EasyCharts  · 公众号  · 前端  · 2019-08-07 21:25

正文

本文为R包microbiomeViz作者李陈浩原创,刘永鑫对本文进行测试,有修改。

为啥写这个

平日经常会分析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
k Bacteria|p Firmicutes 64.91753
k Bacteria|p Bacteroidetes 35.08247
k Bacteria|p Firmicutes|c__Clostridia 64.91753
k Bacteria|p Bacteroidetes|c__Bacteroidia 35.08247
k Bacteria|p Firmicutes|c Clostridia|o Clostridiales 64.91753

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

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

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

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

使用实战

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

输入数据为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
## 计算均值用于呈现结点大小
dat
# 用物种和丰度生成树骨架
tr p p

差异物种注释

# 读取需要颜色标注的差异物种列表,本质上是两列和颜色对应表
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 p

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

Reference

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

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


大家都在看

R语言ggplot2地理信息可视化 (上)

R语言ggplot2地理信息可视化 (下)

R 地理空间数据可视化:二维插值处理(1)

R 地理空间数据可视化:二维插值处理(2)

geofacet: 按地理位置分面的数据可视化

优雅的操纵json数据地图素材——打破地理信息可视化的孤岛


书籍推荐


《R数据可视化之美:专业图表绘制指南》以 R 语言为背景,通俗易懂地讲述了大量数据可视化领域的专业知识,从图形语法、色彩原理、视觉通道到各类图表的应用实践。

书籍配套开源R代码地址

https://github.com/EasyChart/Beautiful-Visualization-with-R








请到「今天看啥」查看全文


推荐文章
歸藏的AI工具箱  ·  终于有给设计师用的 Cursor 了
18 小时前
歸藏的AI工具箱  ·  终于有给设计师用的 Cursor 了
18 小时前
前端大全  ·  React+AI 技术栈(2025 版)
3 天前
商务河北  ·  经开区“美•强•优”三重奏
3 天前
二更食堂  ·  最好的相处模式, 是活儿好不粘人
7 年前