进化树绘制之使用itol.kit实现进化树注释


前言

icamp分析后需要对进化树进行注释,把icamp的结果在进化树中表现出来。

本文复现Ning D, Wang Y, Fan Y, et al. Environmental stress mediates groundwater microbial community assembly. Nat Microbiol. 2024;9(2):490-501.doi:10.1038/s41564-023-01573-x中的Fig.4 Fig.4
本文使用的数据保存在https://github.com/Chthollysage/Phylogenetic-tree其中包含一份树文件和两个数据文件,以及一个代码文件。
由于文章还未发表,目前还不公开


一、itol绘制进化树注释

itol是常用的进化树绘制网站,使用的基本操作这里不做展示。
使用itol网站有诸多限制:不充值无法保存已进行的更改,无法导出注释文件,这使工作流程非常麻烦。

二、使用itol.toolkit

itol.toolkit: github

1.引入库

代码如下:

#install
install.packages("pak") #使用pak包下载可以同时下载所有依赖包,十分方便
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor") #设置镜像网站,提高下载速度
pak::pak("TongZhou2017/itol.toolkit") # 如果报错有某些包下载不完的话,多运行几次

#载入所需R包
library(itol.toolkit) # main package
library(dplyr) # data manipulation
library(data.table) # file read
library(ape) # tree operation
library(stringr) # string operation
library(tidyr) # data manipulation

对于这种依赖包很复杂的情况可以使用pak包来下载

2.读入数据

代码如下:

#记得先设置工作文件夹
#读取进化树和文件 注意:文件中序列名必须和进化树文件中的一致
tree1 <- read.tree("Bacteria_Galaxy5-[FastTree.nwk].nwk")#读取进化树
bin <- fread("B_s_groups.txt",header = TRUE)#读取分类文件
binquant <- fread("B_s_parameters_count.txt")#读取所有数据文件(所有数据全都放在一个文件里)
hub1 <- create_hub(tree = tree1)#创建仓库,集成多个单元同时输出

3. 生成注释文件

代码如下:

set.seed(111)#设置随机化种子,复现配色方案

#COLORSTRIP 外圈条带区分不同class,strip格式会同时给进化树的树枝着色。
unit_strip <- create_unit(data = bin %>% select(ID,Class),
                          key = "colorstrip",
                          type = "DATASET_COLORSTRIP",
                          color = "Spectral", #用“Spectral”配色方案”光谱“
                          tree = tree1)

#多柱状图展示组装因子
unit_multibar <- create_unit(data = binquant %>% select(ID,HeS,HoS,DL,HD,DR),
                             key = "multibar",
                             type = "DATASET_MULTIBAR",
                             tree = tree1)

#单柱状图展示确定性因素DP
unit_simplebar1 <- create_unit(data = binquant %>% select(ID,DP),
                               key = "simplebar1",
                               type = "DATASET_SIMPLEBAR",
                               tree = tree1)
#单柱状图展示随机性因素SP
unit_simplebar2 <- create_unit(data = binquant %>% select(ID,SP),
                               key = "simplebar2",
                               type = "DATASET_SIMPLEBAR",
                               tree = tree1)

#热图,可选
unit_heatmap1 <- create_unit(data = binquant %>% select(ID,HeS,HoS,DL,HD,DR),
                             key = "5",
                             type = "DATASET_HEATMAP",
                             tree = tree1)

#gradient,可选
unit_gradient <- create_unit(data = binquant %>% select(ID,DP),
                             key = "gradient1", 
                             type = "DATASET_GRADIENT", 
                             tree = tree1)


#集中输出
hub1 <- hub1+
  unit_multibar+
  unit_simplebar1+
  unit_simplebar2+
  unit_strip
  write_hub(hub1, getwd()) #单个单元输出:write_unit()

4.拖入itol网站

将树文件和生成的注释文件全都拖入itol网站中,用“export”功能导出为所需格式
在这里插入图片描述

5.ai美化

使用ai进行美化,加上标签和donuts plot
在这里插入图片描述


总结

  • itol.toolkit的优势:
  1. 利用itol的注释文档功能,可重复复现,而且无需充值
  2. 用代码替换手动操作,效率高可重复执行
  • 劣势:
  1. 出来的图比较简单,大部分美化操作还需要在ai里完成。本文中主要利用它绘制各种代表数值的bar,其他部分都使用ai进行了大量修改
  2. itol中的图形类别五花八门,有时候很难找到完美满足自己需求的图片样例(这里推荐一下itol.toolkit作者的gallery
    ,里面展示各种样图及代码),总体来说缺少自由度
  3. 使用过程中发现scale bar存在明显错误,绘图缺乏严谨性

因此,下次将展示使用r语言中的ape包绘制进化树并注释的方法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值