iMeta|引用7000+,海普洛斯陈实富发布新版fastp,更快更好地处理FASTQ数据

使用fastp进行超快的FASTQ数据预处理、质量控制和去重
亮   点
图片
Fastp 是一种广泛采用的 FASTQ 数据预处理和质量控制工具。它超快且用途广泛,可以在单次数据扫描中执行接头移除、全局或质量修整、读长过滤、去冗余 、碱基校正和许多其他操作。Fastp 已经重构和升级了一些新特性。与 fastp 0.20.0 相比,新的 fastp 0.23.2 速度提升了 80%。
● Fastp 是一种超快、一步完成FASTQ 数据处理的工具。
● Fastp 经过重新设计,使其速度更快并生成可重复的结果。
● Fastp 引入了高效的 FASTQ 级重复数据删除,无需对读长进行排序。
摘  要
随着测序技术的不断进化和测序应用的扩大,每天都会产生和处理大量的测序数据。这种测序数据爆炸的一个后果是数据处理的成本和复杂性不断增加。FASTQ数据的预处理是测序数据分析中不可或缺但资源密集型的部分,包括去除adapter污染、过滤低质量读长(reads)和校正错误碱基。因此,尽管已经开发了许多软件应用来解决这个问题,但生物信息学科学家和工程师仍在追求更快速、更简单和更高效的软件。几年前,作者开发了fastp,这是一个超快的全能FASTQ数据预处理器,具有许多现代特性。这个软件已经得到了许多生物信息学用户的认可,并且一直在持续维护和更新,根据Google Scholar的数据,fastp论文目前已经被引7000多次。
自fastp首次发表以来,它已经得到了极大的改进,使其更快、更强大。例如,去重评估功能得到了改进,还添加了一个新的去重功能。本研究旨在介绍fastp的新特性,并展示它的设计和实现方法。
全文解读
引  言
高通量测序技术在近20年来得到了快速发展。每年都会推出各种新的测序平台,测序通量不断增加。无论是哪种测序平台和测序通量,FASTQ已成为大多数高通量测序平台生成的数据的标准。这些FASTQ数据在进入下游分析之前需要经过质量控制和一系列预处理步骤,以确保数据的清洁性和准确性。在几乎所有测序的应用场景中,数据预处理的有效性通常对最终的分析结果有很大影响。例如,循环肿瘤DNA测序可用于寻找个体化治疗和检测微小残留病。然而,其结果严重受到测序数据质量的影响,如接头污染、测序噪音和其他人为因素都可能影响分析的准确性,导致错误的治疗决策。
许多工具已经被开发出来解决FASTQ数据预处理和质量控制的问题。例如,Cutadapt和Trimmomatic 已被广泛用于接头修剪和低质量修剪。许多工具,如FQC Dashboard  和NGS QC Toolkit,被开发用于FASTQ数据的质量控制。然而,这些工具存在两个主要问题。一是它们的效率不高或者占用过多内存。另一个问题是它们的功能不够全面,导致需要使用不同的软件模块多次处理数据,以完成整个预处理和质量控制过程。Fastp是一个超快的全能FASTQ数据预处理工具,具有许多现代化特性,它被开发来解决这些问题。Fastp可以在单次数据扫描中执行接头去除、全局或质量修剪、读长过滤、序列去冗余、碱基纠错以及许多其他功能。自fastp首次发布以来,它已被众多用户采用。然而,早期版本的fastp存在一些问题,例如无法复现执行结果、数据压缩速度不理想等。新版本的fastp通过重构fastp软件的多线程计算架构,并引入基于高度优化的压缩库igzip的更高效的数据压缩和解压缩算法,来解决上述关键问题。除了架构优化,新版本的fastp还增加了一些新特性,例如快速去重。Fastp输出一个交互式的超文本标记语言(HTML)报告用于手动检查,以及一个详细的JSON报告用于自动质量控制。图1显示了fastp HTML报告的部分内容。
图片
图1. fastp交互式统计图的部分内容
 (A) 每个碱基的质量曲线, (B) 每个位置的每种碱基含量曲线。(C) 评估插入片段大小的分布。由于存在末端未重叠的读长,有一小部分读长保持未知,通常是由于片段太长的原因。(D) 过度代表序列的统计信息,包括它们的每个碱基分布。
方  法
Fastp是一个用于FASTQ数据的多线程、多功能、预处理软件。它接受单端或双端FASTQ数据作为输入,并输出处理后的数据以及质量控制指标报告。图2显示了fastp如何处理双端FASTQ数据。
图片
图2. fastp的双端数据处理工作流程
该工作流程可以简单地分为解压器、预处理器和压缩器。输入的双端FASTQ文件被单独解压成读长包,每个包包含固定的读长记录。每个工作线程依次选择奇数或偶数的读长包,处理读长,进行一些统计,并按照相同的顺序将质控后数据输出给压缩器。
为了演示,使用了两个工作线程,但通常会使用更多的工作线程(通常为3-16个)以加快预处理速度。采用经典的生产者/消费者线程模型,具体地说,输入和输出读长包被存储在一个单生产者单消费者(single-producer-single-consumer, SPSC)列表中,用于线程安全通信。这个SPSC列表在没有任何线程锁的情况下实现,以支持高性能的线程间通信。如图2所示,对于特定的读长包,它被固定在哪个工作线程中进行处理。这个特性保持了输出和输入数据的顺序一致,使得输出完全可复现,这意味着如果命令运行两次,生成的输出文件将是相同的。
图2中展示的大多数特性在fastp的首次发布中引入。一些特性,如双端合并和去重,是最近引入的。在重叠分析完成后,应用双端合并相对较简单。
去除冗余读长是NGS数据分析流程中必要的步骤。以前的去重工具通常要求首先将读长比对到参考基因组,这使得它们效率低下,并且不适用于某些不涉及序列比对的应用。新的fastp实现了一种快速、准确且内存高效的基于FASTQ级别的去重。图3简要说明了fastp去除重复读长的方法。
图3. fastp如何确定读长是唯一的还是重复的
如图3所示,使用多个布隆过滤器数组(例如三个),每个数组都有L个位。为每个数组定义了一个哈希函数。哈希函数将读长序列映射到一个整数p ∈ [0, L)上;因此,读长R将被映射到p1、p2和p3。如果Array1[p1]、Array2[p2]和Array3[p3]都是正数,则将R标记为重复;否则,将Array1[p1]、Array2[p2]和Array3[p3]设置为正数。对于双端读长,首先组合读长成对,然后与单端读长处理相同。
结果与讨论
与早期版本相比,新版本的fastp提供了更强大的性能,并生成了可复现的结果。尽管增加了一些新功能并提高了速度,但fastp仍然保持了非常小的内存需求。通常情况下,只需要4GB或更少的内存来运行fastp,这使其非常适合基于云的应用。表1显示了Trimmomatic-0.39、fastp 0.20.0和fastp 0.23.2之间的性能比较。
表1:Trimmomatic-0.39、fastp 0.20.0和fastp 0.23.2的性能比较
图片
在典型的计算服务器(CPU,64核2.5 GHz;内存,1024 GB)上评估了共11个来自Illumina或MGI平台的双端测序数据。所有实验都使用了八个工作线程,并使用默认或推荐的命令选项进行了处理。如表1所示,fastp 0.23.2比Trimmomatic-0.39快约9倍,比fastp 0.20.0快约1.8倍。这个结果表明,新的fastp只需要25分钟即可对1000亿个碱基的双端数据进行预处理和质量控制,这通常是整个基因组测序数据的量级。
结  论
新的架构显著提升了fastp的性能,使fastp的结果可复现。此外,fastp非常容易上手,可以通过下载预编译的二进制文件或通过BioConda进行安装轻松获取。考虑到其超高性能、丰富的功能和简单的使用方式,fastp应该是进行FASTQ数据预处理和质量控制的最佳选择之一。
引文格式:
Shifu Chen. (2023). Ultrafast one‐pass FASTQ data preprocessing, quality control, and deduplication using fastp. iMeta, https://doi.org/10.1002/imt2.107
作者简介
图片
陈实富(第一/通讯作者)
●  中科院博士,海普洛斯创始人兼首席技术官,中科院深圳先进技术研究院客座研究员。
●  2019年深圳市青年科技奖获得者,2021深圳市科技达人,2022广东省创新达人,以项目负责人获2022深圳科技进步奖获。开源项目组OpenGene的发起人,多款热门生物信息学软件的作者。发表国际期刊和会议论文60余篇,其中一作兼通讯最高单篇引用超过7000次(近五年中国生物学者单篇引用前三)。申请30余项发明专利和40多项软件著作权,是中国抗癌协会、中国临床肿瘤学会以及美国肿瘤学会会员,中国抗癌协会肿瘤标志专委会青年委员,肿瘤测序及大数据分析专委会委员,中国工业与应用数学学会“数学与产业专业委员会”委员。