本文转载自微生物生态公众号,己获授权。主编刘永鑫对本文进行了测试、版本更新、添加部分操作代码。 前段时间卢瑟菌已经给大家普及了基于原核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)功能丰度表:第一列为预测的功能列表,其余为样品列,数值表示相对丰度。基于功能丰度表,我们就可以做出各种样式美美的图。 参考文献: Louca S, Parfrey L W, Doebeli M. Decoupling function and taxonomy in the global ocean microbiome[J]. Science, 2016, 353(6305): 1272-1277. |
|