iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
AI & Data

16S rRNA 從次世代到三代定序-生資QIIME2資料分析趣系列 第 8

[Day 08] NGS QIIME2 : DADA2 序列品質管制 (Quality control) 與視覺化

  • 分享至 

  • xImage
  •  

DADA2 序列品質管制 - 留下好序列,篩掉壞序列

品質管制 (Quality control) 是序列分析重要的一環,
為了有系統地留下好序列,DADA2 這個套件包被發明了出來,
將 QC 分為修剪 (trimming)、過濾 (filters)、降躁 (denoises)、合併 (merge)、去除重疊 (dereplicates),
而 QIIME2 則收錄了 DADA2 讓一切變得更容易。

還記得在 [Day 07] 中我們獲得了一張便條紙,
上頭寫著每條序列都只留下 10~250 nt 片段,
因此接下來指令中會需要修剪序列。

https://ithelp.ithome.com.tw/upload/images/20220904/20151510gz3hQZ9bxj.png

上圖以範例其中三個樣本為例,紅色就是要被修剪的位置,黃色則是留下的序列們。
本次範例因為末端品質還是蠻好的,就沒切了,實務上很多後面都不佳。

然而,每個樣本中都有上萬條序列,
裡頭也可能有品質不佳、為了合併而重疊的序列,
就需要過濾降躁合併去除重疊
原本的序列們就會像是經過漏斗層層篩選,
最後就會剩下好的序列。
https://ithelp.ithome.com.tw/upload/images/20220904/20151510TnlSMaufVg.png

上圖經過 QC 之後,紅色被修剪,並去除品質不好序列,留下品質好的序列。
(注意看藍色一條一條的序列變少了)

  • 品質管制 (Quality control)

    記得先啟動 qiime2-2022.8 環境
    conda activate qiime2-2022.8

    [Day 07] 獲得的 demux.qza 拎來處理處理 :

    qiime dada2 denoise-paired \
      --i-demultiplexed-seqs demux.qza \
      --p-trim-left-f 10 \
      --p-trim-left-r 10 \
      --p-trunc-len-f 240 \
      --p-trunc-len-r 240 \
      --o-table table-dada2.qza \
      --o-representative-sequences rep-seqs-dada2.qza \
      --o-denoising-stats stats-dada2.qza \
      --p-n-threads 8
    

    qiime dada2 denoise-paired : 使用 qiime 軟體 插件為 dada2 的 denoise-paired 函式
    --i-demultiplexed-seqs : 輸入的檔案
    --p-trim-left-f / --p-trim-left-r : Forward/Reverse 序列起始端切多少,範例是 10 bp
    --p-trunc-len-f / --p-trunc-len-r : Forward/Reverse 序列剪切後的總長度,範例末端切 0 bp,所以 240 ~
    --o-table : 輸出的檔案
    --o-representative-sequences : 輸出的檔案
    --o-denoising-stats : 輸出的檔案
    --p-n-threads : 要運算的核心數,因設備而異,不清楚可不加這行。調整為 0 就是全力跑╰(°▽°)╯
    Reference

    完成後會顯示 :

    '
    Saved FeatureTable[Frequency] to: table-dada2.qza
    Saved FeatureData[Sequence] to: rep-seqs-dada2.qza
    Saved SampleData[DADA2Stats] to: stats-dada2.qza
    '
    
  • 輸出的檔案視覺化

    輸出產生的檔案除了會做為之後分析的輸入檔案外,
    也可以做視覺化輸換 (.qzv)。
    輸入 :

    qiime feature-table summarize \
      --i-table table-dada2.qza \
      --o-visualization table-dada2.qzv \
      --m-sample-metadata-file sample-metadata.tsv
    
    qiime feature-table tabulate-seqs \
      --i-data rep-seqs-dada2.qza \
      --o-visualization rep-seqs-dada2.qzv
    
    qiime metadata tabulate \
      --m-input-file stats-dada2.qza \
      --o-visualization stats-dada2.qzv
    

    完成後會顯示 :

    "Saved Visualization to: table-dada2.qzv"
    
    "Saved Visualization to: rep-seqs-dada2.qzv"
    
    "Saved Visualization to: stats-dada2.qzv"
    
  • 資料解讀 - 以 stats-dada2 qzv 為例

    table-dada2 與 rep-seqs-dada2 兩檔案,
    會在後續介紹到,
    我們先來提提常觀察的 stats-dada2 :

    https://ithelp.ithome.com.tw/upload/images/20220905/20151510KZ9dg4OJN0.png

    • 輸入 Input
      一開始的尚未進行任何處理的序列總數。

    • 過濾 Filter
      目的 : 移除有太多低品質(Quality score) mer 出現的序列
      The maxEE parameter sets the maximum number of “expected errors” allowed in a read.
      可以想成累加錯誤值,會針對每條序列的每個 mer Quality score 換算為分數進行累加,
      Quality score 越低,分數則越高,
      舉例來說(分數僅示意),
      若 Quality score 分別為 10, 20, 10, 20, 30...
      分數則為 0.1 + 0.01 + 0.1 + 0.01 + 0.001 + ... + ,
      整條序列若累積的錯誤分數達到閾值(預設為2),則該條序列就會被拋棄。

    • 降噪 Denoised
      目的 : 移除PCR放大與定序過程中出錯的序列
      像是聚合酶(Polymerase)偷懶跳過、引子(Primer)亂亂黏,
      或是溫度條件不穩造成的循環(Cycle)未完成即到下一個循環等,
      都會導致錯誤的序列被製造與放大,會在這個步驟透過演算法篩選。
      https://ithelp.ithome.com.tw/upload/images/20220905/20151510JGUiazTsSh.png
      Reference : QIIME2 Youtube

      可以發現在擴增(Amplicons)、定序(Sequences)過程 (A~C),
      會產生各類的錯誤,導致序列與現實有所差距,
      透過 Denoising 演算法還原真實情況。

    • 合併 Merged
      目的 : 移除 Forward、Reverse 合併時組不起來的序列
      [Day 05] 中提及雙尾 (pair-end)是藉由兩段序列組裝成帶有 V3-V4 區的序列,
      https://ithelp.ithome.com.tw/upload/images/20220905/20151510pwIFa0RCt0.png
      Reference : ISB Microbiome Course 2020
      若兩段序列的重疊區域因為各種原因,如品質過低、剪切過多(如圖示 trimming),
      都會造成序列合併時找不到另一半,找不到另一半的序列就會被淘汰 (bad) QQ

    • 非嵌合體 Non-Chimeric
      目的 : 移除因為PCR 溫度條件出現的嵌合體序列
      https://ithelp.ithome.com.tw/upload/images/20220905/20151510ohtCNKvoAh.png
      Reference : ISB Microbiome Course 2020
      在 PCR 擴增 (Amplicons) 過程中,每一個循環的溫度相當重要,
      如果可愛的聚合酶在複製的過程中,
      PCR 機溫度或是其微環境頑皮了,導致聚合酶來不及複製完 (圖示 B),
      就會出現大大大大大 Primer (圖示 C),
      並在下一個循環中製造出嵌合體(chimera) (圖示 D)。

    經歷層層篩選後的序列,
    就會成為後續分析的主力,
    剩下被移除的序列就會消失在這地球上。

    上述每一步是經由一系列演算法才得以達成,有興趣可以閱讀這篇 Medium
    也歡迎拜讀開發者 (Callahan, Benjamin J., et al., 2016),這邊以好讀版為主。


本篇使用到的輸入/輸出檔案 :
Input : demux.qza
Output: table-dada2.qza、rep-seqs-dada2.qza、stats-dada2.qza、table-dada2.qzv、rep-seqs-dada2.qzv、stats-dada2.qzv

下回是常見錯誤篇,從 stats-dada2 看剪切有沒有問題 !


上一篇
[Day 07] NGS QIIME2 : 定序資料加工壓縮 (Artifacts) 與概述 (Overview) 視覺化
下一篇
[Day 09] NGS QIIME2 Debugging : DADA2 序列品質管制 (Quality control) 常見剪切 (Trimming) 錯誤
系列文
16S rRNA 從次世代到三代定序-生資QIIME2資料分析趣33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
chuyungtsai
iT邦新手 5 級 ‧ 2022-09-25 12:44:11

第一個指令中的
“--p-trim-left-f / --p-trim-left-r : Forward/Reverse 序列起始端切多少,範例是 30 bp”--> 示範指令應該是 10 bp?

MDChain iT邦新手 3 級 ‧ 2022-09-25 12:57:24 檢舉

是10 bp,已更正,感謝~~

我要留言

立即登入留言