Trimmomatic
注意:軟件工具一般會定期進行迭代更新,如果使用出現問題,請查看官方文檔。
可以用來切除illumina測序平台的接頭序列,還可以去除由我們自己指定的特定接頭序列,而且同時也能夠過濾read末尾的低質量序列。具體的原理就是通過滑動一定長度的窗口,計算窗口內的鹼基平均質量,如果過低,就直接往后全部切除,不是挖掉read中的這部分低質量序列,而是像切菜一樣,直接從低質量區域開始把這條read后面的所有其它鹼基全部剁掉,否則就是在人為改變實際的基因組序列情況。
- Trimmomatic -- 去除測序接頭和低質量序列
- 網址:http://www.usadellab.org/cms/index.php?page=trimmomatic
- 下載:直接去官網下載二進制軟件,解壓后的trimmomatic-0.36.jar即為需要的軟件
-
adapters文件夾
- 默認存放的是illumina測序平台的接頭序列(fasta格式),在實際的使用過程中,如果需要去除接頭,我們需要明確指定對應的序列作為輸入參數。一般來說,目前的HiSeq系列和MiSeq系列用的都是TruSeq3,TruSeq2是以前GA2系列的測序儀所用的,已經很少見了。如果用的不是illumina測序平台,那么我們也可以按照adapters文件夾下的這些文件的格式做一個新的接頭序列,然后再作為參數傳入。不過在自定義接頭序列的時候,命名時有一些小的細節需要注意,可以參考Trimmomatic的主頁文檔(The Adapter Fasta)
-
使用方法:
PE和SE兩種方式,詳見說明文檔
java -jar trimmomatic-0.36.jar
Usage:
PE [-version] [-threads <threads>] [-phred33|-phred64] [-trimlog <trimLogFile>] [-quiet] [-validatePairs] [-basein <inputBase> | <inputFile1> <inputFile2>] [-baseout <outputBase> | <outputFile1P> <outputFile1U> <outputFile2P> <outputFile2U>] <trimmer1>...
SE [-version] [-threads <threads>] [-phred33|-phred64] [-trimlog <trimLogFile>] [-quiet] <inputFile> <outputFile> <trimmer1>...
-version
# 例:paired-end
java -jar /path/Trimmomatic/trimmomatic-0.36.jar PE -phred33 \
reads_1.fq.gz reads_2.fq.gz \
out.read_1.fq.gz out.trim.read_1.fq.gz \
out.read_2.fq.gz out.trim.read_2.fq.gz \
ILLUMINACLIP:/path/Trimmomatic/adapters/TruSeq3-PE.fa:2:30:10 \
SLIDINGWINDOW:5:20 \
LEADING:5 \
TRAILING:5 \
MINLEN:50
## 在SE模式中,是不需要指定文件來存放被過濾掉的read信息的,后面直接就接Trimmer信息!這是需要注意到的一個地方
- 參數說明:
PE/SE設定對Paired-End或Single-End的reads進行處理,其輸入和輸出參數稍有不一樣。
-threads設置多線程運行數
-phred33設置鹼基的質量格式,默認是pred64
ILLUMINACLIP:TruSeq3-PE.fa:2:30:10TruSeq3-PE.fa是接頭序列,2是比對時接頭序列時所允許的最大錯配數;30指的是要求PE的兩條read同時和PE的adapter序列比對,匹配度加起來超30%,那么就認為這對PE的read含有adapter,並在對應的位置需要進行切除。10和前面的30不同,它指的是,我就什么也不管,反正只要這條read的某部分和adpater序列有超過10%的匹配率,那么就代表含有adapter了,需要進行去除數:palindrome模式下匹配鹼基數閾值:simple模式下的匹配鹼基數閾值。
LEADING:3切除首端鹼基質量小於3的鹼基
TRAILING:3切除尾端鹼基質量小於3的鹼基
SLIDINGWINDOW:4:15從5'端開始進行滑動,當滑動位點周圍一段序列(window)的平均鹼基低於閾值,則從該處進行切除。Windows的size是4個鹼基,其平均鹼基質量小於15,則切除。
MINLEN:50規定read被切除后至少需要保留的長度,如果低於該長度,會被丟掉
CROP:<length>保留reads到指定的長度
HEADCROP:<length>在reads的首端切除指定的長度
TOPHRED33將鹼基質量轉換為pred33格式
TOPHRED64將鹼基質量轉換為pred64格式
如果下機的fq數據中不含有這些測序接頭,那么我們除了trimmomatic之外,也可以直接使用sickle(同時支持PE和SE數據)或者seqtk(僅支持SE),這兩個處理起來會更快,消耗的計算資源也更少。
