1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiime2でDADA2解析してみたメモ|denoise-pairedのパラメータを調べた

Posted at

以下は、Qiime2公式ドキュメント(1)に基づき、qiime dada2 denoise-paired コマンドの主なパラメータについて日本語で解説した学習ノートです。Qiime2でペアエンドリードを処理する際の参考になれば幸いです。

DADA2処理の流れ(概略)

Truncate&Trim → Learn error → Denoise → Merge → Chimera removal → ASV table生成

入力ファイル

  • --i-demultiplexed-seqs
    入力ファイル(demultiplexed SampleData[PairedEndSequencesWithQuality])

シーケンスのトリミングと除去

  • --p-trunc-len-f / --p-trunc-len-r
    3' 末端をトリミング(シーケンス後半の質が落ちる部分を除去)。
    リードの右端をカット
    → 設定値より短いリードは破棄される
    → ForwardとReverseのマージには、少なくとも12塩基以上のオーバーラップが必要(--p-min-overlap

  • --p-trim-left-f / --p-trim-left-r
    5' 末端をトリミング(シーケンス前半の質が低い部分を除去)。
    プライマー配列除去にも利用可能

エラーモデルの学習

  • --p-n-reads-learn
    エラーモデル学習に使用するリード数(デフォルト:1,000,000)

品質フィルタリング

  • --p-max-ee-f / --p-max-ee-r
    期待エラー数(Expected Errors)がこの値を超えるリードを破棄
    → デフォルトは 2.0

DADA2の最初の切り捨て作業(Filter&Trim)の後に、一定のリード(Qiime2のデフォルトでは100万)を抽出して、エラーモデルの学習を行います。得られたエラーモデルはQiime2上では確認できませんが、Rで動かすと以下のようなグラフを得られます:
image.png

このモデルは、各Quality値ごとに A→C、A→G、A→T などの読み間違いの頻度を推定するものです。ドットは実際に観測されたエラー率、赤線はQスコアから推定された期待値です。

そこから各リードの合計 expected error(EE)=各塩基の期待エラーの合計が計算され、設定した --p-max-ee よりも高い場合、そのリードは破棄されます。

📎 補足:エラーモデルはランごとに作成する シーケンサーのランごとにエラーの傾向が異なるため、Qiime2公式ドキュメントでは「**各シーケンスランごとに**DADA2による denoise を実行し、その後マージする」ことが推奨されています。

The DADA2 denoising process is only applicable to a single sequencing run at a time, so we need to run this on a per sequencing run basis and then merge the results. We’ll work through this initial step, and then pose several questions that can be answered as an exercise.

  • --p-trunc-q
    Quality score が指定値以下になった時点でリードをカット
    → カットされたリードが 最初の--p-trunc-len より短いと破棄される

オーバーラップとマージ

  • --p-min-overlap
    Forward/Reverse のマージに必要な最小オーバーラップ長
    → デフォルトは 12

サンプルの処理方法

  • --p-pooling-method(Choices: 'independent', 'pseudo')
    'independent': サンプルごとに独立にDenoise(デフォルト)
    'pseudo': 2回Denoiseを行い、2サンプル以上で現れたASVに対する感度を上げる
💡 Rでの設定例 R環境では `dada(..., pool="pseudo")` と指定します。

キメラ除去

  • --p-chimera-method(Choices: 'consensus', 'none', 'pooled')
    'consensus': サンプル単位で検出し、一定割合以上で除去(デフォルト)
    'pooled': 全サンプルをまとめて検出
    'none': キメラ除去を行わない

  • --p-allow-one-off
    1つのミスマッチやindelを許容するキメラ(Bimera)も検出
    True: 厳しめの検出。1塩基のミスマッチやインデルを許容するキメラ(one-off bimera)も対象
    False: 厳密な一致があるキメラ(exact bimera)のみ対象(デフォルト)

その他のパラメータ

  • --p-hashed-feature-ids
    Trueにすると、ASV IDが配列のハッシュ値になる。異なるランの統合解析に有用(デフォルト:True)

  • --p-retain-all-samples
    True:全サンプルを保持
    False:ASV頻度が0のサンプルを除去

出力ファイル(3点)

  • --o-table:FeatureTable[Frequency](各サンプル×ASVの頻度テーブル)
  • --o-representative-sequences:FeatureData[Sequence](各ASVの代表配列(Qiime2上でクリックするとBLAST検索が可能)
  • --o-denoising-stats:SampleData[DADA2Stats](各ステップでのリード数の推移)

使用例

qiime dada2 denoise-paired \
  --i-demultiplexed-seqs input.qza \
  --p-trunc-len-f 280 \
  --p-trunc-len-r 180 \
  --p-trim-left-f 22 \
  --p-trim-left-r 23 \
  --o-table table.qza \
  --o-representative-sequences rep-seqs.qza \
  --o-denoising-stats stats-dada2.qza
  1. https://docs.qiime2.org/2024.10/plugins/available/dada2/denoise-paired/

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?