Trim Galore是對FastQC和cutadapt的包裝。適用於所有高通量測序,包括RRBS(Reduced Representation Bisulfite-Seq )、 Illumina、Nextera和smallRNA測序平台的雙端和單端數據。主要功能包括兩步:第一步首先去除低質量鹼基,然后去除3' 末端的adapter, 如果沒有指定具體的adapter,程序會自動檢測前1 million的序列,然后對比前12-13bp的序列是否符合以下類型的adapter:
1 Illumina: AGATCGGAAGAGC 2 Small RNA: TGGAATTCTCGG 3 Nextera: CTGTCTCTTATA
一、部分參數說明
1 #–q | ––quality <INT> 2 除了去除接頭,同時修剪3‘端低質量的鹼基;默認的phred分數為20;對不同的樣本處理方式不同; 3 RRBS樣本:先修剪3‘末端低質量鹼基,隨后再去除接頭; 4 其他類型樣本:低質量鹼基和接頭一次性處理;
1 #––phred33 2 適用於IlLumina 1.9+:指導cutadapt使用ASCII+33質量分數作為pared分數,默認使用。 3 #--phred64 4 適用於Illumina 1.5: 指導cutadapt使用ASCII+64質量分數作為pared分數
1 #––fastqc 2 當數據修剪完成以后以默認參數運行fastqc再次處理fastq文件 3 #––fastqc_args ”<ARGS>” 4 為fastqc運行提供額外的參數,如果參數多於一個,必須以”arg1 arg2…”的格式。如:––fastqc_args ”--nogroup --outdir /home ”
1 #-a | --adapter <STRING> 2 指定要修剪的接頭序列;若沒有特別指定,trim_galore將自動檢測是否為以下的種類: 3 Illumina通用 4 Nextera轉座酶 5 Illumina小RNA接頭序列 6 如果在指定的第一個文件的前100萬個序列中沒有檢測到接頭或者在一些接頭序列之間存在聯系,trim_galore會默認使用”--illumina”(如果illuminate adapter是其中的一個選項,否則會默認使用”--nextera”) 7 8 #-a2 | --adapter2 <STRING> 9 為雙端測序的第二個讀長設置要去除的接頭序列;該選項依賴於”--paired”;如果要清洗的文庫是smallRNA,則a2會自動使用Illumina系統的small RNA 5’接頭(GATCGTCGGACT) 10 11 #--illumina 12 使用illumina通用接頭的前13bp作為要去除的接頭序列(AGATCGGAAGAGC),而不會默認去檢測接頭序列的類型 13 14 #--nextera 15 使用Nextera接頭的前12bp作為要去除的接頭序列(CTGTCTCTTATA),而不會默認去檢測接頭序列的類型 16 17 #--small_rna 18 使用illumina small RNA 3’接頭的前12bp作為要去除的接頭序列(TGGAATTCTCGG),而不會默認去檢測接頭序列的類型。此選項會默認將”--length”值設置為18,如果 smallRNA 文庫是雙末端的,則 a2 將自動設置為 Illumina small RNA 5' 接頭 (GATCGTCGGACT),除非設置-a2的值
1 #-- consider_already_trimmed <INT> 2 設置一個閾值,在接頭自動檢測的過程中,若沒有接頭的序列序列個數達到閾值,則去接頭的程序不會繼續運行,但其他質控會繼續運行 3 4 #--max_length <INT> 5 修剪后丟棄長於 <INT> bp 的read。 這僅建議用於 smallRNA 測序以去除non-small RNA 序列。 6 7 #--stringency <INT> 8 接頭序列最小配對鹼基數:簡單來說就是最多能允許末端殘留多少個接頭序列的鹼基,默認值為極端值1;該參數與trimmomatic中ILLUMINACLIP <minAdapterLength>含義相同。 9 10 #-e <ERROR RATE> 11 允許的最大錯誤率,默認是0.1;即ERROR rate大於10%的read 會被舍棄,如果添加來--paired參數則會舍棄一對reads 12 13 #--gzip 14 使用gzip格式壓縮輸出文件,如果輸入文件是經過gzip壓縮過的,則輸出文件會默認使用此格式進行壓縮 15 16 #--dont_gzip 17 此選項會重寫” --gzip”,輸出文件不會使用gzip格式進行壓縮。 18 19 #--length <INT> 20 設置長度閾值,若read通過質控清洗或去接頭后長度小於此閾值,則會被剔除。 21 對於雙端結果,一對reads中若一個read因為該原因被拋棄,則對應的另一個read也拋棄。不會被輸出到雙端結果文件。
1 #--paired 2 對於雙端結果,一對reads中若一個read因為質量或其他原因被拋棄,則對應的另一個read也拋棄,但若使用--retain_unpaired選項可以保留
二、利用trim_galore對測序數據進行清洗
1.對數據名預處理
1 ls fastq | grep "_1" > gz1 2 ls fastq | grep "_2" > gz2 3 paste gz1 gz2>config_file 4 cat config_file
2.數據處理
1 #!/bin/bash 2 cat config_file | while read id 3 do 4 sample_dir="./fastq" 5 output_dir="./fastq_clean" 6 arr=($id) 7 fq1=${arr[0]} 8 fq2=${arr[1]} 9 sample_dir1="$sample_dir/$fq1" 10 sample_dir2="$sample_dir/$fq2" 11 #為防止結束終端時命令掛掉,可以用nohub防止掛起,因為現在使用學校超算中心,所以不用擔心該問題 12 trim_galore -q 25 --phred33 --length 36 -e 0.1 --stringency 3 --paired -o $output_dir $sample_dir1 $sample_dir2 13 done