page banner

学术成果

Academic Achievements

fastp论文发表于《Bioinformatics》,引用近3万

Bioinformatics , 2018

查看原文

前言

在生物科技领域,海普洛斯创始人兼CTO陈实富博士领衔开发的fastp软件创造了技术转化典范。这款超高速FASTQ数据预处理工具自问世以来,凭借其创新算法架构与持续迭代能力,已成为生物信息学领域的现象级工具。据Google Scholar统计,fastp研究论文以28,000余次的引用量,强势登顶近十年中国生物科技领域学术影响力榜首。

软件功能

01

Fastp是一个用于FASTQ数据的多线程、多功能、预处理软件。它接受单端或双端FASTQ数据作为输入,并输出处理后的数据以及质量控制指标报告。图1显示了fastp如何处理双端FASTQ数据。

7.16.11

1. fastp的双端数据处理工作流程

该工作流程可以简单地分为解压器、预处理器和压缩器。输入的双端FASTQ文件被单独解压成读长包,每个包包含固定的读长记录。每个工作线程依次选择奇数或偶数的读长包,处理读长,进行一些统计,并按照相同的顺序将质控后数据输出给压缩器。

演示使用了两个工作线程,但实际操作通常会使用更多的工作线程(通常为3-16个)以加快预处理速度。采用经典的生产者/消费者线程模型,具体来说,输入和输出读长包被存储在一个单生产者单消费者(single-producer-single-consumer, SPSC)列表中,用于线程安全通信。这个SPSC列表在没有任何线程锁的情况下实现,以支持高性能的线程间通信。如图2所示,对于特定的读长包,它被固定在哪个工作线程中进行处理。这个特性保持了输出和输入数据的顺序一致,使得输出完全可复现,这意味着如果命令运行两次,生成的输出文件将是相同的。图2中展示的大多数特性已在fastp的首次发布中引入。另外一些特性,如双端合并和去重,是最近引入的。在重叠分析完成后,应用双端合并相对较简单。

02

去除冗余读长是NGS数据分析流程中必要的步骤。以前的去重工具通常要求首先将读长比对到参考基因组,这使得它们效率低下,并且不适用于某些不涉及序列比对的应用。新的fastp实现了一种快速、准确且内存高效的基于FASTQ级别的去重。图2简要说明了fastp去除重复读长的方法。

7.16.12

2. fastp如何确定读长是唯一的还是重复的

如图2所示,使用多个布隆过滤器数组(例如三个),每个数组都有L个位。为每个数组定义了一个哈希函数。哈希函数将读长序列映射到一个整数p ∈ [0, L)上;因此,读长R将被映射到p1、p2和p3。如果Array1[p1]、Array2[p2]和Array3[p3]都是正数,则将R标记为重复;否则,将Array1[p1]、Array2[p2]和Array3[p3]设置为正数。对于双端读长,首先组合读长成对,然后与单端读长处理相同。