FastQC

用途

快速對產出的NGS資料做QC...

使用方法

FastQC是java所寫成的,所以安裝之前要確認系統有安裝JVM。

FastQC可以吃的檔案格式有:

  • .fastq
  • .fastq.gz
  • .SAM/.BAM
  • 其他...(說明)

而一般NGS的data出來就已經打包成fast.gz檔了,直接用gz餵給fastQC就好,指令長得像這樣:

fastqc filename.fastq.gz

分析完成之後會產生一個html檔、一個zip檔,可以從server端下載html檔打開看整份報告:

filename_fastqc.html
filename_fastqc.zip

報告解讀

詳細的官方版本可以參考這裡
出來的報告有許多項目,會以icon標記三種狀態,告訴你每個項目的QC有沒有通過:

  • PASS
  • WARNING
  • FAIL

Basic Statistics

列一些基本資訊,這個地方不會報錯

MeasureValue
Filename
#顯示丟給fastqc處裡的檔案名稱
example_file.fastq.gz
File type
#Actual base calls or colorspace data which had to be converted to base calls (不會翻先暫時這樣)
Conventional base calls
Encoding
#列出機器版本,讓人判斷編碼方式
Sanger / Illumina 1.9
Total Sequences
#總reads數
18000000
Sequences flagged as poor quality0
Sequence length
#每個read的讀長
110
%GC
#The overall GC Content(%)
50

Per base sequence quality

說明:FastQ檔案對於每個位置的序列品質劃出box plot。
  • X軸:base的位置。
  • Y軸:品質分數。
  • 箱型圖:
    • 中心紅線:中位數(Median)。
    • 黃色箱型:Q1(25%)-Q3(75%)。
    • 上下底線:10%、90% 所在分數。
    • 藍色線:平均值(Mean)。


可以看到愈遠的位置讀到的錯誤率愈高,所以定序在末端的位置分數分度愈高愈好,在品質不好的位置在後續分析時應考慮去除。


Per tile sequence quality

好像有點深奧用處又不是很常會看,先欠著...


Per sequence quality scores

說明:用來檢查是否有某些read分數特別低。
  • X軸:分數。
  • Y軸:得到某分數的read數。

正常來說會有一群分數比較低的read,是因為flow cell的邊緣照相品質特別不好因此會得到較差的分數,但是邊緣的read佔總體的百分比理論上要很少。但如果定序的結果總體來講分數不高,那就需要考慮是否由一些其他系統性的問題所造成。

異常:
  • Warning:the most frequently observed mean quality < 27 (~=0.2% error rate).
  • Failure:the most frequently observed mean quality < 20 (~=1% error rate).

P.S.如果餵給fastqc的檔案是.SAM.BAM,由於檔案當中沒有紀錄品質分數相關資訊,所以這個module的分析結果不會被顯示出來。
PS:經過Trimmomatic之類的軟體修剪後的檔案,無法看出原本定序的Per sequence quality scores。
P.S.Common reasons for warnings這一段看不懂。


Per base sequence content

說明:用來檢查每個位置ATCG是否分布平均。
  • X軸:位置。
  • Y軸:ATCG的Content(%)。

以一個隨機的library做出來的資料來說,因為斷點會隨機發生,所以每一個位置的ATCG比例應該和總體定序的ATCG比例是一樣的,也就是說ATCG四條線最完美的情況是相互平行。

某些library在開始的位置會有雜亂現象,像是:

  • priming使用到random hexamers(幾乎所有RNA-seq的製備都會使用)
  • fragmentation過程中使用transposases
    這些技術性造成的偏差無法藉由trimming之類的技術消除掉,但對下游分析的影響也不大。//還有一段Kmer什麼的看不懂。
異常:
  • Warning:任何位置ATCG之間的比例差異超過10%。
  • Failure:任何位置ATCG之間的比例差異超過20%。
    可能造成異常的原因:
    • Overrepresented sequence
      adapter dimers 或 rRNA。
    • Biases Fragmentation
      接上random hexamers或用tagmentation產生的library理論上序列會分布平均,但是經驗上告訴我們在前12bp左右會有selection bias的情況,幾乎所有做RNA-Seq的library都會因為上述原因造成這個module報錯,但是實際上經過後續的trimming就不會影像後續的mapping跟expression measuring。
    • Biases Composition Libraries
      有些library天生就長得跟別人不一樣,例如要分析methylation的樣本會加入sodium bisulfite將未甲基化的C轉成T,這時候序列的ATCG含量就不會一樣(C會特別少),儘管在這種library是很正常的現象仍然觸發這個module報錯。
    • Extreme Trimming
      有時候因為要將堆疊在一起的adaptor去掉,而將adaptor相似的非adaptor序列也殺乾淨了,會在尾端產生假的bias(業障重啊...)。

Per sequence GC content

說明:用來檢查樣本每個read的CG%,是否符合常態分布曲線的理論值。
  • X軸:每個read的GC%
  • Y軸:擁有特定GC%的read數目。
  • 藍色線:母群體參考分布曲線。
  • 紅色線:定序的結果。

拿WGS來說,如果library做得夠平均讀出來的GC content分布應該跟整個Ganome的分布情況相同(從母群體中作大樣本隨機取樣的概念),但是由於fastqc不知道整個genome的GC含量分布情況,所以是從輸入檔案去取得相關統計數據(mean、standard error...)回推母群體,再畫出藍色的母群體參考分布曲線。

異常:
  • 曲線線型異常
    • Adaptor Contamination
      在樣本中增加許多帶有特定GC%的某族群,會使波形變窄或雙峰分布。
    • Coss-species Contamination
      將GC%分布情形不同的各樣本混在一起,會導致波形變寬或雙峰分布。
    • 其他種類的原因。
  • 曲線為常態分布但中心偏離理論值
    可能為系統性誤差(取樣偏差)所致,這個情況就不會跳異常,因為fastqc是拿樣本的GC%去推測分布曲線應該長什麼樣子(拿偏差的取樣假設為隨機取樣,推測樣本母群體的分布情形),再去檢查實際情形是否符合,不會知道樣本的GC%理論上(母群體實際上的分布曲線)應該是多少。
  • Warning
    常態分布區線的sum of the deviations (sum(Xi-Xmean))與樣本的sum of the deviations,相差超過15%。
  • Failure
    同上,超過30%。

Per base N content

說明:顯示在所有read的某個位置,N含量的比例。

//P.S.如果定序時無法判斷某個點是何種鹼基,會用N代替。

  • X軸:序列位置
  • Y軸:所有read在某個位置N的含量(%)。
    N的含量(%)應該都要很低(尤其是在考進序列的尾端)。 如果N含量稍微高一些,代表後須分析無法從data解讀出有效的base call.
異常:
  • Warning:有一個以上的位置N含量>5%。
  • Failure:有一個以上的位置N含量>20%。
  • Common reasons
    • general loss of quality
      如果N%偏高一般代表定序品質不良,所以最好跟其他的qc module作系統性審視,可以挑各個N%較高的區塊(ex:25-31)去檢查coverage的情形,在這個case裡面尾端N%較高的區塊可能含有很少的序列(coverage偏低),會觸發某些error。
    • high proportions of N at a small number of positions early in the library
      序列一開始讀的時候,由於固定位置的組成序列會較複雜而會無法做出精確的base call,這種情形在Per Base Sequence Content裡面也會觀察到開頭的content較混亂的情形。
      //敘述不太好不易懂,回頭想到再寫。

Sequence Length Distribution

說明:顯示read讀長的分布。
  • X軸:讀長。
  • Y軸:某個讀長的read數量。
    異常:
  • Warning:代表read的長度不均(猜SE過大)。
  • Failure:有一個以上的read長度是0。
  • Common reasons:現在許多平台的讀長不均是正常現象,可以忽略這個module的報錯。

Sequence Duplication Levels

說明:顯示一模一樣的序列出現在不同read的頻率。

一個良好的library理論上每個序列只會出現一次(即使都mapping到genome的同一個site的附近,fragment的時候因為斷點是隨機的因此會產生的序列彼此之間也會有shift)。

  • Low Duplication Level:high coverage。
  • Higher Duplication Level:可能有一些enrichment bias (ex:pcr over amplification)。
  • X軸:重複次數(>10的部分非等距)。
  • Y軸:某個重複次數的read種類。
  • 藍色線:deduplicate之前的樣子。
  • 紅色線:deduplicate之後的樣子。
    //既然都deduplicate了為何還有重複的,原理未知?
    為了節省記憶體使用,fastqc只會分析每個檔案的前100,000個序列,但這樣的樣本數已經足以做Duplication level的判斷。
    由於這個module需要判斷兩條read每個site的序列都完全一樣才會成是duplicate,而長一些的序列較末端的定序品質不穩定,如果拿整條序列來比就無法判斷為duplicate,因此module會將讀長超過75bp以上的read切成50bp來做比較,即使如此讀長較長的序列還是較容易誤判為不同條而增加diversity,而傾向於低估duplication level。
    specific enrichments of subsets、presence of low complexity contaminants會增加duplication level拉平曲線
異常:
  • Warning: non-unique sequences > 20%。
  • Failure:non-unique sequences > 50%。。
  • Common reasons:。

Overrepresented sequences

Adapter Content

Kmer Content

Reference

Babraham bioinformatics
我們的基因體時代 OUR "GENE"RATION-RNAseq’s 資料前處理:Quality Control

results matching ""

    No results matching ""