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の場合はこう。
インストール
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ファイルのフィルタリング結果が標準出力として出力される。
すごいのがアダプター配列を自動で検出、トリミングしてくれるところだ。
以下の例では、アダプター候補が検出されたリード数が少ないため、アダプタートリミング後のリードとして認識してくれている。
用途
ざっとみ便利そうな機能。。
- アダプター配列の除去 (アダプター配列は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の代用として使ってみるのもいいかもしれない。