1. 程式人生 > >iTOL快速繪製顏值最高的進化樹!

iTOL快速繪製顏值最高的進化樹!

[TOC]

iTOL簡介

大家在看高分文章時,總會驚歎於,為什麼人家能做出那麼好看而且高大上的系統發育樹,而且好看的圖也能直接提升文章的檔次,衝擊高分文章。人家的樹不管是從配色還是各種註釋資訊都讓人無可挑剔,而你每次花了半個月時間做的進化樹不是被老闆嫌棄配色醜,就是太單調,沒有各種輔助的註釋資訊。然後你默默捧起別人的文章學習時發現他們絕大部分都是用iTOL這個線上工具來進行的系統發育樹的美化的。

之前看有好幾個公眾號的幾篇文章推送了教大家怎麼使用iTOL這個網站

例如:

iTOL的基本使用流程:

  1. 搜尋itol後進入如下介面,點右上角Login進入系統
  2. 新使用者需要郵箱註冊,老使用者直接登入
  3. 點選進入My Tree,點選Upload tree files 或者直接把樹檔案拖入框中
  4. 點選樹名稱進入樹的編輯介面,左上角依次是放大,縮小,還原當前視窗,樹的資訊以及搜尋。右上角是Controls介面
  5. Basic介面可以設計樹的形式,枝長,單擊分支可編輯顏色,線條樣式,序列名稱,在Tree structure中可設定外群等
  6. 在Advance中可以顯示或隱藏支援率 7.在合併分支選項中可以設定合併分支的閾值

大家如果從來沒有用過iTOL可以看看以上推文,它們會教你怎麼快速入門iTOL網站。但是這些推文都只教你了怎麼去註冊iTOL的使用者,怎麼上傳你的樹檔案等一些非常簡單基本的操作,離真正讓你自己快速繪製一個高顏值進化樹

距離還很遠!

這些文章都只介紹了軟體線上網頁的使用,但如何準備軟體的資料確是絕大多數使用者的難點。當你想繪製自己的進化樹時,花了半個月搞出來的圖依舊很醜。今天巨集基因組就為你上點乾貨,你讓半天時間製作的樹,顏值超過之前半個月的工作。

怎麼樣才算是一顆高顏值的進化樹呢?

比如以下這篇文章:

這是巨集基因組公眾號解讀過的一篇microbiome的文章 (Beckers, B., et al. (2017). Microbiome 5(1): 25.)。 該圖是本文的5個主圖之一,也是本文最為重要的圖。本文無論在資料量還是資料統計展示都很常規,但能發到10分左右的雜誌,還是很值得大家學習一下!作者選用了與楊樹不同生態位(根圍土壤、根系、莖、葉子)相關的高丰度菌繪製環形系統發育樹。選用線上的iTOL網站進行系統發育樹美化。不同環形顏色代表不同細菌門,柱形圖代表不同OTUs的相對丰度。

image

這篇文章中的圖就是用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包就能幫助我們快速一鍵生成註釋檔案啦!

製作註釋檔案

下面我將教大家快速自動生成高大上的註釋檔案

Windows軟體安裝

首先要安裝table2itol這個進化樹美化註釋包,要確保你的R的版本高於 3.2 ,如果是windows系統推薦安裝R 3.5,這樣可以在Rstudio介面下直接呼叫Terminal,(但R語言在windows中對命令列支援比較差,容易出問題)。這時候只有我們準備的檔案格式是txt格式就能使得table2itol在window系統下能執行:

1. windows直接下載,將table2itol該資料夾放置在:C:\Users\X\Documents 資料夾位置,注意路徑中不能有中文。

Linux軟體安裝

有的同學習慣使用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註釋表,大家可以按照這個格式準備你的原始檔案,大家還可以在表中新增自己需要的資訊 image

主要包括每個OTU的物種註釋,從門到屬;還有就是對應的整體相對丰度和在各實驗組中的平均相對丰度。

檔案二:這個檔案實際上就是咱們提取的高丰度OTUs中的OTUs ID所對應的小OTUs table

image

  1. 然後我們所有的準備工作就做好了,可以執行程式碼進行註釋檔案的生成啦!

生成註釋檔案

我們給大家選取了五種註釋樣式和配色方案,直接執行一下命令就能生成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

註釋檔案美化

  1. 登入賬戶、或者註冊賬戶(見上面詳細教程
  2. 上傳otus.nwk,再拖拽下方生成的註釋方案於樹上即美化

我們把plan1資料夾中所有檔案一次選中,生成的註釋樹的結果如下圖:

方案1. 屬名稱多分類層級

image

我們把plan2資料夾中所有檔案一次選中,生成的註釋樹的結果如下圖:

方案2. 丰度柱狀圖

image

我們把plan3資料夾中所有檔案一次選中,生成的註釋樹的結果如下圖:

方案3. 熱圖

image

我們把plan4資料夾中所有檔案一次選中,生成的註釋樹的結果如下圖:

方案4

image

當然啦,這裡的不同註釋方案並不是說要讓你去固定的使用某一種,你可以根據自己的需求,靈活搭配使用,最終畫出你想要的結果! 比如我們綜合使用以上幾種不同註釋方案,通過在iTOL網站上再對樹形,顏色等進行微調,==得到的最終效果呈現圖==: image

後臺回覆“高顏值進化樹”即可獲得所有測試資料,註釋檔案以及table2itol.R 安裝包等。

猜你喜歡

寫在後面

為鼓勵讀者交流、快速解決科研困難,我們建立了“巨集基因組”專業討論群,目前己有國內外1200+ 一線科研人員加入。參與討論,獲得專業解答,歡迎分享此文至朋友圈,並掃碼加主編好友帶你入群,務必備註“姓名-單位-研究方向-職稱/年級”。技術問題尋求幫助,首先閱讀《如何優雅的提問》學習解決問題思路,仍末解決群內討論,問題不私聊,幫助同行。 image

學習擴增子、巨集基因組科研思路和分析實戰,關注“巨集基因組” image