Trimmomatic

Trim在NGS就是指序列修剪,NGS下機之後有分為paired、unpaired的資料,所以在序列修剪時輸入、輸出的檔案有些微的差異,指令的部分就按照官網的分類分為Paired End Mode、Single End Mode做筆記:


指令

Paired End Mode

以下的指令是連接起來打的,分行只是為了好記做分群而已:

java -jar <path to trimmomatic.jar> PE 
[-threads <threads>] [-phred33 | -phred64] [-trimlog <logFile>]
<input 1> <input 2> <paired output 1> <unpaired output 1> <paired output 2> <unpaired output 2> 
<step 1>...

說明:

  • -PE:告訴程式用程式自帶的paired-ended adapter file來去除檔案中的adaptor序列。
  • -threads <threads>:指定本次作業可用多少硬體資源(CPU線程數),預設不知。
  • -phred33 | -phred64:指定要計分方式為33或64,預設應為33。
  • -trimlog <logFile>:指定log檔案紀錄工作過程...。
  • <input1> <input2>:要餵進trimmomatic的兩個原始定序檔案。
  • <paired output 1> <unpaired output 1>:指定input1輸出的檔案名稱,依照順序為paired、unpaired。
  • <paired output 2> <unpaired output 2>:指定input2輸出的檔案名稱,依照順序為paired、unpaired。
  • `...```:可以接數個step指令來指定trimmomatic在修剪序列的規則。

Trimmomatic存放adaptor file的地方在jar file中,可以用jar file內相對應的file path來取代SE、PE這兩個參數(不過應該沒人會喜歡打很多字吧):

  • PE:org.usadellab.trimmomatic.TrimmomaticPE
  • SE:org.usadellab.trimmomatic.TrimmomaticSE

Single End Mode

java -jar <path to trimmomatic jar> SE 
[-threads <threads>] [-phred33 | -phred64] [-trimlog <logFile>] 
<input> <output> <step 1> ...

說明:邏輯和paired end mode相同除了...

  • SE:告訴程式利用程式自帶的single-ended adapter file去做剪切。
  • <input> <output>:輸入及輸出的檔案個剩下一個了,應該很直覺。

Step

<step1>...指令的接法是:step選項:參數1[:參數2][:參數3][:參數4]...每個step指令相隔一個space,之後以冒號把step指令的參數連接上去。
P.S. Step的概念相當於在當次執行程式的後面設定一些篩選條件。

Step選項介紹:
  • ILLUMINACLIP:<fastaWithAdaptersEtc>:<seed mismatches>:<palindrome clip threshold>:<simple clip threshold>
    從read中去除adapter、illumina-specific sequences。
    • fastaWithAdaptersEtc
      指定含有全部adapter資訊的fastq檔案路徑。

      因為在做library的時候會使用一些adapter接在序列的兩端,因此讀出來的data會變成adapter-ligated read,所如果要藉由trimmomatic去除兩端的adapter就得要知道當初是用什麼kit做的library,再去找kit內含的adaptor sequence。 Trimmomatic的作者已經取得Illumina的授權,准許在Trimmomatic內含Illumina adapter and other technical sequences。這些adapter序列可以在Trimomatic/adapters的資料夾下面找到,包含:

      • NexteraPE-PE.fa
      • TruSeq2-PE.fa
      • TruSeq2-SE.fa
      • TruSeq3-PE-2.fa
      • TruSeq3-PE.fa
      • TruSeq3-SE.fa

      上述資訊告訴我們內建的adapter sequence適用於TruSeq2 (GAII機型採用)、TruSeq3 (HiSeq及MiSeq採用),single-end、paired-end mode。

    • seedMismatches
      設定可容忍的最大mismatch數量。
    • palindromeClipThreshold
      palindrom模式下的匹配鹼基數閾值。

      說明:在paired reads的data中,通常需要讀取兩邊後拼接完整序列,然而在單向讀取後就完成整段序列的讀取的較短序列,則不需要另一段讀到的序列來做拼接,這種一次就把整段讀完的情況稱為read-through,Trimmomatic會自動比對forward、reverse讀取的序列,如果序列顯示有read-through的情況,reverse read會因為不帶有新的序列訊號而被剃除掉。

    • simpleClipThreshold
      Simple模式下的匹配鹼基數閾值。
  • SLIDINGWINDOW<windowSize>:<requiredQuality>
    這個功能相當於設定一段大小的框框,這個框框的大小就是他一次可以讀取的序列長度,想像框框在每個read的序列上滑動,每次滑動後都檢查框框內的序列品質,一旦序列品質低於某個值,從那個位點開始把以後的序列都切掉捨棄。
    • windowSize每次檢查的序列長度。
    • requiredQuality設定品質分數最少要多少才不會被捨棄。
  • LEADING:<quality>
    • quality: 設定未達到quality分數的首端序列要被切除。
  • TRAILING:<quality>
    • quality: 設定未達到quality分數的首端序列要被切除。
  • CROP:<length>
    • length: 切除site > length的序列。
  • HEADCROP:<length>
    • length: 切除site = (0-length)的序列。
  • MINLEN:<length>
    • length: 設定read要達到多長才被保留。

Example

開一個trimmed資料夾,進到資料夾裡面打:

nohup time \
java -jar /(absolute path of trimmomatic)/trimmomatic-0.36.jar PE \
PATH/NAME_R1.fastq.gz PATH/NAME_R2.fastq.gz \
NAME_R1_paired.fq.gz NAME_R1_unpaired.fq.gz \
NAME_R2_paired.fq.gz NAME_R2_unpaired.fq.gz \
HEADCROP:10 CROP:110 \
&

HEADCROP:10 CROP:110,可以把前10個base去掉,留第11~120號base。


備註

序列資料的命名決定了他們如何被處裡,paired read需要以相同的字首(prefix),最後加上1(forward)和2(reverse),如此一來Trimmomatic就會以palindrom mode處裡序列,以其他方式命名的序列都只會以simple mode來處理。

palindrom mode處裡序列只會針對forward或reverse其中一項read做確認,如果要確認paired read的互補股序列則需要改為其他名子以simple mode進行確認。

#有關於threshold設定,官網的敘述,等看懂再筆記...
The thresholds used are a simplified log-likelihood approach. Each matching base adds just over 0.6, while each mismatch reduces the alignment score by Q/10. Therefore, a perfect match of a 12 base sequence will score just over 7, while 25 bases are needed to score 15. As such we recommend values between 7 - 15 for this parameter. For palindromic matches, a longer alignment is possible - therefore this threshold can be higher, in the range of 30. The 'seed mismatch' parameter is used to make alignments more efficient, specifying the maximum base mismatch count in the 'seed' (16 bases). Typical values here are 1 or 2.

Strategy of Adapters Trimming

  • Palindrome
  • Simple

Reference

Trimmomatic official
Citation in NCBI

results matching ""

    No results matching ""