數據清洗—【trim_galore】那些事


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM