質量控制
測序質量檢查-FastQC
Fastqc
Fastqc website (http://www.bioinformatics.babraham.ac.uk/projects/fastqc/))
質量控制的測序質量檢測是通過FastQC軟件實現。fastqc可以不設置任何參數運行,這樣會直接在當前目錄下生成一個質量報告的壓縮文件和文件夾,報告是網頁格式。也可以設置輸出目錄和是否解壓縮(--noextract),默認設置會解壓縮。命令如下:
fastqc [-o output dir] [--(no)extract] [-f fastq|bam|sam] [-c contaminant file] seqfile1 .. seqfileN
其中--noextract
命令是不解壓縮輸出文件。-t
參數是指定使用線程數,fastqc似乎并不是并行運算,而是通過線程數同時執行多個程序,比如線程數指定為4,并不是用4個進程去跑一個文件,而是同時跑4個文件,不過4個線程速度提高很大,個人測試感覺10倍速度于2個線程。-q
為屏蔽進程信息并只輸出錯誤信息,-f
參數為指定輸入文件格式(有bam, sam, fastq可選)
fastqc的結果在v0.11.5版下共有12項。
- Basic Statistics
包含文件名(Filename)、文件類型、總序列數(Total Sequences)、序列長度(Sequence length)這些基本信息。 -
Per base sequence quality
序列每個堿基的平均質量,越高越好,需要注意會有部分序列在開頭部分質量差,所以根據這個圖在做質控時選擇兩端都去低質量或只去3'末端。 - Per tile sequence quality
新版本增加的功能,不太清楚是干啥的。 - Per sequence quality scores
序列平均得分的數量。右側越高越好,也就是大多數序列質量都得分在30以上。均值低于27(也就是錯誤率大于0.002)記為警告,均值低于20(錯誤率0.01)記為不合格。 - Per base sequence content
顯示堿基比例。正常情況下堿基比例應該差不多。AT與CG差異大于10%記為警告,大于20%記為不合格。 - Per sequence GC content
每條序列GC含量百分比與模式化的正態分布GC含量相比較,超過15%記為警告,超過30%為不合格。 - Per base N content
每個堿基位置N(未測到或不確定堿基)的比例 - Sequence Length Distribution
各序列長度占比 - Sequence Duplication Levels
重要序列重復級別
理想情況下所有序列應該是被隨機打斷了,測序后理論上不太會出現完全相同的序列。但由于PCR擴增或者污染等原因會造成一些重復序列,這里顯示重復序列的比例。為了節省內存和時間,fastqc僅抽取了前100,000條序列,并只要超過75bp的序列就會被截斷到50bp來分析。fastqc的說明文檔對此進行了說明,結果不影響整體結果的反應。
所提供的圖像有兩條線來反應不同重復級別,藍線表示整個序列集合中重復序列的分布,紅線表示去除重復序列后的結果。這是新版本提供的功能,v0.10版本只有重復序列的程度。
一個好的結果應該是紅線藍線最左側越大越好。通常會在紅色線中看到一個高重復的峰,但同時在藍色線上消失,這表明重復序列并不顯著。如果在藍色的線中有峰值,說明在大量不同的高度重復序列,這可能是污染或嚴重的技術重復。
如果非唯一序列數超過總數的50%就會被軟件判斷為不合格。 - Overrepresented sequence
過表達序列。一般認為打斷的序列只有很少部分會重復,如果一段序列重復達到總值的0.1%記為警告,超過1%記為不合格。
Trimming and Quality Filtering
根據結果去接頭(adapter)、引物(Primary)尾巴(Poly-A)等。必須要去的是接頭。常用的軟件有cutadapt、trim_galore等等。一般用cutadapt,很多去接頭軟件的底層其實也是調用cutadapt。
Cutadapt
眼科中心服務器cutadapt 1.9.1版本安裝在c0,c10節點上,需要提交到這兩個節點才可以運行,否則很多節點用的是1.4.1,老版本的問題是功能有限,尤其是對于雙端數據不支持(如-A參數)。cutadapt官網對于Illumina接頭去除的說明如下:
If you have reads containing Illumina TruSeq adapters, follow these steps.
Single-end reads as well as the first reads of paired-end data need to be trimmed with A + the “TruSeq Indexed Adapter”. Use only the prefix of the adapter sequence that is common to all Indexed Adapter sequences:
cutadapt -a AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC -o trimmed.fastq.gz reads.fastq.gz
If you have paired-end data, trim also read 2 with the reverse complement of the “TruSeq Universal Adapter”. The full command-line looks as follows:
cutadapt -a AGATCGGAAGAGC -A AGATCGGAAGAGC -o trimmed.1.fastq.gz -p trimmed.2.fastq.gz reads.1.fastq.gz reads.2.fastq.gz
The adapter sequences can be found in the document Illumina TruSeq Adapters De-Mystified.
因此單端數據只需要用-a參數去掉“AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC”就可以了。
按照推薦我雙端數據(Pair-End)的命令如下:
#PBS -N cutadapt-HBV
#PBS -j oe
#PBS -l nodes=c0:ppn=1
#PBS -l walltime=5000:00:00
#PBS -q low
# set up some parameter
outputdir="/public/users/chentingting/Zoubin/HBV/QC"
cd /public/users/chentingting/Zoubin/HBV
cutadapt -a AGATCGGAAGAGC -A AGATCGGAAGAGC -q 30 -m 20 --trim-n -O 10 -o $outputdir/Sample_capsule-1.R1.trimmed.fastq.gz -p $outputdir/Sample_capsule-1.R2.trimmed.fastq.gz Sample_capsule-1.R1.fastq.gz Sample_capsule-1.R2.fastq.gz
其中的參數說明:
-a 序列 正向接頭序列,單端測序只用這個。
-A 序列 反向接頭序列,雙端情況下設置。
-q 數字 表示最低質量值,在去接頭前先將低于此數值的bases去除。如果只設置一個數值則從3'末端去除,如果用逗號分割兩個數值則先去5'末端后去3'末端。一般設為30。
-q [5'CUTOFF,]3'CUTOFF, --quality-cutoff=[5'CUTOFF,]3'CUTOFF
Trim low-quality bases from 5' and/or 3' ends of each read before adapter removal. Applied to both reads if data is paired. If one value is given, only the 3' end is trimmed. If two comma-separated cutoffs are given, the 5' end is trimmed with the first cutoff, the 3' end with the second.
-m 數字 表示trim后最短bp低于此數的reads被拋棄,一般設為20。
-M 數字 表示長于此數字的reads被拋棄,默認值不限制。
--max-n=COUNT 拋棄有太多N的reads。COUNT如果設置為整數,就是按N的絕對個數來處理;如果設置為小數(0到1之間),就按每條reads中N的百分比來處理。
-O 數字 表示adapt和序列比對最少overlap的值,高于此值就認為是接頭并修剪,默認是3,個人設置至少到5。
-o 目錄 Read1的輸出路徑
-p 目錄 Read2的輸出路徑
根據fastqc的報告,如果是RNA數據尾巴較多的情況,最好再去一次PolyA尾巴,少就不用了。
Trim Galore!
Trim Galore 合并了FastQC和Cutadapt到一個程序中。它的優勢在于它可以根據FastQC分析的個體質量對每個reads進行修剪。同時可以設置程序對剪切后的序列用FastQC生成一個統計信息。對雙端序列支持也很好。
選項
--phred33 使用ASCII+33質量得分作為Phred得分標準。默認選項
--fastqc 當剪切結束后用默認選項對結果文件進行fastqc分析
--fastqc_args "<ARGS>" 對fastQC設置參數。
--paired 設置雙端序列
--dont_gzip 輸出文件不壓縮
--gzip 壓縮輸出文件,如果輸入文件是壓縮文件則自動壓縮。
--length <INT> 設置低于數值長度的reads就拋棄掉,默認值20.
-q/--quality <INT> 切除質量得分低于設置值的序列。默認值20.
-a/--adapter <STRING> -a參數后為切除的接頭序列
-a2/--adapter2 <STRING> 雙端序列中read2所切除的接頭序列,需配合'--paired'參數。
--rrbs 這是Trim Galore最獨特的功能,也是我一開始找到使用這個軟件的原因:特異性處理MspI所處理的RRBS樣本數據(識別位點:CCGG)
示例:
trim_galore --phred33 --fastqc --fastqc_args "--noextract" --paired --retain_unpaired --dont_gzip Sample_keratopathy-31R1.fastq.gz Sample_keratopathy-31R2.fastq.gz