背景
QIIME2の種同定にはナイーブベイズを用いた分類器を使用する。QIIME2の公式サイトではGreenGenesとsilvaについて、full lengthあるいはV3-V4領域(515F-806R)を抽出した配列の99%OTUで学習した分類器が提供されている。本手法で同定する際、シーケンス領域を抽出した上で学習させた方がunclassifidなOTUが減ると報告されている(Werner et al., ISME J., 2012)。そのため、他のデータベースやV3-V4領域以外のアンプリコンシーケンスの場合は、分類器を自作する必要がある。
環境
- PC: mac mini 2018
- OS: macOS Catalina (10.15.1)
- プロセッサ: 3.2 GHz 6コアIntel Core i7
- メモリ: 32 GB 2667 MHz DDR4
- グラフィックス: Intel UHD Graphics 630 1536 MB
- QIIME2: 2019.7 (Dockerにてインストール)
※Dockerのメモリには24GBを割り当て
方法
チュートリアルを参考にsilvaからV1-V2領域(27F-338R)を抽出して学習させる。
silvaのダウンロード
2020年5月3日現在のSilvaの最新バージョンは138(2019年12月バージョン)だが、QIIME2の公式チュートリアルに合わせて132(2017年12月バージョン)を使用する。
※数字は飛んでいるが138の1つ前のバージョンが132
mkdir classifier
mkdir classifier/27f_338r_silva99
cd classifier/27f_338r_silva99/
curl -O https://www.arb-silva.de/fileadmin/silva_databases/qiime/Silva_132_release.zip
unzip Silva_132_release.zip
####QIIME2を起動
docker run -it -v $(pwd):/data qiime2/core:2019.7
####分類器の作成
#配列ファイル(fastaファイル)のインポート
qiime tools import \
--type 'FeatureData[Sequence]' \
--input-path SILVA_132_QIIME_release/rep_set/rep_set_all/99/silva132_99.fna \
--output-path silva132_99.qza
#細菌種名ファイル(.txt)のインポート
qiime tools import \
--type 'FeatureData[Taxonomy]' \
--input-format HeaderlessTSVTaxonomyFormat \
--input-path SILVA_132_QIIME_release/taxonomy/taxonomy_all/99/taxonomy_7_levels.txt \
--output-path silva132_99_taxonomy_7_levels.qza
#V1-V2領域の抽出
qiime feature-classifier extract-reads \
--i-sequences silva132_99.qza \
--p-f-primer AGRGTTTGATYMTGGCTCAG \
--p-r-primer TGCTGCCTCCCGTAGGAGT \
--p-min-length 100 \
--p-max-length 400 \
--o-reads ref-seqs_silva99_v12.qza
#分類器の訓練
#コマンド実行後に「Killed」と表示されて処理が終了する場合、メモリ不足の可能性がある。
#Dockerのメモリに8GB割り当てている状態では処理が中断し、24GB割り当てると問題なく実行された。
qiime feature-classifier fit-classifier-naive-bayes \
--i-reference-reads ref-seqs_silva99_v12.qza \
--i-reference-taxonomy silva132_99_taxonomy_7_levels.qza \
--o-classifier classifier_silva99_v12.qza
##補足
- silva132には16Sのみ、18Sのみ、両者を合わせたmulti fastaファイルが存在するが、QIIME2開発者は分類器の訓練データとして両者を合わせたmulti fastaファイル及びtaxonomyファイルを使用している(QIIME2 forum)。これは、公式サイトで配布されているqzaファイルからも確認できる(下図はダウンロードしたSilva_132_release.zip内の構造)。
- silvaのRef NR(non-redundant) 99(今回使用しているDB)は約70万のリードからなる(silva132)。
- silvaを用いて種同定するときはQuast et al., Nucleic Acids Res., 2013、Yilmaz et al., Nucleic Acids Res., 2014を引用する(silva132)。
- 「qiime feature-classifier」実行後に「Killed」と表示されて処理が終了する場合、メモリ不足の可能性がある。当初Dockerのメモリに8GB割り当てている状態では処理が中断し、24GB割り当てると問題なく実行された。