Qiime2解析 - Yokohide0317/2024_BI-Zissen GitHub Wiki

※ データはこちら https://drive.google.com/drive/folders/10xN1GrkbTGRv96BG2ROxArX46Ik_3pKH?usp=sharing

全体の流れ

1. Import

  • FASTQファイルのアップロード
  • manifest.tsvファイルの作成。
  • FASTQファイルを、Qiime2用の.qzaファイルへインポート。

2. Cutadapt

  • アダプター(プライマー)配列の指定。
  • cutadaptの実行(アダプター および アダプターのついていない配列 の除去)
  • 結果の可視化・ダウンロード・確認

3. DADA2

  • トリミング位置の指定
  • DADA2の実行(代表配列の決定)

4. Taxonomy

  • 分類器のダウンロード
  • taxonomyの実行(種の割当て)
  • 結果の可視化・ダウンロード・確認

ローカルPC(ノートPCなど)で行う場合

qiime tools viewで直接*.qzvファイルを開くことができます。
<ファイル>.qzvをダウンロードし、Qiime-View ページへアップロード」のところは、
qiime tools view <ファイル名>.qzvに置き換えてください。

1. Import

FASTQファイルのアップロード

  • 左上のフォルダ+ボタンを押し、フォルダを作成します。名前は、raw-dataにします。
  • raw-data内に、自分が使用するデータ(.fastq.gzファイル達)をアップロードしてください。
  • アップロードできたら、以下のコマンドを実行します。(#から始まる行は説明です。入力の必要はありません。)

Note

※ 今回のFASTQファイルは、Paired-end形式です。
<SampleID>_SN_L001_R1.fastq.gz<SampleID>_S1_L001_R2.fastq.gzのセットで1サンプルです。
つまり、最低 2つのファイル をアップロードすることになります。

# 現在の場所にあるディレクトリ・ファイルの確認
ls

# 作業ディレクトリの移動
cd notebook
ls

# manifest.tsvの作成
seqfu metadata -f manifest -s _S raw-data > manifest.tsv

# manifest.tsv 内容の確認
cat manifest.tsv

# Import用のディレクトリを作成
mkdir 01_data-import

# 移動
cd 01_data-import

# Importコマンド
## '\'は、`Enter` を `実行` ではなく、 `改行` として認識してもらうためのもの。
## '\'の後はスペースを入れず、Enterを押す。2行目以降の行頭のスペースは入れなくてもOK。
qiime tools import \
    --type "SampleData[PairedEndSequencesWithQuality]" \
    --input-path ../manifest.tsv \
    --input-format PairedEndFastqManifestPhred33V2 \
    --output-path demux-paired-end.qza

# 上の階層に戻る。
cd ../

2. Cutadapt

  • 以下のコマンドを入力。
# 作業ディレクトリの作成・移動
mkdir 02_adapter
cd 02_adapter

# Adapter(プライマー)配列の定義。今回はV3-V4用
FWD='CCTACGGGNGGCWGCAG' 
FWDRC=$(echo "${FWD}" | tr ACGTMRYKVHDBacgtmrykvhdb TGCAKYRMBDHVtgcakyrmbdhv | rev)
REV='GACTACHVGGGTATCTAATCC'
REVRC=$(echo "${REV}" | tr ACGTMRYKVHDBacgtmrykvhdb TGCAKYRMBDHVtgcakyrmbdhv | rev)

# cutadaptの実行
qiime cutadapt trim-paired \
    --i-demultiplexed-sequences ../01_data-import/demux-paired-end.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 100 \
    --p-discard-untrimmed --o-trimmed-sequences trimmed-seqs.qza \
    --p-cores 3

# 結果を可視化用ファイルへ変換
qiime demux summarize --i-data trimmed-seqs.qza --o-visualization trimmed-seqs.qzv

cd ../
  • 02_adapter/trimmed-seqs.qzvを右クリックし、ダウンロード。
  • https://view.qiime2.org/へアクセス。trimmed-seqs.qzvをアップロード。
  • forward、reverseそれぞれの切る場所を決め、メモしておく。(講座内で解説します。)

3. DADA2

  • 以下のコマンドを入力。
mkdir 03_denoise
cd 03_denoise

# DADA2の実行。
## fff と rrr は、上でメモした値をそれぞれ入れる。
## `--p-n-threads` の数字は、並列処理でつかうコア数。
qiime dada2 denoise-paired \
    --i-demultiplexed-seqs ../02_adapter/trimmed-seqs.qza \
    --o-table table-dada2.qza \
    --o-representative-sequences rep-seqs-dada2.qza \
    --o-denoising-stats stats-dada2.qza \
    --p-n-threads 3 \
    --p-trunc-len-f fff --p-trunc-len-r rrr

# 結果を可視化用ファイルに変換
qiime metadata tabulate --m-input-file stats-dada2.qza --o-visualization stats-dada2.qzv; \
    qiime feature-table summarize --i-table table-dada2.qza --o-visualization table-dada2.qzv; \
    qiime feature-table tabulate-seqs --i-data rep-seqs-dada2.qza --o-visualization rep-seqs-dada2.qzv

cd ../

Tip

ここで出力される、
03_denoise/stats-dada2.qzv03_denoise/table-dada2.qzv03_denoise/rep-seqs-dada2.qzvはそれぞれ、
DADA2後の、リード数、各サンプルの代表配列とリード数、代表配列を示している。
結果に直結するので、必要に応じてQiime2-Viewで確認する。

4. Taxonomy

# 分類器のダウンロード
wget https://data.qiime2.org/2023.9/common/silva-138-99-515-806-nb-classifier.qza
  • 以下のコマンドを実行
mkdir 04_taxonomy
cd 04_taxonomy

# 分類器を使い、分類。
qiime feature-classifier classify-sklearn \
    --i-reads ../03_denoise/rep-seqs-dada2.qza \
    --i-classifier ../silva-138-99-515-806-nb-classifier.qza \
    --o-classification taxonomy.qza \
    --p-n-jobs 3

# 割当結果を可視化
qiime metadata tabulate \
    --m-input-file taxonomy.qza \
    --o-visualization taxonomy.qzv 

# サンプル別の結果を可視化
qiime taxa barplot \
    --i-table ../03_denoise/table-dada2.qza \
    --i-taxonomy taxonomy.qza \
    --o-visualization taxa-bar-plots.qzv
⚠️ **GitHub.com Fallback** ⚠️