近年来,直接面向消费者的基因检测市场已经爆发。2017年使用家庭DNA测试的人数增加了一倍以上,其中大部分在美国。现在,25个美国成年人中大约有1人知道他们的祖先来自哪里,这得益于AncestryDNA和23andMe等公司。
随着测试变得越来越流行,这些公司正在努力解决如何存储所有累积数据以及如何快速处理结果的问题。由Purdue大学的研究人员创建的一种名为TeraPCA的新工具现在可以提供帮助。结果发表在Bioinformatics期刊上。
尽管人们存在许多身体差异(由种族,性别或血统等因素决定),但任何两个人的遗传基因相同,都是99%。最常见的遗传变异类型,即导致我们不同的1%,被称为单核苷酸多态性或SNP(发音为“snips”)。
SNP在每1,000个核苷酸中几乎发生一次,这意味着每个人的基因组中存在大约4到5百万个SNP。即使是一个人,这也是需要跟踪的大量数据,但对数千或数百万人来说,这是一个真正的挑战。
大多数关于人类遗传学中人口结构的研究使用了一种称为主成分分析(PCA)的工具,该工具分析了大量变量并将其减少到仍包含大部分相同信息的较小集合。减少的变量集(称为主要因子)更容易分析和解释。
通常,要分析的数据存储在系统内存中,但随着数据集变大,运行的PCA由于计算开销而变得不可行,研究人员需要使用外部应用程序。对于最大的基因检测公司来说,存储数据不仅昂贵且技术上具有挑战性,而且还存在隐私问题。这些公司有责任保护成千上万人的极其详细的个人健康数据,并将其全部存储在硬盘上,这可能使他们成为黑客的一个有吸引力的目标。
与其他核外算法一样,TeraPCA设计用于处理数据太大而无法同时适应计算机的主存储器。它通过一次读取大块数据集来理解大型数据集。
“2017年,我遇到了一些来自大型基因检测公司的人,我问他们在运行PCA时做了些什么。他们使用的是FlashPCA2,这是行业标准,但他们对服用的时间不满意, “Aritra Bose博士说。普渡大学计算机科学专业的候选人。“对于一百万个人的基因数据和使用FlashPCA2的许多SNP运行PCA需要几天时间。可以在五到六个小时内用TeraPCA完成。”
新计划通过近似主要组成部分来缩短时间。Bose表示,舍入到三位或四位小数的结果与原始数字一样准确。
“在遗传学方面工作的人不需要16位精确度 - 这对练习者来说无济于事,”他说。“他们只需要三到四个。如果你可以减少它,那么你可以很快得到你的结果。”
通过使用多个计算线程(称为“多线程”),TeraPCA的时序也得到了改善。线程有点像装配线上的工人;如果流程是经理,则线程是勤奋的员工。这些员工依赖于相同的数据集,但他们执行自己的堆栈。
今天,大多数大学和大公司都有多线程架构,但FlashPCA2没有利用它。对于像分析遗传数据这样的任务,Bose认为这是错失的机会。
“我们认为我们应该利用现在存在的多线程架构来构建一些东西,而且我们的方法可以很好地扩展,”他说。“TeraPCA与您拥有的线程数呈线性关系.FlashPCA2不会这样做,这意味着需要很长时间才能达到所需的精度。”
根据该报告,与FlashPCA2相比,TeraPCA在单个线程上表现相似或更好,并且在多线程方面表现更好。该代码现在可在GitHub上获得。
该研究得到了国家科学基金会的支持。Vassilis Kalantzis是IBM Research的Herman H. Goldstine纪念博士后研究员,是该论文的共同第一作者。