fastp - fastqファイルの操作

https://github.com/OpenGene/fastp

fastp

A tool designed to provide fast all-in-one preprocessing for FastQ files. This tool is developed in C++ with multithreading supported to afford high performance.

Fastqファイルの前処理全てが素早く実行可能なツール。C++で実装されており、マルチスレッドにも対応。

基本的な使い方

fastp -i in.fq -o out.fq

単にインプット、アウトプットを指定してやるだけ。

fastp -i in.R1.fq.gz -I in.R2.fq.gz -o out.R1.fq.gz -O out.R2.fq.gz

paired-endの場合はこう。

結果ファイルはjsonhtmlで出力される。

インストール

anaconda を入れてる場合はこれで良い。

conda install -c bioconda fastp

入れてない場合はgithubからclone してコンパイル。

実行

何も考えずに実行。

$ fastp -i ERR562367_1.fastq.gz -I ERR562367_2.fastq.gz -o ERR562367_1_out.fastq.gz -O ERR562367_2_out.fastq.gz
Read1 before filtering:
total reads: 2460052
total bases: 371467852
Q20 bases: 306820362(82.5967%)
Q30 bases: 271106370(72.9825%)

Read1 after filtering:
total reads: 1981149
total bases: 298601757
Q20 bases: 274061524(91.7816%)
Q30 bases: 244267849(81.8039%)

Read2 before filtering:
total reads: 2460052
total bases: 371467852
Q20 bases: 309311309(83.2673%)
Q30 bases: 269060527(72.4317%)

Read2 aftering filtering:
total reads: 1981149
total bases: 298601757
Q20 bases: 275317837(92.2023%)
Q30 bases: 243087773(81.4087%)

Filtering result:
reads passed filter: 3962298
reads failed due to low quality: 951700
reads failed due to too many N: 6106
reads failed due to too short: 0
reads with adapter trimmed: 94462
bases trimmed due to adapters: 1152166

JSON report: fastp.json
HTML report: fastp.html

fastp -i ERR562367_1.fastq.gz -I ERR562367_2.fastq.gz -o ERR562367_1_out.fastq.gz -O ERR562367_2_out.fastq.gz
fastp v0.12.2, time used: 38 seconds

各fastqファイルのフィルタリング結果が標準出力として出力される。

すごいのがアダプター配列を自動で検出、トリミングしてくれるところだ。

以下の例では、アダプター候補が検出されたリード数が少ないため、アダプタートリミング後のリードとして認識してくれている。 f:id:kimoppy126:20180225182720p:plain

用途

ざっとみ便利そうな機能。。

  • アダプター配列の除去 (アダプター配列はauto-detect)
  • 5'、3’からの sliding windowによるFiltering
  • 出力にGC率、Q20、Q30の塩基率
  • overlapした塩基のクオリティーに基づいた修正 (paired-end)
  • poly A, poly G 配列のトリミング (NextSeq/NovaSeqのデータに関してはpoly Gの除去がデフォルトでON)
  • 割と見やすいレポートの出力

fastqcよりも高速であることを主張している。 html出力までやってくれるツールはあまりないのでfastqcの代用として使ってみるのもいいかもしれない。