本篇文章,主要參考了陽光1986的博文(http://www.dxy.cn/bbs/topic/31324367),自己測序的分析結果作為對比,加在其中了。
1.簡介
當二代測序的原始數據拿到手之后,第一步要做的就是看一看原始reads的質量。常用的工具就是fastqc (http://www.bioinformatics.babraham.ac.uk/projects/fastqc/)。
fastqc的詳細使用說明:http://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/
2. 安裝
$ wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.3.zip $ unzip fastqc_v0.11.3.zip $ cd FastQC/ $ chmod 755 fastqc $ echo "export PATH=`pwd`:$PATH" >> ~/.bashrc $ source ~/.bashrc $ fastqc –help
3. 服務器上用命令行來運行fastqc
fastqc [-o output dir] [--(no)extract] [-f fastq|bam|sam] [-c contaminant file] seqfile1 .. seqfileN
-o 用來指定輸出文件的目錄,fastq是不能新建目錄的。輸出的結果是.zip文件,默認自動解壓縮,如果加上--noextract參數則不解壓縮。
-f 用來強制指定輸入文件格式,默認會自動檢測。
-c用來指定一個contaminant文件,fastqc會把overrepresented sequences去這個contaminant文件里搜索。contaminant文件的格式是"Name\tSequences",#開頭的行是注釋。
-q 會進入沉默模式,即不出現下面的提示:
Started analysis of target.fq
Approx 5% complete for target.fq
Approx 10% complete for target.fq
4. 結果解析
如果輸入的fastq文件名是target.fq,fastqc的輸出的壓縮文件將是target.fq_fastqc.zip。解壓后,查看html格式的結果報告。結果分為如下幾項:
0) summary
結果分為綠色的"PASS",黃色的"WARN"和紅色的"FAIL"。“You should treat the summary evaluations therefore as pointers to where you should concentrate your attention and understand why your library may not look random and diverse. ”
1) Basic statistics
2) Per base sequence quality
quality就是Fred值,-10*log10(p),p為測錯的概率。所以一條reads某位置出錯概率為0.01時,其quality就是20。橫軸代表位置,縱軸quality。紅色表示中位數,黃色是25%-75%區間,觸須是10%-90%區間,藍線是平均數。
若任一位置的下四分位數低於10或中位數低於25,報"WARN";若任一位置的下四分位數低於5或中位數低於20,報"FAIL".
3) Per Sequence Quality Scores
每條reads的quality的均值的分布:橫軸為quality,縱軸是reads數目。當出現上面的第二幅圖的情況時,我們就會知道有一部分reads具有比較差的質量。當峰值小於27(錯誤率0.2%)時報"WARN",當峰值小於20(錯誤率1%)時報"FAIL"。
4) Per Base Sequence Content
對所有reads的每一個位置,統計ATCG四種鹼基(正常情況)的分布:
如果建庫足夠均勻,reads的每個位置應當是沒有差異的,所以GC含量的線應當平行於X軸,反映樣品(基因組、轉錄組等)的GC含量。當部分位置GC含量出現bias時,往往提示我們有overrepresented sequence的污染。當所有位置的GC含量一致的表現出bias時,往往代表文庫有bias (建庫過程或本身特點),或者是測序中的系統誤差。當任一位置的GC含量偏離均值的5%時,報"WARN";當任一位置的GC含量偏離均值的10%時,報"FAIL"。
5) Per Base GC Content
對所有reads的每個位置,統計GC含量。
如果建庫足夠均勻,reads的每個位置應當是沒有差異的,所以GC含量的線應當平行於X軸,反映樣品(基因組、轉錄組等)的GC含量。當部分位置GC含量出現bias時,往往提示我們有overrepresented sequence的污染。當所有位置的GC含量一致的表現出bias時,往往代表文庫有bias (建庫過程或本身特點),或者是測序中的系統誤差。當任一位置的GC含量偏離均值的5%時,報"WARN";當任一位置的GC含量偏離均值的10%時,報"FAIL"。
6) Per Sequence GC Content
對所有reads的每個位置,統計GC含量。
紅線是實際情況,藍線是理論分布(正態分布,均值不一定在50%,而是由平均GC含量推斷的)。 曲線形狀的偏差往往是由於文庫的污染或是部分reads構成的子集有偏差(overrepresented reads)。形狀接近正態但偏離理論分布的情況提示我們可能有系統偏差。
偏離理論分布的reads超過15%時,報"WARN";偏離理論分布的reads超過30%時,報"FAIL"。
7) Per Base N Content
8) Sequence Length Distribution
reads長度的分布
當reads長度不一致時報"WARN";當有長度為0的read時報“FAIL”。
9) Duplicate Sequences
統計序列完全一樣的reads的頻率。測序深度越高,越容易產生一定程度的duplication,這是正常的現象,但如果duplication的程度很高,就提示我們可能有bias的存在(如建庫過程中的PCR duplication)
橫坐標是duplication的次數,縱坐標是duplicated reads的數目,以unique reads的總數作為100%。 上圖的情況中,相當於unique reads數目~20%的reads是觀察到兩個重復的,~7%是觀察到三次重復的,依此類推。
可 以想象,如果原始數據很大(事實往往如此),做這樣的統計將非常慢,所以fastqc中用fq數據的前200,000條reads統計其在全部數據中的重 復情況。重復數目大於等於10的reads被合並統計,這也是為什么我們看到上圖的最右側略有上揚。大於75bp的reads只取50bp(不知道怎么選 的)進行比較。但由於reads越長越不容易完全相同(由測序錯誤導致),所以其重復程度仍有可能被低估。
10 Overrepresented Sequences
如 果有某個序列大量出現,就叫做over-represented。fastqc的標准是占全部reads的0.1%以上。和上面的duplicate analysis一樣,為了計算方便,只取了fq數據的前200,000條reads進行統計,所以有可能over-represented reads不在里面。而且大於75bp的reads也是只取50bp。如果命令行中加l入了-c參數,則出現的over-represented sequence會從contaminant_file里面找匹配的hit(至少20bp且最多一個mismatch),可以給我們一些線索。當發現超過總reads數0.1%的reads時報”WARN“,當發現超過總reads數1%的reads時報”FAIL“。