Trimmomatic

Trimmomatic は Java で書かれているアダプタートリミングツールである。Trimmomatic はアダプターの除去のみならず、リードの末端から一定数の塩基をトリムしたりする、簡単なクオリティフィルタリングも行える。シングルエンドリードのみならずペアエンドリードにも対応している。また、gzip (拡張子 .fq.gz など)や bzip2 (拡張子 .fq.bz2 など)で圧縮されている FASTQ ファイルを展開せずに処理することができる。

インストール

Trimmomatic は Java によって書かれている。Trimmomatic 配布ウェブサイトからバイナリファイル(.jar ファイル)をダウンロードすれば、そのまま利用できる。

wget http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.33.zip
unzip Trimmomatic-0.33.zip
cd Trimmomatic-0.33
ls
## LICENSE       adapters        trimmomatic-0.33.jar

展開後に得られる trimmomatic-0.33.jar が実行ファイルである。また、adapters ディレクトリにはいくつかのアダプター配列の情報が保存されている。

使い方

シングルエンドリード

single-end read からアダプター配列を除去する例を示す。1 行のコマンドを複数行に分けて書くために、途中で「\」を入れて改行する。実行ファイルのあとに SE をオプションとして与える。

java -jar trimmomatic-0.33.jar \
    SE                  \  # single-end
    -threads 4          \  # スレッド数
    -phred33            \  # phred33 または -phred64 を指定
    -trimlog log.txt    \  # 実行ログの保存先
    input.fq            \  # 入力 FASTQ
    output.fq           \  # 出力 FASTQ
    ILLUMINACLIP:adapters.fa:2:10:10  \ # アダプター除去条件の指定
    MINLEN: 30                          # 30bp を満たさないリードを除去

ペアエンドリード

ペアエンドリードの場合は実行時に PE をオプションとして与える。また、アダプター除去を行った後に、ペアエンドリードの両方が残っているリード(paired output)とどちらか一方しか残らなかったリード(unpaired output)の出力先をそれぞれ指定する必要がある。

java -jar trimmomatic-0.33.jar \
    PE                     \
    -threads 4             \
    -phred33               \
    -trimlog log.txt       \
    input_1.fq             \ # 1つ目の FASTQ
    input_2.fq             \ # 2つ目の FASTQ
    paired_output_1.fq     \ # 1つ目の FASTQ のアダプター配列除去結果(paired output)
    unpaired_output_1.fq   \ # 1つ目の FASTQ のアダプター配列除去結果(unpaired output)
    paired_output_2.fq     \ # 2つ目の FASTQ のアダプター配列除去結果(paired output)
    unpaired_output_2.fq   \ # 2つ目の FASTQ のアダプター配列除去結果(unpaired output)
    ILLUMINACLIP:adapters.fa:2:30:10 \
    LEADING:20 \
    TRAILING:20 \
    SLIDINGWINDOW:4:15 \
    MINLEN:36

Trimmomatic 実行後、基本的に paired_output_1.fq と paired_output_2.fq を利用して、次のクオリティコントロールあるいはマッピングなどの解析に用いれば良い。

実行条件

上の例では、オプション、入力ファイル、出力先を順に与えた後に、最後に ILLUMINACLIP や MINLEN なども与えてある。Trimmomatic で利用できるオプションは以下のようなものなどがある。

ILLUMINACLIP ILLUMINACLIP:adapters.fa:2:30:10 などのように記述する。adapters.fa は除去対象となるアダプター配列を FASTA 形式で記載してあるファイルを場所である。続く 2:30:10 の意味はそれぞれ許容ミスマッチ数、palindrome clip threshold、simple clip threshold を表す。
SLIDINGWINDOW SLIDINGWINDOW:4:15 などのように記載する。最初の 4 はウィンドウサイズ、最後の 15 は平均クオリティを表す。ウィンドウ内部が塩基配列の平均クオリティが指定値よりも低ければ、それ以降のリードを切り捨てる。
LEADING LEADING:20 などのように記載する。リードの先頭からクオリティスコアが 20 未満の塩基を切り捨てる。
TRAILING TRAILING:20 などのように記載する。リードの後尾からクオリティスコアが 20 未満の塩基を切り捨てる。
CROP CROP:50 などのように記載する。リードの先頭から 50 塩基までを残す。つまり、先頭から数えて 51 番目以降の塩基を切り捨てる。
HEADCROP HEADCROP:10 などのように記載する。リードの先頭から最初の 10 塩基を切り捨てる。
MINLEN MINLEN:30 などのように記載する。30 塩基を満たさないリードを除去する。

アダプター配列

ILLUMINACLIP のオプションにはオリジナルのアダプター配列を利用することもできる。この場合、アダプター配列を FASTA 形式でまとめる。シングルエンドリードは特に気にすることはないが、ペアエンドリードの場合は、forward と reversed のアダプター配列が対応している場合は、2 つのアダプター配列に同じ id を付け、その後ろに /1 および /2 をつける。

例えば、以下の場合は、forward のリードが ACCGGCATGC をアダプター配列に持つならば、reversed のリードは CCCCTCACA をアダプター配列に持つ。

>adapter1/1
ACCGGCATGC
>adapter1/2
CCCCTCACA
>adapter2/1
TTCACAGTGC
>adapter2/2
AATTACGTC

もし、ここに挙げた 4 つのアダプター配列の組み合わせが自由なときは /1/2 を付けないようにすればよい。

>adapter1_1
ACCGGCATGC
>adapter1_2
CCCCTCACA
>adapter2_1
TTCACAGTGC
>adapter2_2
AATTACGTC

References

  1. Bolger AM, Lohse M, Usadel B. Trimmomatic: a flexible trimmer for Illumina sequence data. Bioinformatics. 2014, 30(15):2114-20. PubMed Abstract
  2. Trimmomatic: A flexible read trimming tool for Illumina NGS data. Website