作者:中科院微生物所 周欣
大家在看高分文章时,总会惊叹于,为什么人家能做出那么好看而且高大上的系统发育树,而且好看的图也能直接提升文章的档次,冲击高分文章。人家的树不管是从配色还是各种注释信息都让人无可挑剔,而你每次花了半个月时间做的进化树不是被老板嫌弃配色丑,就是太单调,没有各种辅助的注释信息。然后你默默捧起别人的文章学习时发现他们绝大部分都是用iTOL这个在线工具来进行的系统发育树的美化的。
**之前看有好几个公众号的几篇文章推送了教大家怎么使用iTOL这个网站 http://itol.embl.de/
例如:
宏基因组:教你用iTOL轻松绘制高颜值系统进化树
生信生信:微生物多样性研究之物种聚类树美化工具—iTOL
生信小王子:使用iTOL美化进化树
大家如果从来没有用过iTOL可以看看以上推文,它们会教你怎么快速入门iTOL网站。但是这些推文都只教你了怎么去注册iTOL的用户,怎么上传你的树文件等一些非常简单基本的操作,离真正让你自己快速绘制一个高颜值进化树距离还很远!
这些文章都只介绍了软件在线网页的使用,但如何准备软件的数据确是绝大多数用户的难点。当你想绘制自己的进化树时,花了半个月搞出来的图依旧很丑。今天宏基因组就为你上点干货,你让半天时间制作的树,颜值超过之前半个月的工作。
比如以下这篇文章:
这是宏基因组公众号解读过的一篇microbiome的文章 (Beckers, B., et al. (2017). Microbiome 5(1): 25.)。 该图是本文的5个主图之一,也是本文最为重要的图。本文无论在数据量还是数据统计展示都很常规,但能发到10分左右的杂志,还是很值得大家学习一下!作者选用了与杨树不同生态位(根围土壤、根系、茎、叶子)相关的高丰度菌绘制环形系统发育树。选用在线的iTOL网站进行系统发育树美化。不同环形颜色代表不同细菌门,柱形图代表不同OTUs的相对丰度。
这篇文章中的图就是用iTOL网站进行绘制的!这个网站的使用非常简单,当你上传完树文件后,你只需要把对应的注释文件拖到屏幕上树所在的位置就能自动给你注释的树形结果,简直不要太方便有没有!但你需要准备所有的柱形图,热图,分组信息等注释文件。这些文件的准备其实才是最花费时间的步骤!
比如之前看iTOL网站的官方教程,想着手动去准备一个如下的注释文件:
DATASET_DOMAINS
SEPARATOR TAB
BACKBONE_COLOR #FFFFFF
BACKBONE_HEIGHT 0
BORDER_WIDTH 0.5
COLOR #bebada
DATASET_LABEL Family
HEIGHT_FACTOR 1
LEGEND_COLORS #a6cee3 #1f78b4 #b2df8a #33a02c #fb9a99 #a6cee3 #1f78b4 #b2df8a #33a02c #fb9a99 #a6cee3 #1f78b4 #b2df8a #33a02c #fb9a99 #a6cee3 #1f78b4 #b2df8a #33a02c #fb9a99 #a6cee3 #1f78b4 #b2df8a #33a02c #fb9a99
LEGEND_LABELS Bacillaceae_1 Bradyrhizobiaceae Burkholderiales_incertae_sedis Caulobacteraceae Chloroplast Comamonadaceae Flavobacteriaceae Herpetosiphonaceae Hyphomicrobiaceae Kineosporiaceae Microbacteriaceae Micromonosporaceae Nocardioidaceae Oxalobacteraceae Pseudomonadaceae Pseudonocardiaceae Rhizobiaceae Rhodospirillaceae Sandaracinaceae Sinobacteraceae Sphingomonadaceae Streptomycetaceae Thermomonosporaceae Unassigned Xanthomonadaceae
LEGEND_SHAPES EL EL EL EL EL RE RE RE RE RE TL TL TL TL TL TR TR TR TR TR DI DI DI DI DI
LEGEND_TITLE Family
MARGIN 5
SHOW_DOMAIN_LABELS 0
WIDTH 25
DATA
OTU_657 10 DI|0|10|#b2df8a|Thermomonosporaceae
OTU_2 10 RE|0|10|#a6cee3|Comamonadaceae
OTU_3 10 TL|0|10|#fb9a99|Pseudomonadaceae
OTU_4 10 TL|0|10|#fb9a99|Pseudomonadaceae
OTU_5 10 EL|0|10|#fb9a99|Chloroplast
OTU_6 10 EL|0|10|#b2df8a|Burkholderiales_incertae_sedis
OTU_8 10 DI|0|10|#1f78b4|Streptomycetaceae
OTU_7 10 RE|0|10|#1f78b4|Flavobacteriaceae
OTU_9 10 TL|0|10|#1f78b4|Micromonosporaceae
OTU_10 10 TR|0|10|#1f78b4|Rhizobiaceae
OTU_17 10 DI|0|10|#33a02c|Unassigned
光想想这里的配色方案就让人头疼不已,准备这其中的一个注释文件可能就要花费几天时间,不仅费时费力,等你好不容易凑齐了几十种颜色,结果搭配起来还十分难看。
难道国外那些大牛画的高大上的进化树难道是他们自己手动准备的注释文件,按照自己的审美配的色吗?
这个我肯定不信,(绝对不能承认自己审美差!)本着开放获取的原则,本人终于在Github找到了一个别人写的自动生成iTOL注释文件的R包table2itol。用上这个R包就能帮助我们快速一键生成注释文件啦!
table2itol的Github地址 https://github.com/mgoeker/table2itol
下面我将教大家快速自动生成高大上的注释文件
首先要安装table2itol这个进化树美化注释包,要确保你的R的版本高于 3.2 ,如果是windows系统推荐安装R 3.5,这样可以在Rstudio界面下直接调用Terminal,(但R语言在windows中对命令行支持比较差,容易出问题)。这时候只有我们准备的文件格式是txt格式就能使得table2itol在window系统下能运行:
1. windows直接下载,将table2itol该文件夹放置在:C:\Users\X\Documents 文件夹位置,注意路径中不能有中文。
有的同学习惯使用Linux系统,这里也给大家准备了Linux系统下,table2itol.R 包的安装教程:
table2itol的下载和安装
## Installation
# git clone [email protected]:mgoeker/table2itol.git
# 下载并解压
wget https://github.com/mgoeker/table2itol/archive/master.zip
unzip master.zip
mv table2itol-master table2itol
# 测试
Rscript table2itol/table2itol.R
chmod +x table2itol.R
./table2itol.R
在R或Rstudio中安装一些依赖关系
### 安装依赖包
site="https://mirrors.tuna.tsinghua.edu.cn/CRAN"
# 依赖包列表:参数解析、数据变换、绘图和开发包安装、安装依赖、ggplot主题
package_list = c("grid","ggplot2","gridExtra","vegan","reshape2","readODS")
# 判断R包加载是否成功来决定是否安装后再加载
for(p in package_list){
if(!suppressWarnings(suppressMessages(require(p, character.only = TRUE, quietly = TRUE, warn.conflicts = FALSE)))){
install.packages(p, repos=site)
suppressWarnings(suppressMessages(library(p, character.only = TRUE, quietly = TRUE, warn.conflicts = FALSE)))
}
}
#### 安装缺少的R包
source("http://bioconductor.org/biocLite.R")
biocLite(c("optparse", "plotrix", "readODS", "readxl", "yaml"))
2. 准备注释文件,这里我们给大家准备好了一个测试数据集的输入文件:
文件一:annotation注释表,大家可以按照这个格式准备你的原始文件,大家还可以在表中添加自己需要的信息
主要包括每个OTU的物种注释,从门到属;还有就是对应的整体相对丰度和在各实验组中的平均相对丰度。
文件二:这个文件实际上就是咱们提取的高丰度OTUs中的OTUs ID所对应的小OTUs table
我们给大家选取了五种注释样式和配色方案,直接运行一下命令就能生成iTOL注释文件的格式:
## 方案1. 外圈颜色、形状分类和丰度方案
# annotation.txt OTU对应物种注释和丰度,
#-a 找不到输入列将终止运行(默认不执行)-c 将整数列转换为factor或具有小数点的数字,-t 偏离提示标签时转换ID列,-w 颜色带,区域宽度等, -D输出目录,-i OTU列名,-l OTU显示名称如种/属/科名,
Rscript table2itol/table2itol.R -a -c double -D plan1 -i OTUID -l Genus -t %s -w 0.5 annotation.txt
# 生成注释文件中每列为单独一个文件
## 方案2. 生成丰度柱形图注释文件
Rscript table2itol/table2itol.R -a -d -c none -D plan2 -b Phylum -i OTUID -l Genus -t %s -w 0.5 annotation.txt
## 方案3. 生成热图注释文件
Rscript table2itol/table2itol.R -c keep -D plan3 -i OTUID -t %s otutab.txt
## 方案4. 将整数转化成因子生成注释文件
Rscript table2itol/table2itol.R -a -c factor -D plan4 -i OTUID -l Genus -t %s -w 0 annotation.txt
## 方案5. 自定义颜色
Rscript table2itol/table2itol.R -a -C table2itol/tests/INPUT/colours_1.yml -c double -D plan5 \
-i OTUID -l Genus -t %s -w 0.5 annotation.txt
做好了所有注释文件,那就赶紧上itol网站测试一下
1.首先需要 访问iTOL官网http://itol.embl.de/
2. 登录账户、或者注册账户(见上面详细教程)
3. 上传otus.nwk,再拖拽下方生成的注释方案于树上即美化
我们把plan1文件夹中所有文件一次选中,生成的注释树的结果如下图:
我们把plan2文件夹中所有文件一次选中,生成的注释树的结果如下图:
我们把plan3文件夹中所有文件一次选中,生成的注释树的结果如下图:
我们把plan4文件夹中所有文件一次选中,生成的注释树的结果如下图:
当然啦,这里的不同注释方案并不是说要让你去固定的使用某一种,你可以根据自己的需求,灵活搭配使用,最终画出你想要的结果!
比如我们综合使用以上几种不同注释方案,通过在iTOL网站上再对树形,颜色等进行微调,得到的最终效果呈现图:
后台回复“高颜值进化树”即可获得所有测试数据,注释文件以及table2itol.R 安装包等。
为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外2300+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。
学习扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
点击阅读原文,跳转最新文章目录阅读
https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA