你是否进行过基因组测序?全世界已经有数百万人进行了基因组测序,到2025年,这一人数可达10亿。
研究人员获取的基因组数据越多,个人和公共健康的前景就越好。目前,产前DNA测试已可对胎儿发育异常进行筛查。很快,患者就可以通过血液测序找到可能预示着传染病的非人类基因。将来,癌症研究人员将能够通过对多个组织的DNA和RNA进行日常单细胞测序,来跟踪疾病的进展。
全民DNA测序将使我们更全面地了解整个社会的健康状况。这就是英国生物银行的目标,它旨在对50万名志愿者的基因组进行测序,并对他们进行数十年的追踪。覆盖广泛人口的基因组研究已经成为一项日常应用,对与特定疾病相关联的突变进行识别。对空气、土壤和水中的生物体进行定期测序将有助于追踪流行病、食物病原体、毒素等。
要实现这样的愿景,需要存储并分析的数据量将大到难以想象。通常,一台DNA测序仪处理一个人的整个基因组就会产生数十至数百千兆字节的数据。在存储时,数百万基因组累积的数据将达到数十艾字节。
这还仅是开始。发现并应用基因组数据的科学家、医生以及其他相关人士对每个个体并不会仅仅进行一次测序,他们还会想对多个人体组织中的多个细胞进行反复测序。随着测序速度的增加和其成本的下降——现在个人基因组测序只需要1000美元,并且还在迅速下降——他们还想对其他动物、植物、微生物和整个生态系统的DNA进行测序。此外,新应用程序,甚至新产业的出现,都会催生出更多的测序行为。
虽然现在很难预测基因组数据所有的未来收益,但我们已经看到了一项不可避免的挑战:数据存储量几乎达到了令人难以置信的程度。目前,存储基因组数据的成本仍然只占实验室总预算的一小部分。但该成本正急剧增长,远远超过了存储硬件价格的下降。在未来5年内,存储数十亿人类、动物、植物和微生物基因组的成本将达到每年数十亿美元。这些数据需要保存数十年,甚至更长时间。
数据压缩显然非常有用。生物信息学专家们已经使用类似gzip的标准压缩工具,将文件大小缩小到原来的1/20。一些研究者还使用了更为专业的、针对基因组数据进行优化的压缩工具,但这些工具都没有得到广泛采用。我们两人都从事数据压缩算法研究,我们认为是时候提出一种新的压缩方案了——一种效率更高、速度更快、更适用于基因组数据独有特性的方案。正如专用视频和音频压缩对YouTube和Netflix等流媒体服务至关重要一样,面对基因组数据爆炸,也必须利用专用的基因组数据压缩工具才能获取收益。
在解释如何更好地压缩基因组数据以前,让我们仔细观察一下数据本身。“基因组”是指4种核苷酸碱基的序列——腺嘌呤、胞嘧啶、鸟嘌呤和胸腺嘧啶——它们形成了我们熟悉的DNA碱基A、C、G、T。这些核苷酸出现在组成人类基因组的23对染色体的A-T和C-G碱基对的碱基链中。这些染色体包含大约60亿个核苷酸,存在于大部分人体细胞中,并且包括编码基因、非编码因子(如染色体末端的端粒)、调控因子和线粒体DNA。伊诺米那(Illumina)、牛津纳米孔科技公司(Oxford NanoporeTechnologies)和太平洋生物科技(Pacific Biosciences)等公司的DNA测序仪能够在数小时内对一份DNA样本完成一组人类基因组的自动测序。
这些商业DNA测序仪不产生单个基因组长度的ACGT串,而是产生大量的子串或“读序”(reads)。“读序”彼此有部分重叠,需要由序列装配软件重建完整的基因。通常,当进行全基因测序时,每一段基因出现在不超过约100个“读序”中。
根据所使用的测序技术,一个“读序”的长度可以在大约100到10万个碱基对间不等,“读序”的总数在数百万到数百亿碱基不等。短的“读序”可以发现单个碱基对的突变,长的“读序”能更好地检测在成千上万个碱基对中发生的缺失或插入等复杂变异。
DNA测序是一个充满噪声的过程,“读序”包含错误很常见。因此,除了ACGT核苷酸串以外,每个“读序”还包括质量评分,标明测序仪对每个DNA核苷酸的置信度。测序仪的质量评分以对数形式表达错误概率。其使用的算法是专利技术,但在事后可查。如果质量评分为20(对应的错误概率为1%),那么用户可确认在已知DNA序列中大约有1%的碱基对是不正确的。使用这些文件的程序依赖质量评分来区分出测序错误和突变等变化。相对于测序错误,真正的突变将具有更高的平均质量评分——也就是说,更低的错误概率。
测序仪将含有核苷酸串、质量评分以及其他一些元数据的“读序”逐个地粘贴在一起,形成所谓的FASTQ文件。一个完整基因组的FASTQ文件通常包含数十至数百千兆字节的数据。
这些文件冗余度很高,其原因是任意两个人的基因组几乎都是一样的。平均而言,每1000个核苷酸中,只有大约1个核苷酸不同,通常人们只对这些基因组差异感兴趣。一些DNA测序针对特定的差异区域——例如,像23andMe这样的DNA基因分析应用仅查找特定的差异,刑事调查中DNA分析则会查找某些标记重复次数的变化。
但是,如果你不知道有需要关注的区域在哪里——例如,你试图诊断一种未知遗传来源的疾病,那你就需要对整个基因组测序,这就意味着获取更大量的测序数据。
重复的测序数据也是为了清除错误,因此对基因组相同部分进行多次读取。有时单一样本包含多种变异序列,因此你会想对其进行重复测序来捕捉这些变异。比如检测一个组织样本中的癌细胞,或检测孕妇血液中胎儿DNA的痕迹。这可能意味着要对每个DNA碱基对进行很多次测序,通常超过100次,以识别稀有变异与常见变异,区分真正的差异与测序错误。
━━━━
到目前为止,对DNA测序为何会产生如此多的冗余数据你应该已有了更好的理解。事实证明,这些冗余正是数据压缩的理想选择。无须存储同一基因组数据的多个副本,你可以只存储一份副本。
为了压缩基因组数据,你可以首先将每个DNA序列“读序”分为较小的数据块,然后为每个数据块分配一个数字索引。最终,所有索引构成了一部字典,其中的条目不是单词,而是DNA碱基对短序列。
文本压缩器就以这种方式工作。例如,GitHub拥有一个广泛使用的单词列表,可用它来为每个单词分配数字索引。因此,要将一段文本编码为二进制,需要将每个单词替换为其数字索引——比如GitHub的列表中用数字64872代表单词“compression”(压缩)——随后再以二进制形式表示这些数字。为了压缩二进制表示,可以按单词使用频率对字典进行排序,而不是按字母表顺序,以便使更常用的单词获得更小的数字,这样它们需要编码的位数就更少。
另一种常见的策略是Lempel-Ziv算法系列,它建立一个由越来越长的短语(而不是单词)组成的词典。例如,如果某个文本经常在“基因组”后跟“数据”一词,则会把单个的数字索引分配给短语“基因组数据”。
很多通用的压缩工具,例如gzip、bzip2、脸书的Zstandard和谷歌的Brotli,都使用这两种方法。虽然这些工具对压缩基因组文本有效,但为特定的数据类型开发的专用压缩器与它们相比有更显著的优势。
再看视频流的情况。单帧视频及其播放方向使得视频压缩软件能够预测下一帧,因此压缩文件不包含每一帧中每个像素的数据。此外,观众可以容忍难以察觉的视频信息丢失或失真,这与基于文本的数据情况不同。为了利用这一特点,一家国际联盟组织花费数年制定了H.264视频压缩标准(如今蓝光光碟、YouTube、iTunes Store、Adobe Flash Player和微软的Silver- light便使用该标准)。
研究人员同样也在设计专用的基因组数据压缩工具,在每个月的学术文献中都涌现出一些新的工具。很多人使用“基于参照”的压缩方法,它的切入点是以人类基因组序列作为参照。任何人类DNA短序列——由不超过100个碱基对组成的序列——很可能出现在该参照中的某处,哪怕有测序错误和突变。因此,专用的压缩器不列出序列中所有近100个碱基对,而是仅记录该串在参照中的开始位置(例如“5号染色体中的第1000个碱基对”)并描述相对于参照序列的所有差异(例如“删除第10个碱基对”)。除了压缩软件之外,该方法还需要用户提供一份人类基因组的参照副本,其数据大小约为1千兆字节。
如上所述,FASTQ文件不只包含DNA序列,还包含表明潜在错误的质量评分。遗憾的是,基于参照的压缩无法用于压缩FASTQ质量评分,因为没有针对质量评分的参照序列。但是,这些工具着眼于质量评分的模式——例如,一个低质量得分之后很可能是另一个低质量得分,或者DNA“读序”开始阶段的质量评分往往比结束阶段的要高。就像对所有单词按照使用频率降序编码可以压缩文本一样,对一组质量评分数据按照其预测可能性高低的顺序进行编码,可以对该数据进行压缩。研究人员有时会丢弃低质量数据,而不对其进行存储和压缩,但数据压缩程序可能无法决定丢弃哪些数据或确定“低质量”的阈值是多少。
━━━━
这些新的压缩器是个良好的开端,但它们还不完美。随着对数据的理解不断加深,我们压缩数据的能力也随之提高。数据压缩迫使我们寻找数据中的隐性模式和冗余;当数据压缩深入到一定的程度时,我们就会意识到我们完全理解了这些数据。如果基因组数据压缩器能够将数据中的细微模式纳入考虑,那么就将能够缩小文件大小并降低存储成本。
在斯坦福大学我们自己的研究中,我们得出了一项有潜力的观察结果:基因组中两个连续DNA变异之间的距离遵从“双幂律”分布。你可能熟悉“幂律”分布的概念,即某种结果出现的概率与该结果数量级的倒数(负指数幂)成正比,可能达到某个幂数。城市人口通常遵循这种分布:拥有200万人口的城市数量大约是拥有100万人口的城市数量的一半。该定律也适用于国家财富分布,20%的人口占有80%的财富(二八定律)。
双幂律包括两种不同的幂律,它们作用在相同类型的数据上,但覆盖不同的范围。例如,二八定律可以应用于人口财富占比中的下半部分,而一九定律适用于上半部分。双幂律可以用于描述脸书上的好友数量、电话呼叫的持续时间,以及硬盘驱动器上的文件大小。
事实证明,通过DNA碱基对测量得出相邻遗传变异之间距离的直方图看起来符合双幂律,交叉点出现在大约1000个DNA碱基对附近(见本文的“双幂律”图表)。何种进化过程导致了该种分布尚不明确,但是其存在使改进压缩成为可能。克劳德•香农在信息理论的一个基本成果中指出:数据无法被压缩到其分布的信息熵以下——信息熵是一种随机性测度。双幂律分布证明了现实基因组的随机性比假设模型的随机性要小,即具有较低的信息熵,模型假设基因组中每个位置出现变异的可能性相等。我们对这一发现感到兴奋——这不仅是一个有趣的生物学现象,还暗示存在尚未开发的更大压缩潜能。
━━━━
今天使用的基因组数据压缩器是无损的——也就是说,允许你逐个数位地将压缩文件恢复至与压缩前完全一样。但有一种情况允许一定量的损失,不是在DNA序列中,而是在测序仪对数据的质量评分中。虽然只有4种DNA核苷酸(A、C、G、T),但通常大约有40种可能的质量评分,因此构成无损压缩的FASTQ文件中的大多数数位是质量评分,而不是DNA序列。这种精确度是无用的,因为使用基因组数据的应用软件倾向于忽略质量评分中的微小变化,或是可能完全丢弃质量评分。当质量评分以有损方式压缩时,类似于寻找两个基因组之间变化的某些任务的性能实际上得到了改善,因为有损压缩消除了质量评分间的无关变化,有效地除去了数据中的噪声。
我们还可以通过丢弃某些基因测序信息来节省存储空间。DNA“读序”出现在FASTQ文件中的确切顺序对随后的分析来说通常并不重要。类似识别遗传变异等很多情形,随机搅乱“读序”,产出的结果几乎相同。因此,你可以利用“排序的列表比未排序的列表能够压缩得更多”这一事实,按字母表顺序对DNA“读序”进行排序。文本压缩中的类似情况是对单词列表进行排序,并说明相邻单词之间的距离。例如,“decompressed”和“decompresses”(“解压”的不同时态)在字典中是相邻的,它们的最后一个字母(d和s)在字母表中相隔15个字母,因此你可用整数15对第二个单词进行编码。
举例说明该方法如何运用在DNA上,让我们按字母表顺序对序列ACGAAA、ACGAAG和 ACGAAT进行排序。前5个字母都是一样的,因此我们只对第6个字母之间的差异感兴趣。第二个序列被编码为整数2(因为最后一个字母G,是核苷酸字母表ACGT中排在A之后的第2个字母),第3个序列被编码为1(因为它的最后一个字母T,是G之后的1个字母)。相对于按原始顺序存储DNA“读序”,这种方法可以节省两倍乃至更多的存储量。
当然,压缩率只是压缩工具能力的衡量标准之一。速度是另一个衡量因素。很多专用FASTQ压缩器并行运行,比单CPU运行节省时间;有些压缩器利用GPU和现场可编程门阵列处理器,这些硬件经常用于加速视频处理和机器学习。另一个实用的因素是能够搜索压缩数据。你一定不希望在只想快速搜索一段特定DNA序列时,还必须先解压整个文件。
基因组压缩工具的选择越来越多,此时我们需要的是标准化。就像视频压缩技术要等到业内大部分人士达成一个标准才能起步一样,基因组压缩技术也必须形成一个标准——或至少是一组标准。
幸运的是,基因组测序数据压缩的标准已经开始制定。动态图像专家组(MPEG)——也就是开发MP3音频格式和几项流行视频格式的机构——多年来一直在制定一项压缩基因组数据的标准,名为MPEG-G。该规范有望于今年晚些时候完成。该标准将随着技术的提高而发展,就像视频压缩标准曾经的方式一样。
我们开发高效、健全和标准化的基因组数据压缩的速度只是一个经济学问题。随着存储数据量的飙升,存储成本日益高涨,降低成本才能推动行业采用更好的压缩方法。
现在,随着序列数据总量的累积,基因研究可能处于取得意外收获的风口,目前,该领域与10年前人工智能的处境相似。最近人工智能所取得的巨大进步在很大程度上是由大量可用的数据集所驱动的,原先使用中等数据量表现不佳的深度学习算法,在使用大量数据集后,变得非常强大。基因研究人员已经开始对他们的数据使用深度学习算法,但在取得类似收获之前,他们不得不等待大量基因信息的累积。但有一件事是清楚的:没有基因数据压缩技术的重大进步,他们就无法取得成功。
全部0条评论
快来发表一下你的评论吧 !