本文轉載自微生物生態公眾號,己獲授權。主編劉永鑫對本文進行了測試、版本更新、添加部分操作代碼。 前段時間盧瑟菌已經給大家普及了基于原核16S rDNA高通量測序結果對微生物群落功能或表型進行預測的四種方法——PICRUSt、Tax4Fun、FAPROTAX及BugBase(詳細戳這里)。本篇軟文針對功能預測的一支新秀——FAPROTAX,詳細介紹其使用方法。 關于FAPROTAX的介紹可參閱官網說明或盧瑟菌的軟文。 FAPROTAX官網鏈接: http://www.zoology./louca/FAPROTAX/lib/php/index.php?section=Instructions 這里簡單一提 FAPROTAX原理: 作者先根據文獻資料手動構建了聯系物種分類與功能注釋的FAPROTAX數據庫;后又編寫了聯系OTU分類表與FAPROTAX數據庫的python腳本;最后,只要將基于16S的OTU分類表通過python腳本就可以輸出微生物群落功能注釋預測結果(如下圖)。 FAPROTAX特點: FAPROTAX較適用于對環境樣本(如海洋、湖泊等)的生物地球化學循環過程(特別是碳、氫、氮、磷、硫等元素循環)進行功能注釋預測。因其基于已發表驗證的可培養菌文獻,其預測準確度較好,但相比于上述PICRUSt和Tax4Fun來說預測的覆蓋度可能會降低。 PICRUSt輸入的物種豐度表目前只能用Greengene數據庫進行物種注釋,在這一點上FAPROTAX更靈活,因為它識別的是菌的屬、種的名稱,只要你注釋到的菌己被報導有這方面的功能,無論注釋數據庫是Greengene、Silva和RDP,OTU是有參考還是de novo的結果都可以識別。! 在使用FAPROTAX做功能預測前,有一些準備工作: a、FAPROTAX腳本collapse_table.py下載(請使用python 2.7); b、FAPROTAX功能注釋數據庫下載; c、物種豐度表已生成(文本格式、Biom格式)。
FAPROTAX腳本及數據庫下載: FAPROTAX是由python語言編寫的腳本collapse_table.py 當前最新版本依然是FAPROTAX 1.1,2017年6月10日更新,安裝方法如下: wget http://www.zoology./louca/FAPROTAX/SECTION_Download/MODULE_Downloads/CLASS_Latest%20release/UNIT_FAPROTAX_1.1/FAPROTAX_1.1.tar.gz # 下載tar -xvzf FAPROTAX_1.1.tar.gz # 解壓python FAPROTAX_1.1/collapse_table.py # 測試是否可運行,彈出幫助即正常工作 June 10, 2017更新數據庫 假設說我們通過OTU聚類、物種分類注釋,已經得到了物種豐度表,接下來我們就可以使用FAPROTAX進行功能預測了!
FAPROTAX可識別的物種豐度表有兩種,一種是文本格式(classical (tabular) taxon tables),一種是Biom格式。 1)文本格式命令行: # 文本OTU表中存在名為taxonomy的列,包括物種分類學信息 biom convert -i result/otu_table_tax.biom -o result/otu_table_tax.txt --table-type='OTU table' --to-tsv --header-key taxonomy # 將包括物種信息的OTU表轉換為功能注釋分類表 python FAPROTAX_1.1/collapse_table.py -i result/otu_table_tax.txt -o result/otu_table_tax.faprotax -g FAPROTAX_1.1/FAPROTAX.txt --column_names_are_in last_comment_line -d 'taxonomy' -c '#' -v --force # --column_names_are_in last_comment_line 指定注釋為最后一行 # -d 批定物種信息的列名 2)Biom格式命令行: # 注釋在OTU表最后一列類型,常用 python FAPROTAX_1.1/collapse_table.py -i result/otu_table_tax.biom -o result/otu_table_tax.faprotax -g FAPROTAX_1.1/FAPROTAX.txt --collapse_by_metadata 'taxonomy' -v --force # 另一種為OTU表行名即為物種信息,通常為summarize_taxa.py生成屬水平biom格式 python FAPROTAX_1.1/collapse_table.py -i result/sum_taxa/otu_table4_L6.txt -o result/otu_table_tax.faprotax -g FAPROTAX_1.1/FAPROTAX.txt --force -v 上述, -i輸入文件,物種豐度表; -g輸入文件,FAPROTAX數據庫; -o輸出文件,功能豐度表; --collapse_by_metadata指定biom中的物種信息列 這三個是所有選項中最基本的選項!在其他選項均為默認的情況下,是最簡短的命令行。 如果你覺得這三個選項滿足不了你的需要,可詳細了解更多選項: http://www.zoology./louca/FAPROTAX/lib/php/index.php?section=Instructions 以上不同格式得到一個相同的功能表。 -i, --input_table(必選) 輸入,OTU表,tabular或BIOM格式。 -g, --input_groups_file(必選) 輸入,FAPROTAX數據庫。 -o, --out_collapsed(可選) 輸出,功能表,總表。 -s, --out_sub_tables_dir(可選) 輸出,功能表,分表,每類功能單獨生成一個表(one per functional group),表內僅包含功能相關的OTU。 -r, --out_report(可選) 輸出,報告文件,記錄每個OTU相關的功能group。 --out_groups2records_table(可選) 輸出,列出哪些OTUs與哪組功能相關。1 (association),0 (no association)。 --out_group_overlaps(可選) 輸出,列出兩組功能共有的OTUs。 --out_group_definitions_used(可選) 輸出,輸出指定功能group。 -d, --row_names_are_in_column(可選) 指定行名(物種分類)所在列,僅限文本輸入文件,首列列號為0,以此類推。 --collapse_by_metadata(可選) 指定行名(物種分類)所在列,僅限Biom輸入文件,首列列號為0,以此類推。 --dont_parse_group_metadata(可選) 輸出文件不包含任何功能信息。 --column_names_are_in(可選) 指定輸入文本文件列名(e.g. sample names)所在位置:'none' (無列名), 'last_comment_line' 和 'first_data_line' (default). --table_delimiter(可選) 指定輸入文本文件分隔方式,默認為'tab'。 --omit_columns(可選) 忽略某列,首列列號為0,以此類推。如要去掉第1,102-104列:--omit_columns '0,101,102,103'。 --group_leftovers_as(可選) 命名未注釋到功能的分類,如標記為 'other':--group_leftovers_as 'other'。 -n, --normalize_collapsed(可選) 標準化輸出:'none'(不進行標準化, default), 'columns_before_collapsing' (TSS of the OTU table), 'columns_after_collapsing' (TSS of the function table), 'columns_before_collapsing_excluding_unassigned' (TSS of the OTU table restricted to functionally assigned OTUs)。 -v, --verbose(可選) 展示命令執行過程細節 -f, --force(可選) 強制覆蓋已存在文件 -h, --help(可選) 幫助文件
如果你覺得看選項的解釋不夠形象,那么下面有一些選項運用實例。
1)幫助選項 collapse_table.py -h
2)Biom格式輸入、輸出,-v 展示命令執行過程細節 collapse_table.py -i tax_table.biom -o func_table.biom -g FAPROTAX.txt -v 注:此處biom表內的IDs對應的是分類信息而不是OTU編號,可由Qiime腳本summarize_taxa.py或summarize_taxa_through_plots.py產生。
3)如果biom表內IDs對應的不是分類信息,則需要指定分類信息所在表內的位置(列),如“taxonomy”。 collapse_table.py -i tax_table.biom -o func_table.biom -g FAPROTAX.txt -v --collapse_by_metadata 'taxonomy' 注:make_otu_table.py或pick_open_reference_otus.py等Qiime腳本產生的biom表屬于這種類型。--collapse_by_metadata僅限使用在Biom格式輸入時。
4)文本格式(classical (tabular) taxon tables)輸入、輸出,-d指定分類信息所在表內的位置(列)。 制表符分隔的文本文件 collapse_table.py -i tax_table.tsv -o func_table.tsv -g FAPROTAX.txt -v -d 'taxonomy' -c '#' 注:-d僅限使用在文本格式輸入時。輸入文件格式,每一行表示一個分類taxa,每一列表示一個物種,物種分類信息存儲在名為“taxonomy”的列內。-c # 是說,當文件內出現“#”時,忽略此行(即與“#”的通常用法一致),這就保證,文件的第一個非注釋(無“#”)行是列名header line。
5)如果列名也含有“#”,可以使用'--column_names_are_in last_comment_line'告訴電腦,最后一個注釋行是列名 collapse_table.py -i tax_table.tsv -o func_table.tsv -g FAPROTAX.txt --column_names_are_in last_comment_line -d 'taxonomy' -c '#' -v 6)如果文件內沒有列名,可使用'--column_names_are_in none'告訴電腦列名為空,這樣就需要指出物種分類存在于哪一列,如下0表示第一列,以此類推。 collapse_table.py -i tax_table.tsv -o func_table.tsv -g FAPROTAX.txt --column_names_are_in none -c '#' -v -d 0
7)如果表格有多余的列,如第一列為OTU編號時,或是有樣品列不想保存到輸出文件,可運行如下指令(例,去掉第1,102-104列) collapse_table.py -i tax_table.tsv -o func_table.tsv -g FAPROTAX.txt -d 'taxonomy' -c '#' --omit_columns '0,101,102,103' -v
8)未注釋到功能的物種分類,標記上other collapse_table.py -i tax_table.biom -o func_table.biom -g FAPROTAX.txt --group_leftovers_as 'other' -v
9)輸出報告文件 collapse_table.py -i tax_table.biom -o func_table.biom -g FAPROTAX.txt -r report.txt -v
10)標準化輸出 collapse_table.py -i tax_table.biom -o func_table.biom -g FAPROTAX.txt -n columns_after_collapsing -v
11)指定輸出格式。默認情況下,輸入和輸出格式相同(同為biom或文本格式)。使用'--output_format_collapsed'可指定輸出格式 collapse_table.py -i tax_table.biom -o func_table.tsv -g FAPROTAX.txt --output_format_collapsed classical -v 1)物種分類格式 以下是三種可用的物種分類的格式,不同層次分類用分號隔開,分別表示界、門、綱、目、科、屬、種… k__Bacteria;p__Proteobacteria;c__Gammaproteobacteria;o__Xanthomonadales;f__Xanthomonadaceae;g__Thermomonas;s__fusca
2)序列注釋后,經常會產生一些不夠詳細的物種分類信息,如注釋不到科、屬水平。FAPROTAX也允許這種輸入,但是這種情況下由于分類不夠詳細,相應的,能夠預測出的功能也更少。 FAPROTAX的輸出結果格式如下: 1)report文件:詳細記錄了每個功能包含多少個OTU(物種分類),以及包含哪些OTU。基于此,我們可以根據關注的功能找到對應的OTU。 2)功能豐度表:第一列為預測的功能列表,其余為樣品列,數值表示相對豐度?;诠δ茇S度表,我們就可以做出各種樣式美美的圖。 參考文獻: Louca S, Parfrey L W, Doebeli M. Decoupling function and taxonomy in the global ocean microbiome[J]. Science, 2016, 353(6305): 1272-1277. |
|