henhaobio
Sign in

BioinformaticsBioinformaticsPeer-reviewed journal article

fastp: an ultra-fast all-in-one FASTQ preprocessor

Shifu CheniD, Yanqing ZhouiD, Yaru CheniD, Jia GuiD

PDFDOIPreprintCode

Abstract

MotivationQuality control and preprocessing of FASTQ files are essential to providing clean data for downstream analysis. Traditionally, a different tool is used for each operation, such as quality control, adapter trimming, and quality filtering. These tools are often insufficiently fast as most are developed using high-level programming languages (e.g., Python and Java) and provide limited multi-threading support. Reading and loading data multiple times also renders preprocessing slow and I/O inefficient.\n\nResultsWe developed fastp as an ultra-fast FASTQ preprocessor with useful quality control and data-filtering features. It can perform quality control, adapter trimming, quality filtering, per-read quality cutting, and many other operations with a single scan of the FASTQ data. It also supports unique molecular identifier preprocessing, poly tail trimming, output splitting, and base correction for paired-end data. It can automatically detect adapters for single-end and paired-end FASTQ data. This tool is developed in C++ and has multi-threading support. Based on our evaluation, fastp is 2-5 times faster than other FASTQ preprocessing tools such as Trimmomatic or Cutadapt despite performing far more operations than similar tools.\n\nAvailability and ImplementationThe open-source code and corresponding instructions are available at https://github.com/OpenGene/fastp\n\nContactchen@haplox.com

In-depth summary

Claude Opus 5.5 · max effort · 8 Nov 2026 · from the full text of version 2 (9 Apr 2018) · CC BY-NC-ND 4.0

fastp unifies FASTQ quality control, adapter trimming, filtering, and base correction in one scan; single-threaded, it ran 2–5 times faster than FASTQC, Cutadapt, or Trimmomatic.

FASTQ preprocessing usually chains separate tools (such as FASTQC, Cutadapt, Trimmomatic), mostly Python- or Java-based with limited multi-threading, so files are reread at every step; the authors' earlier unified tool, AfterQC, was slow because it ran in Python. fastp merges these steps into one multi-threaded C/C++ scan and adds unique molecular identifier (UMI) preprocessing, polyG trimming, output splitting, and side-by-side pre- and post-filtering quality reports.

Key results

  1. Shownfastp was the fastest of six tools when each ran single-threaded on the paired-end B17NCB1 dataset, despite also performing pre- and post-filtering quality control plus read filtering; FASTQC, which does quality control only, ranked second.

    B17NCB1 (9,316 M bases) came from China's National Center for Clinical Laboratories and was timed in paired-end and single-end modes (Table 1): FASTQC needed about twice fastp's time, while Cutadapt, Trimmomatic, SOAPnuke, and AfterQC took 3–5 times longer. · 3.1 Speed evaluation; Tables

  2. ShownOn an Illumina NextSeq PE150 dataset, fastp and Trimmomatic left the fewest residual adapters: fastp output had no suspected adapter hits at up to 4 mismatches, whereas Cutadapt, SOAPnuke, and AfterQC output retained many at 4 or more.

    Filtered reads were searched for the 33bp adapter at increasing mismatch tolerance (Fig. 5). Trimmomatic output had fewer hits than fastp at 5 or more mismatches but more at 4; AfterQC output held hits even under exact matching. fastp and AfterQC trim by pair overlap; the others require the adapter sequence as input. · 3.2 Quality evaluation; Figure legends

  3. ShownAfter BWA-MEM alignment to hg19, fastp-filtered NS_PE150 data had the fewest clipped reads, mismatches, and single-read mapped reads of all tools tested, with Trimmomatic and Cutadapt producing many more clipped or single-read mapped reads.

    Samtools summaries in Table 2. The authors link mismatches to uncorrected sequencing errors and clips to leftover adapters: Cutadapt needs at least 3bp of match to call an adapter, so one- or two-base remnants persist, whereas fastp's overlap analysis can trim a remnant of only one base. · 3.2 Quality evaluation; 2.2 Adapter trimming; Tables

  4. ShownFor shifting UMIs from reads into read identifiers, fastp outpaced the dedicated tools umis and UMI-tools on a 4Gb Illumina PE150 FASTQ; the authors note its recent adoption by the bcbio-nextgen pipeline framework.

    Table 3 timings: speedups of about 2.7-fold over umis and about 6.1-fold over UMI-tools, with GZIP-compressed input and uncompressed output since umis cannot emit GZIP. The Methods section cites roughly 3 times faster even while also running quality control and filtering. · 3.3 UMI evaluation; 2.6 UMI preprocessing; Tables

  5. Suggestedfastp reads the flow cell identifier to recognize NextSeq or NovaSeq data and then automatically trims polyG tails arising from two-color chemistry signal decay; in one NextSeq FASTQ, this eliminated the G/C base-content separation seen before preprocessing.

    Evidence is a qualitative before/after comparison of base-content ratio curves (Fig. 3) with no quantitative metric. polyX trimming of low-complexity 3' tails is also offered, with polyG trimming applied first when both are enabled. · 2.5 polyG and polyX tail trimming; Figure legends

Methods, data and reproducibility

In a single multi-threaded scan (read packs of N = 1000), fastp finds adapters by extending k-mer (k = 10) seeds (single-end) or by pair overlap (paired-end), and corrects overlap mismatches. Speed was benchmarked single-threaded against FASTQC, Cutadapt, Trimmomatic, SOAPnuke, and AfterQC; trimming quality via residual adapters and BWA-MEM mapping to hg19.

  • B17NCB1 paired-end dataset from China's National Center for Clinical Laboratories, used for the single-threaded speed comparison of six tools · n = 9,316 M bases
  • NS_PE150, an Illumina NextSeq PE150 dataset used to assess residual adapters and post-filtering BWA-MEM mapping quality · human (reads aligned to the hg19 reference genome)
  • Illumina PE150 FASTQ used to time UMI preprocessing (moving UMIs into read identifiers) with fastp, umis, and UMI-tools · n = 4Gb of data
  • Illumina NextSeq FASTQ file used to illustrate polyG tail removal through before/after base-content curves · n = one FASTQ file
Methods & tools
fastp (C/C++, multi-threaded), FASTQC, Cutadapt, Trimmomatic, SOAPnuke, AfterQC (authors' earlier Python tool), umis, UMI-tools, BWA-MEM, Samtools, hg19 human reference genome
Assay conditions & compute
The six-tool speed comparison ran each tool single-threaded; thread settings for the UMI timing, host CPU, and memory are not described, and timing values sit in Tables 1 and 3 rather than the text.
Reproducibility gaps
No accession or download link is given for B17NCB1, NS_PE150, or the 4Gb UMI test FASTQ, and tool versions and command-line settings used in the benchmarks are not stated.
Limitations (5)
  • Multi-threaded performance was not compared because some benchmarked tools lack multi-threading, so the six-tool speedups reflect single-thread runs rather than fastp's intended parallel mode. · stated by the authors
  • Automatic adapter detection assumes one adapter per dataset that occurs only at read tails; the authors state this holds for major Illumina platforms (HiSeq, NextSeq, and NovaSeq series). · stated by the authors
  • UMI timing was restricted to GZIP-compressed input with uncompressed output because umis cannot write GZIP files, so compressed-output UMI workflows were not benchmarked. · stated by the authors
  • Each comparison rests on a single dataset (B17NCB1 for speed, NS_PE150 for quality, a 4Gb PE150 FASTQ for UMI) without reported replicate runs, variance, tool versions, or parameters, and the long-read support described as basic is never evaluated. · noted in this summary
  • Trimming quality is judged by proxies (residual adapter matches; mismatches, clips, and single-read mappings to hg19) without simulated ground truth or retained-read counts, so fewer errors could partly reflect harsher trimming; downstream variant-calling accuracy is not tested. · noted in this summary

Read this if you choose FASTQ quality-control and trimming tools for Illumina short reads, particularly paired-end, UMI-tagged, or NextSeq/NovaSeq data with polyG tails, and want fastp's design and benchmark evidence.

Citations
29,759
FWCI
258.68
Field percentile
top 1%

Reproducibility ledger

Nobody has reported trying to reproduce this paper yet. Did you replicate an experiment or run the code? Your report saves the next lab a week.

Sign in to file a reproducibility report.

Similarity Map
SelectedSame fieldCross-field
THISPérez-Rubio '19Roser '19Eidi '24Katz '23Ribes '26Robinson '19
76% semantic matchBioinformatics
Paula Pérez-Rubio, Claudio Lottaz, Julia C. Engelmann·BMC Bioinformatics·May 3, 2019· 45 citations