Cloudflare R2からダウンロードしたペアエンドのFASTQデータを解析します。QIIME 2環境を有効化し、データの取り込み、品質確認、ノイズ除去、分類の順に進めます。
この章のコマンドは、raw-data/がある作業フォルダで実行します。環境名、プライマー配列、分類器の版は教材の指定を使います。
入力データと完成イメージ
作業フォルダへ移動してから、次のコマンドをまとめてコピー&ペーストします。raw-data/を作成し、8個のFASTQファイルをCloudflare R2からその中へダウンロードします。
mkdir raw-data
wget -P raw-data https://pub-3323395ea28d4d81afab5d75dd0b6484.r2.dev/nextseq/raw-data/1_S1_R1_001.fastq.gz
wget -P raw-data https://pub-3323395ea28d4d81afab5d75dd0b6484.r2.dev/nextseq/raw-data/1_S1_R2_001.fastq.gz
wget -P raw-data https://pub-3323395ea28d4d81afab5d75dd0b6484.r2.dev/nextseq/raw-data/2_S2_R1_001.fastq.gz
wget -P raw-data https://pub-3323395ea28d4d81afab5d75dd0b6484.r2.dev/nextseq/raw-data/2_S2_R2_001.fastq.gz
wget -P raw-data https://pub-3323395ea28d4d81afab5d75dd0b6484.r2.dev/nextseq/raw-data/3_S3_R1_001.fastq.gz
wget -P raw-data https://pub-3323395ea28d4d81afab5d75dd0b6484.r2.dev/nextseq/raw-data/3_S3_R2_001.fastq.gz
wget -P raw-data https://pub-3323395ea28d4d81afab5d75dd0b6484.r2.dev/nextseq/raw-data/11_S5_R1_001.fastq.gz
wget -P raw-data https://pub-3323395ea28d4d81afab5d75dd0b6484.r2.dev/nextseq/raw-data/11_S5_R2_001.fastq.gzペアエンドデータでは、同じサンプルのForward(R1)とReverse(R2)が1組になっています。ダウンロード後の構成は次のとおりです。
raw-data/
├── 1_S1_R1_001.fastq.gz
├── 1_S1_R2_001.fastq.gz
├── 2_S2_R1_001.fastq.gz
├── 2_S2_R2_001.fastq.gz
├── 3_S3_R1_001.fastq.gz
├── 3_S3_R2_001.fastq.gz
├── 11_S5_R1_001.fastq.gz
└── 11_S5_R2_001.fastq.gz
解析が完了すると、作業フォルダには次のような成果物ができます。実際のファイル数や名前は入力データと実行結果によって変わります。
raw-data/
├── <SAMPLE>_R1_001.fastq.gz
└── <SAMPLE>_R2_001.fastq.gz
manifest.tsv
01_data-import/
└── import.qza
02_adapter/
├── trimmed-seqs.qza
├── trimmed-seqs.qzv
├── stats.qza
└── outputs/
├── forward-seven-number-summaries.tsv
└── reverse-seven-number-summaries.tsv
03_denoise/
├── table-dada2.qza
├── rep-seqs-dada2.qza
├── stats-dada2.qza
├── stats-dada2.qzv
├── visual-summary.qzv
└── rep-seqs-dada2.qzv
04_taxonomy/
├── taxa-bar-plots.qzv
├── taxonomy.qza
└── taxonomy.qzv
1. QIIME 2環境を有効化する
QIIME 2のコマンドを使う前に、専用のconda環境を有効化します。
conda activate qiime2-2026.1プロンプトの先頭に(qiime2-2026.1)と表示されれば準備完了です。
2. manifestを作成する
manifestは、各サンプルのIDとFASTQファイルの場所をQIIME 2へ伝える表です。raw-data/に入っているファイル名を確認してから実行します。
seqfu metadata -f manifest -s _S raw-data > manifest.tsvこのコマンドはseqfuのmetadata機能を使い、raw-data/内のペアエンドFASTQからmanifest.tsvを作ります。seqfu: command not foundが出る場合は、前章のseqfuインストールを確認します。
lsでmanifest.tsvが作成され、サンプルごとにR1とR2の行があることを確認します。ファイル名の入力ミスがあると、後のimportでエラーになります。
3. FASTQをQIIME 2形式へ取り込む
qiime tools importで、manifestに書かれたペアエンドFASTQをimport.qzaへ変換します。qzaはQIIME 2の解析用アーティファクトです。
# ディレクトリの作成
mkdir 01_data-import
# manifest.tsvに従って、データを
# 01_data-import/demux-paired-end.qza として保存。
qiime tools import \
--type "SampleData[PairedEndSequencesWithQuality]" \
--input-path manifest.tsv \
--input-format PairedEndFastqManifestPhred33V2 \
--output-path ./01_data-import/import.qzaこのブロックでは01_data-import/を作り、manifest.tsvを読み込んで01_data-import/import.qzaを出力します。エラーが出た場合は、現在地、manifestの内容、FASTQファイル名、Phred品質スコアの形式を確認します。
01_data-import/import.qzaが作成されれば、QIIME 2形式への取り込みは完了です。
4. プライマーとアダプターをトリミングする
プライマー配列を設定する
次のブロックでは、V3–V4領域を例にForward・Reverseプライマーと、それぞれの逆相補配列を変数へ設定します。その後、qiime cutadapt trim-pairedで配列をトリミングします。
# ディレクトリの作成
mkdir 02_adapter
# Primer配列の定義
FWD='CCTACGGGNGGCWGCAG' ## V3V4用
REV='GACTACHVGGGTATCTAATCC' ## V3V4用
FWDRC=$(echo "${FWD}" | tr ACGTMRYKVHDBacgtmrykvhdb TGCAKYRMBDHVtgcakyrmbdhv | rev)
REVRC=$(echo "${REV}" | tr ACGTMRYKVHDBacgtmrykvhdb TGCAKYRMBDHVtgcakyrmbdhv | rev)
# アダプタートリミング
## 次のオプションに注意。
## --p-discard-untrimmed: トリムされなかったリードは使わない。
## --p-cores: 並列処理につかうスレッドの数
qiime cutadapt trim-paired \
--i-demultiplexed-sequences ./01_data-import/import.qza \
--p-front-f ${FWD} --p-front-r ${REV} \
--p-adapter-f ${REVRC} --p-adapter-r ${FWDRC} \
--p-times 10 \
--p-match-read-wildcards --p-match-adapter-wildcards \
--p-minimum-length 200 \
--p-discard-untrimmed \
--o-trimmed-sequences ./02_adapter/trimmed-seqs.qza \
--o-stats ./02_adapter/stats.qza \
--p-cores 3
# visualizationファイルへ出力。
qiime demux summarize --i-data ./02_adapter/trimmed-seqs.qza --o-visualization ./02_adapter/trimmed-seqs.qzv--p-discard-untrimmedは、指定した配列を見つけられなかったリードを捨てる指定です。--p-minimum-length 200はトリミング後の最小長、--p-cores 3は使用するスレッド数です。
このブロックは02_adapter/trimmed-seqs.qzaと02_adapter/stats.qzaを作り、続けてトリミング後の品質確認用にtrimmed-seqs.qzvを作ります。
5. 品質を確認する
QIIME 2の.qzvは、結果をブラウザーで確認するためのvisualizationファイルです。品質プロットを見て、DADA2でForwardとReverseをどこまで切るかを決めます。
.qzvをブラウザーで開く
今回の実習では、QIIME 2 Viewへ.qzvをアップロードして確認します。機密性のあるデータをアップロードしてよいか、実習のルールに従ってください。
手元のPCでQIIME 2を実行している場合は、qiime tools viewでも開けます。
- <file>を開きたいqzvファイルの名前に置き換える
qiime tools view <file>.qzv品質の表をエクスポートする
品質の.qzvをTSVへ展開し、csvlensで確認できます。csvlensの画面はqで終了します。
qiime tools export --input-path ./02_adapter/trimmed-seqs.qzv --output-path ./02_adapter/outputs
# csvlensをインストール
conda install csvlens -c conda-forge
# Forward配列の結果を可視化。qで終了。
csvlens -d auto ./02_adapter/outputs/forward-seven-number-summaries.tsv
# Reverse配列の結果を可視化。qで終了。
csvlens -d auto ./02_adapter/outputs/reverse-seven-number-summaries.tsvForward・Reverseそれぞれの品質が大きく下がる位置を確認し、読み取りの重なりが残るように--p-trunc-len-fと--p-trunc-len-rの値を決めます。サンプルやシーケンサーによって適切な値は変わります。
6. DADA2でノイズを除去する
DADA2では、低品質な読み取りの除去、エラー補正、キメラ配列の除去、ForwardとReverseの結合を行います。
DADA2を実行する
次のブロックにあるfffとrrrを、品質確認で決めた数値へ書き換えてから実行します。たとえばForwardを250、Reverseを220にする場合は、fffを250、rrrを220へ置き換えます。
- fffをForward側のtruncation長へ置き換える
- rrrをReverse側のtruncation長へ置き換える
# ディレクトリの作成
mkdir 03_denoise
# DADA2
## fffとrrrは適宜変更
qiime dada2 denoise-paired \
--i-demultiplexed-seqs ./02_adapter/trimmed-seqs.qza \
--p-trunc-len-f fff \
--p-trunc-len-r rrr \
--o-table ./03_denoise/table-dada2.qza \
--o-representative-sequences ./03_denoise/rep-seqs-dada2.qza \
--o-denoising-stats ./03_denoise/stats-dada2.qza \
--o-base-transition-stats ./03_denoise/base-transition-stats.qza \
--p-n-threads 3--o-base-transition-statsの行末には\があり、次の--p-n-threads 3までが1つのコマンドとして実行されます。DADA2の実行には時間がかかる場合があります。
DADA2の統計を可視化する
各サンプルについて、入力リード数、フィルタリング後のリード数、結合後のリード数などを確認します。
# 各qzaファイルをqzvファイルへ
## 何%削除されたなどの、DADA2のステータス
qiime metadata tabulate --m-input-file ./03_denoise/stats-dada2.qza --o-visualization ./03_denoise/stats-dada2.qzvfeature tableの概要を作る
サンプルごとのfeature数や頻度を確認するため、feature tableを要約します。
# 各サンプルのリード数など
qiime feature-table summarize \
--i-table ./03_denoise/table-dada2.qza \
--o-feature-frequencies ./03_denoise/feature-frequencies.qza \
--o-sample-frequencies ./03_denoise/sample-frequencies.qza \
--o-summary ./03_denoise/visual-summary.qzv代表配列を一覧表示する
ForwardとReverseを結合して得られた代表配列を可視化します。
# Forward+Reverse マージ後に決定した代表配列の一覧
qiime feature-table tabulate-seqs --i-data ./03_denoise/rep-seqs-dada2.qza --o-visualization ./03_denoise/rep-seqs-dada2.qzv03_denoise/にtable、代表配列、統計のqzaが作成され、stats-dada2.qzv、visual-summary.qzv、rep-seqs-dada2.qzvをQIIME 2 Viewで開ければ完了です。
7. taxonomyを推定する
分類器をダウンロードする
QIIME 2のData Resourcesから、使用するQIIME 2版とデータに合った分類器を選びます。分類器のURLと版は更新されるため、ライブラリページに表示されたURLをコピーしてください。

- ライブラリページからコピーした分類器のURLへ置き換える
- 使用する分類器の版を確認する
# コピーしたURLからダウンロード
# ※以下のURLは例です。必ずライブラリページから最新のURLをコピーしてください。
wget https://data.qiime2.org/classifiers/sklearn-1.4.2/silva/silva-138-99-nb-classifier.qzaこの例のURLは固定の正本ではありません。実習時は必ずData Resourcesのページで、QIIME 2 2026.1と入力データに対応する分類器を選びます。
配列を分類して可視化する
次のブロックは、DADA2で作成した代表配列を分類し、taxonomy表とサンプル別のバープロットを作ります。分類器の.qzaを作業フォルダに置いた状態で実行します。
# ディレクトリの作成
mkdir 04_taxonomy
# 分類器を使って分類
qiime feature-classifier classify-sklearn \
--i-reads ./03_denoise/rep-seqs-dada2.qza \
--i-classifier ./silva-138-99-nb-classifier.qza \
--o-classification ./04_taxonomy/taxonomy.qza \
--p-n-jobs 3
# 分類結果を表形式で可視化
qiime metadata tabulate \
--m-input-file ./04_taxonomy/taxonomy.qza \
--o-visualization ./04_taxonomy/taxonomy.qzv
# 分類結果をバープロットで可視化
qiime taxa barplot \
--i-table ./03_denoise/table-dada2.qza \
--i-taxonomy ./04_taxonomy/taxonomy.qza \
--o-visualization ./04_taxonomy/taxa-bar-plots.qzv出力される04_taxonomy/taxonomy.qzvでは、各featureに割り当てられた分類を表形式で確認できます。taxa-bar-plots.qzvでは、サンプルごとの分類群の構成を確認できます。
04_taxonomy/taxonomy.qza
04_taxonomy/taxonomy.qzv
04_taxonomy/taxa-bar-plots.qzv分類結果は、使用した分類器、参照データベース、プライマー、品質設定に依存します。バープロットの見た目だけで結論を出さず、解析条件とtaxonomyの信頼度を合わせて確認してください。
解析結果を確認する順番
結果を確認するときは、次の順番でファイルを開きます。
02_adapter/trimmed-seqs.qzvでトリミング後の品質を見る03_denoise/stats-dada2.qzvでリードの残り方を見る03_denoise/visual-summary.qzvでサンプルごとのfeature数を見る03_denoise/rep-seqs-dada2.qzvで代表配列を見る04_taxonomy/taxonomy.qzvとtaxa-bar-plots.qzvで分類結果を見る
QIIME 2の各ファイルは、解析条件と一緒に保存します。truncation長、プライマー、分類器の版、実行日時を記録すると、結果を再確認しやすくなります。