16S扩增子测序是对细菌中具有代表性的序列进行测序,相比宏基因组测序,16S扩增子测序无法提供基因功能信息,只能给出菌群丰度信息。但是PICRUSt工具可以帮助我们基于16S扩增子测序所得的OTU丰度推测基因丰度从而得到功能信息。本节我们就来介绍PICRUSt的使用。
相比于宏基因组测序,16S扩增子测序是一种更加经济的方法,但是16S扩增子测序无法得到各个基因的丰度,只能得到物种丰度信息。想来,每一个做微生物的人除了关心菌群的差异以外,也很好奇究竟哪些功能发生了变化,那么你只做了16S又想要知道功能信息怎么办呢?那就要使用PICRUSt这个工具了,通过使用已知的基因组及其基因组组成,PICRUSt可以根据OTU的丰度推断出基因丰度,得到功能信息。
下载安装PICRUSt
1、下载最新的PICRUSt安装包
# 下载PICRUSt安装包至本地home文件夹
wget -P $HOME https://github.com/picrust/picrust/releases/download/v1.1.3/picrust-1.1.3.tar.gz
2、解压安装包
# 解压安装包
tar -zxvf $HOME/picrust-1.1.3.tar.gz
3、下载相关数据库
下载含有能够将菌群匹配到KEGG基因的信息的数据库。下载下面的两个文件并将它们保存在picrust-1.1.3/picrust/data
路径下。
# 新建路径保存所需数据库
mkdir -p $HOME/picrust-1.1.3/picrust/data
# 下载16S数据库信息
wget -P $HOME/picrust-1.1.3/picrust/data ftp://ftp.microbio.me/pub/picrust-references/picrust-1.0.0/16S_13_5_precalculated.tab.gz
# 下载KEGG基因信息
wget -P $HOME/picrust-1.1.3/picrust/data ftp://ftp.microbio.me/pub/picrust-references/picrust-1.0.0/ko_13_5_precalculated.tab.gz
4、在你的系统里安装PICRUSt
sudo pip install -e ~/picrust-1.1.3/
5、测试是否安装成功
predict_metagenomes.py --version
#> Version: predict_metagenomes.py 1.1.3
预测宏基因组
PICRUSt是基于GreenGene数据库的结果进行预测的。但是你可以发现GreenGene最新的版本还是2013年的,所以很多人可能会选择和更新速度更快的、更新的SILVA数据库比对,那么如果你想要预测就要使用另一个预测工具Tax4Fun,那可以参考此篇博文:16S预测宏基因组最强R包-Tax4Fun。
而本节我们首先从下载GreenGenes数据库的相关文件开始:
1、下载GreenGenes数据库文件
虽然之前看到说要以gg_13_5_otus的版本进行比对,但是实际上用gg_13_8_otus也是没有任何问题的。
wget ftp://greengenes.microbio.me/greengenes_release/gg_13_8_otus/taxonomy/97_otu_taxonomy.txt
2、去除De-novo OTUs(NewReferenceOTU)
PICRUSt只能基于closed reference OTU,所以你可以重新使用pick_closed_reference_otus.py
进行OTU的提取。但是如果已经使用了pick_open_reference_otus.py
的方法而且不想再进行一次OTU的选取了,那么就可以将表中NewReferenceOTU剔除。具体命令如下:
# 该命令是Qiime1下的,所以要激活Qiime1的环境
filter_otus_from_otu_table.py \
-i otu_table.biom \
-o closed_otu_table.biom \
--negate_ids_to_exclude \
-e 97_otu_taxonomy.txt
3、转换Biom表为json格式
删除De-novo OTU后,需要将.biom文件转换为传统格式。这仅适用于使用QIIME版本1.9.1生成的OTU表。
# 该命令是Qiime1下的,所以要激活Qiime1的环境
biom convert \
-i closed_otu_table.biom \
-o closed_otu_table_json.biom \
--table-type="OTU table" --to-json
接下来我们就要真正的使用PICRUSt中的指令了。第一步就是要对数据进行归一化。
4、归一化
normalize_by_copy_number.py \
-i closed_otu_table_json.biom \
-o closed_otu_table_json_normalized.biom
5、预测宏基因组
接下来,我们就可以基于16s rRNA计数数据开始预测宏基因组。此命令的输出生成类似于OTU表的文件设置。每个样品的每个KEGG基因都有一列计数。由于这种相似性,我们可以使用许多可用的QIIME命令。
predict_metagenomes.py \
-i closed_otu_table_json_normalized.biom \
-o metagenome_predictions.biom
6、统计不同水平的情况(可选)
我们可以执行的另一个步骤是将KEGG基因根据不同水平进行统计转化为Pathway计数,而不是显示每个基因标识符。通过将基因计数转换为Pathway通路计数,以便于我们的分析。
# Level 3 (highest-detail)
categorize_by_function.py \
-i metagenome_predictions.biom \
-o predicted_metagenomes_L3.biom \
-c KEGG_Pathways \
-l 3
# Level 2 (mid-detail)
categorize_by_function.py \
-i metagenome_predictions.biom \
-o predicted_metagenomes_L2.biom\
-c KEGG_Pathways \
-l 2
# Level 1 (least-detail)
categorize_by_function.py \
-i metagenome_predictions.biom \
-o predicted_metagenomes_L1.biom\
-c KEGG_Pathways \
-l 1
预测到这里已经结束,那我们如何再进一步对预测结果进行分析呢?之前已经提到最后的预测结果和Biom表十分相像,这为我们用Qiime1对其进行分析提供了可能。那我们来看看如何进行后续的分析呢?
利用Qiime1分析预测结果
1、生成参数文件
你可以根据自己的需求修改参数文件,比如修改summarize_taxa的level水平等等。
echo 'summarize_taxa:md_identifier "KEGG_Pathways"' >> picrust_parameters.txt
echo 'summarize_taxa:absolute_abundance True' >> picrust_parameters.txt
echo 'summarize_taxa:level 3' >> picrust_parameters.txt
echo 'beta_diversity:metrics bray_curtis,euclidean' >> picrust_parameters.txt
2、绘制整体分布图
我们将使用QIIME命令绘制KEGG的统计图。我们需要引用刚刚在上一步中创建的参数文件。根据输入文件确定水平。如果使用的是Level 3,则参数文件必须表示summarize_taxa:level 3
,但如果使用的是Level 2,则必须说明summarize_taxa:level 2
summarize_taxa_through_plots.py \
-i predicted_metagenomes_L3.biom \
-o sum_taxa_level3/ \
-p picrust_parameters.txt
3、Beta多样性-PCoA
a. 获取counts情况
biom summarize-table \
-i metagenome_predictions.biom \
-o metagenome_predictions_stats.txt
b. 稀释PICRUSt表
将PICRUSt表稀释到所有样本的最小测序深度。
single_rarefaction.py \
-i metagenome_predictions.biom \
-o metagenome_predictions_even_sampled.biom \
-d MINIMUM
c. 绘制PCoA图
beta_diversity_through_plots.py \
-i metagenome_predictions_even_sampled.biom \
-o bdiv_metagenome_predictions/ \
-m mapping_file.txt \
-p picrust_parameters.txt
网友评论