FASTQ クリーニングツール

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