手记

Qiime1-8.如何从OTU表中挑选部分样本?

终于回来继续写了。本节讲解一下对OTU表的一些基本处理,提取生成你所需要的OTU表。

查看OTU表的count数

当运行完基本的分析流程后,我们往往会想要查看一下每个样本的OTU count数量。知道所有样本的OTU count数量的最小值、最大值、中位数等信息,对我们选取OTU和分析十分重要。如果存在个别样本的测序结果并不理想,count数目过低,那我们可能就需要对之前分析流程的一些参数进行适当的修改。在qiime1我们可以使用来自biom包的命令对OTU表进行总结,具体如下:

biom summarize-table \
-i pick_otus/otu_table_rdp_nochimera.biom \
-o pick_otus/otu_table_rdp_nochimera_stats.txt

接着我们就要思考以下几个问题:
1、什么样的样本应该被保留进行下游分析?
Samples with low OTU-count depth.
Negative samples
OTU-depth cut off (1000 OTU's/sample are suggested)
2、什么样的OTU/Taxa应该被保留?
OTU丰度的阈值应该怎么确定?是使用0.01%还是0.001%?
有一些特殊的taxa是不是应该被剔除?比如Cyanobacteria?
3、针对一个多因素实验,怎么进一步分析仅有的一个OTU表?

为了解决上述的问题,我们就要对OTU表进行过滤,以获得我们需要的那一部分信息数据。

从OTU表中挑选所需的样本

1、正向选择:挑选你需要的想要保留的样本

#从OTU表中挑选所有正常健康人的样本filter_samples_from_otu_table.py \
-i otu_table.biom \
-o otu_table_filtered.biom \
-m mapping_file.txt \
--output_mapping_fp mapping_file_filtered.txt \
-s 'Condition:CO'

2、反向选择:去除你不需要的要被剔除的样本

#剔除所有正常健康人的样本filter_samples_from_otu_table.py \
-i otu_table.biom \
-o otu_table_no_gut.biom \
-m mapping_file.txt \
--output_mapping_fp mapping_file_no_gut.txt \
-s 'Condition:*,!CO'

3、多个条件的选择

#选择正常健康的男性样本filter_samples_from_otu_table.py \
-i otu_table.biom \
-o otu_table_gut_d28.biom \
-m mapping_file.txt \
--output_mapping_fp mapping_file_gut_d28.txt \
-s 'Condition:CO;Sex:1'

基于分组信息分割OTU表

比如你的样本中有一栏信息是样本采集时间,现在你想要根据采集时间对OTU进行划组,那么你就可以输入以下的命令:

split_otu_table.py \-i otu_table.biom \-o split_by_month \-m mapping_file.txt \-f Month

去除低count数的样本

#去除count数在1000以下的样本filter_samples_from_otu_table.py \-i otu_table.biom \-o otu_table_m1000.biom \--output_mapping_fp mapping_file_m1000.txt \--min_count 1000

从OTU表中过滤Taxa

1、OTU水平的过滤

#通常我们会按照万分之一进行过滤filter_otus_from_otu_table.py \-i otu_table.biom \-o otu_table_n01.biom \--min_count_fraction 0.0001

2、Taxa水平的过滤
a. 正向选择

#只保留phylum水平的Bacteroidetes和Firmicutesfilter_taxa_from_otu_table.py \-i otu_table.biom \-o otu_table_only_bacteroidetes_firmicutes.biom \-p p__Bacteroidetes,p__Firmicutes

b.负向选择

#剔除phylum水平的Bacteroidetes和Firmicutesfilter_taxa_from_otu_table.py \-i otu_table.biom \-o otu_table_no_bacteroidetes_firmicutes.biom \-n p__Bacteroidetes,p__Firmicutes

c.多个条件选择

#保留Firmicutes除了Clostridia classfilter_taxa_from_otu_table.py \-i otu_table.biom \-o otu_table_all_firmicutes_no_clostridia.biom \-p p__Firmicutes \-n c__Clostridia

3.依据分类水平分割OTU表
不同数字分别代表的分类水平:
1 = kingdom, 2 = phylum, 3 = class, 4 = order, 5 = family 6 = genus, 7 = species

#获得Class水平的OTU表split_otu_table_by_taxonomy.py \-i otu_table.biom \-o otu_table_by_level3 \-L 3



作者:jlyq617
链接:https://www.jianshu.com/p/726b27d8a5e7


0人推荐
随时随地看视频
慕课网APP