MetaPhlAn2:宏基因組物種組成分析

簡介

MetaPhlAn2是分析微生物群落(細菌、古菌、真核生物和病毒)組成的工具,它在宏基因組研究中非常有用,只需一條完命令即可獲得微生物的物種丰度信息(擴增子物種組成需要質控、拼接、拆樣本、切除引物、比對等步驟,此軟件居然分析宏基因組這麼方便)。同時配合自帶的腳本可進一步統計和可視化。

主頁:http://segatalab.cibio.unitn.it/tools/metaphlan2/

MetaPhlAn2可以基於宏基因組數據,獲得微生物群體中種水平精度的組成,包括細菌、古菌、真核生物和病毒。如果有株水平基因組的物種,也可以追蹤和研究。

MetaPhlAn2整理了超過17000個參考基因組,包括13500個細菌和古菌,3500個病毒和110種真核生物,彙編整理了100萬+類群特異的標記基因,可以實現:

  • 精確的分類群分配

  • 準確估計物種的相對丰度

  • 種水平精度

  • 株鑑定與追蹤

  • 超快的分析速度

軟件 2015年發表於Nature Method,截止18年4月21日Google Scholar統計引用183次。該軟件通訊作者為意大利特蘭託大學的助理教授Nicola Segata的計算宏基因組實驗室,己發表68篇文章,發表和維護的軟件有14個,其中著名的有MetaPhlAn2, GraPhlAn, LEfSe, ShortBRED, MicroPITA, HUMAnN等。如果你對他不熟悉,那一定聽説過他的博後老闆Curtis Huttenhower(Picrust, Lefse通訊作者)。

MetaPhlAn2:宏基因组物种组成分析

實驗室主頁: http://segatalab.cibio.unitn.it

看看軟件主要能幹什麼

MetaPhlAn2:宏基因组物种组成分析

分析人類微生物組數據,微生物和樣本進行層級聚類

MetaPhlAn2:宏基因组物种组成分析

人類微生物組數據多時間點普氏菌屬株水平的指紋

軟件安裝

優秀的是軟件是一直在更新維護的,幾年都沒更新的軟件,如果還有更好的選擇就不建議使用。

此軟件一直在更新維護,最近一次更新是兩週前。

軟件倉庫:https://bitbucket.org/biobakery/metaphlan2/overview

依賴關係說明

軟件依賴python2.7+和numpy包,同時居然支持python3。

如果使用Bowtie2結果為輸入文件,則無任何依賴關係。

utils/metaphlan_hclust_heatmap.py腳本繪製熱圖時,依賴matplotlib包

如果想輸出biom格式結果,需要安裝R包biom

結果的進一步可視化,如使用hclust2和GraPhlAn請參考相關軟件安裝說明

下載和安裝代碼

請學習時下載安裝最新版,如下代碼僅為本文章作者學習此軟件時的版本,僅供參考。主要包括下載、解壓、添加環境變量。

<code>wget https://bitbucket.org/biobakery/metaphlan2/get/default.zip
unzip default.zip
mv biobakery-metaphlan2-5175d8783801 metaphlan2
cd metaphlan2/
export PATH=`pwd`:`pwd`/utils:$PATH
export mpa_dir=`pwd`
metaphlan2.py -v # MetaPhlAn version 2.7.6 (5 March 2018)/<code>

使用實例

定量物種譜

大家都知道擴增子分析前期處理步驟複雜,宏基因組分析應該更復雜,但此軟件卻是例外,操作簡單,一條例命令從原始數據拿到物種譜(相當於標準化後的OTU表)。是不是很牛B。

而且作者考慮了不同用戶的需求,有多種使用情況下都可用,下面多種方法根據自己的輸入文件格式任選其一。

如果輸入文件是fastq,需要依賴bowtie2安裝好

<code>metaphlan2.py metagenome.fastq --input_type fastq > profiled_metagenome.txt/<code>

推薦輸出bowtie2的比對結果,方便下次快速重新計算,並使用多線程-nproc

<code>metaphlan2.py metagenome.fastq --bowtie2out metagenome.bowtie2.bz2 --nproc 9 --input_type fastq > profiled_metagenome.txt/<code>

也可以使用bowtie2輸出文件

<code>metaphlan2.py metagenome.bowtie2.bz2 --nproc 5 --input_type bowtie2out > profiled_metagenome.txt/<code>

也可以分別進行比對和定量

<code>bowtie2 --sam-no-hd --sam-no-sq --no-unal --very-sensitive -S metagenome.sam -x ${mpa_dir}/databases/mpa_v20_m200 -U metagenome.fastq
metaphlan2.py metagenome.sam --input_type sam > profiled_metagenome.txt/<code>

最常用的是使用雙端壓縮fastq文件,但並不考慮配對信息

<code>metaphlan2.py --input_type fastq  profiled_metagenome.txt/<code>

最好調用多線程,並輸出比較結果

<code>metaphlan2.py --bowtie2out metagenome.bowtie2.bz2 --nproc 9 --input_type fastq  profiled_metagenome1.txt/<code>

第一次使用,程序會自己下載數據庫至安裝目錄中,並進行校驗、解壓、解壓、bowtie2建索引,根據網速和服務器性能可能需要很長時間1-N小時。

輸出結果為各層級物種相對丰度值,有點像lefse的輸入文件格式(方便lefse下游差異分析)

<code>#SampleID Metaphlan2_Analysis
k__Bacteria 100.0
k__Bacteria|p__Actinobacteria 49.91104
k__Bacteria|p__Proteobacteria 46.00995
k__Bacteria|p__Firmicutes 2.45456
k__Bacteria|p__Bacteroidetes 0.99062
k__Bacteria|p__Cyanobacteria 0.63383
k__Bacteria|p__Actinobacteria|c__Actinobacteria 49.91104
k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria 22.82115
k__Bacteria|p__Proteobacteria|c__Betaproteobacteria 16.60788/<code>

多個樣品批處理

假如我們有25-28一共4個樣本,調用for循環並轉後臺並行處理

<code>cd ~/project
for i in `seq 25 28`;do
metaphlan2.py --nproc 9 --input_type fastq metaphlan2_${i}.txt &
done/<code>

個人使用上面命令處理輸入文件為壓縮格式fastq時,偶爾會出錯,幫修改為下面兩步法分別比對和生成表格,更保險

<code>for i in `seq 25 28`;do
bowtie2 -p 9 --sam-no-hd --sam-no-sq --no-unal --very-sensitive -S temp_${i}.sam -x ~/software/metaphlan2/databases/mpa_v20_m200 -U Sample_${i}.rmhost.1.fq.gz,Sample_${i}.rmhost.2.fq.gz &
done

for i in `seq 25 28`;do
metaphlan2.py temp_${i}.sam --input_type sam > metaphlan2_${i}.txt &
done/<code>

樣品物種譜合併

merge_metaphlan_tables.py命令可以將每個樣品結果表合併,程序位於程序的utils目錄中,請自行添加環境變量或使用絕對路徑。合併時支持輸入文件多個文件空格分隔,或使用通配符(如下)。可結合sed刪除樣本名中共有部分,精簡樣品名方便可視化簡潔美觀

<code>merge_metaphlan_tables.py metaphlan2*.txt | sed 's/metaphlan2_//g' > merged_metaphlan2.txt/<code>

獲得了矩陣表,下面可以進行各種統計分析與可視化啦!

<code>ID 25 26 27 28
#SampleID Metaphlan2_Analysis Metaphlan2_Analysis Metaphlan2_Analysis Metaphlan2_Analysis
k__Bacteria 100.0 100.0 100.0 100.0
k__Bacteria|p__Actinobacteria 49.91104 45.2479 54.37222 48.77918
k__Bacteria|p__Actinobacteria|c__Actinobacteria 49.91104 45.2479 54.37222 48.77918
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales 49.53809 44.96297 54.09146 48.77918
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Cellulomonadaceae 0.08247 0.064 0.0 0.0
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Cellulomonadaceae|g__Cellulomonas 0.08247 0.064 0.0 0.0
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Cellulomonadaceae|g__Cellulomonas|s__Cellulomonas_unclassified 0.08247 0.064 0.0 0.0/<code>

繪製熱圖

<code>metaphlan_hclust_heatmap.py -c bbcry --top 25 --minv 0.1 -s log --in merged_metaphlan2.txt --out abundance_heatmap.pdf
metaphlan_hclust_heatmap.py -c bbcry --top 25 --minv 0.1 -s log --in merged_metaphlan2.txt --out abundance_heatmap.png/<code>

c設置顏色方案,top設置物種數量,minv最大相對丰度,s標準化方法,文件名結尾可先pdf/png/svg三種圖片格式。更多說明詳見 metaphlan_hclust_heatmap.py -h

MetaPhlAn2:宏基因组物种组成分析

按各樣本丰度繪製熱圖,顯示前25種高丰度菌種類,樣品默認採用bray_curtis距離聚類,微生物採用相關性距離聚類;數值採用對數10進行變換

自定義數據庫

基於bowtie2數據庫重建標記序列

<code>bowtie2-inspect ~/software/metaphlan2/databases/mpa_v20_m200 > markers.fa/<code>

追求你獲得的maker至數據庫

<code>cat new_marker.fa >> markers.fa
bowtie2-build markers.fa ~/software/metaphlan2/databases/mpa_v21_m200/<code>

並在python命令行中添加相應的物種註釋信息,詳見 https://bitbucket.org/biobakery/metaphlan2/overview#markdown-header-customizing-the-database

株水平群體基因組

此步配合StrainPhlAn軟件,分析宏基因樣本中菌株水平序列變異,輸入序列樣本,輸出MSA多序列比對文件。StrainPhlAn採用RAxML構建進化樹。

可以生成如下結果:

MetaPhlAn2:宏基因组物种组成分析

以HMP6個樣本為例,分析糞擬桿菌Bacteroides caccae序列在株水平的變異

有需要有朋友可按如下教程安裝相關軟件並分析 https://bitbucket.org/biobakery/metaphlan2/overview#markdown-header-metagenomic-strain-level-population-genomics

GraPhlAn圖

需要安裝好GraPhlan

<code># 基於丰度表生成graphlan文件
export2graphlan.py --skip_rows 1,2 -i merged_metaphlan2.txt --tree merged_abundance.tree.txt --annotation merged_abundance.annot.txt --most_abundant 100 --abundance_threshold 1 --least_biomarkers 10 --annotations 5,6 --external_annotations 7 --min_clade_size 1
# 繪圖
graphlan_annotate.py --annot merged_abundance.annot.txt merged_abundance.tree.txt merged_abundance.xml
graphlan.py --dpi 300 merged_abundance.xml merged_abundance.png --external_legends/<code>

建議輸出文件輸出pdf,方便後期修改文字大小和內容

MetaPhlAn2:宏基因组物种组成分析

採用Graphlan展示物種組成

進一步學習

可參考metaphlan2官方教程

https://bitbucket.org/biobakery/biobakery/wiki/metaphlan2

MetaPhlAn2:宏基因组物种组成分析

分析流程

參考文獻

Duy Tin Truong, Eric Franzosa, Timothy L Tickle, Matthias Scholz, George Weingart, Edoardo Pasolli, Adrian Tett, Curtis Huttenhower, and Nicola Segata

MetaPhlAn2 for enhanced metagenomic taxonomic profiling

Nature Methods 12, 902–903 (2015)

10000+:菌群分析 寶寶與貓狗 梅毒狂想曲 提DNA發Nature Cell專刊 腸道指揮大腦

系列教程:微生物組入門 Biostar 微生物組 宏基因組

專業技能:學術圖表 高分文章 生信寶典 不可或缺的人


分享到:


相關文章: