将QIIME2学习进行到底

qiime2-2019.1已经发布,程序稳定性越来越好,鉴于官方已经停止支持qiime1,有必要把qiime2的所有细节都理清,学好,这样才能对自己的数据进行实战分析,并将结果运用于实验和生产过程中。发现文档更新也相当快,感谢公众号宏基因组翻译的文档,让我在看许多专业术语方面扫清不少障碍,但是你介于翻译过来的命令却已经过时,还是对照着看最新版的,基本上很少改动,当然,专业英语好的除外。
发现需要学习的有几个内容,数据的过滤(嵌合体,非细菌序列,注释级别太少的等),还有就是训练一个适合自己的分类参考数据集,另外就是对于一个样本多个时间采样的结果的分析等,下面一个一个来学习。

1.数据的过滤

在分析过程中发现用自己的数据跑出来许多序列只能注释到细菌界,后面不能细分,像这种要过滤掉,刚好发现官方提供了相关的教程和命令,于是直接执行得到结果。教程里面是过滤后保留至少到门的结果,刚好是符合我的需要的,于是参数也不动了。

  #过滤没注释到门的序列
  qiime taxa filter-table \
  --i-table table.qza \
  --i-taxonomy taxonomy.qza \
  --p-include p__ \
  --o-filtered-table table-with-phyla.qza

2.训练一个适合自己的分类参考数据集

对于一般的科研项目,扩增使用的多是V3V4通用引物341F和806R,但是不少项目使用的是单独V4的引物515F和806R,而且,就是相同位置的引物,还有简并多少的区别,以及覆盖度的多少。因此,如果不是和官方同样的引物,就有必要训练一个适合项目的参考数据集。下面开始我的步骤:

1)下载并导入参考序列

#greengenes_13_8 
wget -c ftp://greengenes.microbio.me/greengenes_release/gg_13_5/gg_13_8_otus.tar.gz
unzip gg_13_8_otus.tar.gz
#或者SILVA
wget -c https://www.arb-silva.de/fileadmin/silva_databases/qiime/Silva_132_release.zip
unzip Silva_132_release.zip #这个数据更新及时,我决定用它试试
#导入参考序列
qiime tools import \
   --type 'FeatureData[Sequence]' \
   --input-path ../SILVA_132_QIIME_release/rep_set/rep_set_16S_only/99/silva_132_99_16S.fna \
   --output-path silva_132_99_16S.qza

<h1>导入物种分类信息</h1>

qiime tools import \
   --type 'FeatureData[Taxonomy]' \
   --input-format HeaderlessTSVTaxonomyFormat \
   --input-path ../SILVA_132_QIIME_release/taxonomy/16S_only/99/taxonomy_7_levels.txt  \
   --output-path ref-taxonomy.qza
#提取参考序列,由于数据较大,这步耗时相当长。这里把截取长度设置为126bp,因为我
qiime feature-classifier extract-reads   --i-sequences silva_132_99_16S.qza   --p-f-primer GTGYCAGCMGCCGCGGTAA   --p-r-primer GGACTACNVGGGTWTCTAAT --p-trunc-len 126   --p-min-length 100   --p-max-length 400   --o-reads ref-seqs.qza
#训练Naive Bayes分类器
nohup time qiime feature-classifier fit-classifier-naive-bayes \
   --i-reference-reads ref-seqs.qza \
   --i-reference-taxonomy ref-taxonomy.qza \
   --o-classifier classifier.qza &
 ```
过程相当耗时耗资源,但是对于一台一般的服务器来说不是问题,峰值内存使用在25G+。

<h2>3.通过比对过滤非细菌序列</h2>
这个主要是过滤宿主基因,应该是宏基因组测序中用的较多。
```bash
qiime quality-control exclude-seqs \
  --i-query-sequences query-seqs.qza \
  --i-reference-sequences reference-seqs.qza \
  --p-method blast \
  --p-perc-identity 0.97 \
  --p-perc-query-aligned 0.97 \
  --o-sequence-hits hits.qza \
  --o-sequence-misses misses.qza
qiime feature-table filter-features \
  --i-table query-table.qza \
  --m-metadata-file hits.qza \
  --o-filtered-table no-hits-filtered-table.qza \
  --p-exclude-ids

发表评论