Sign in
BioinformaticsBioinformatics
Peer-reviewed journal article

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

Shifu CheniD, Yanqing ZhouiD, Yaru CheniD, Jia GuiD

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

PDFDOICode
Full-text digest ↓

02 /Specification & Classification

Click any tag to browse matching papers

In-depth summary

✦ Multi-agent verified full-text synthesis

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

Who should read: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.

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