在2016杭州云栖大会第二日,WeGene创始人陈钢在基因计算专场分享了《服务:数据驱动的基因组分析与解读》,他主要从个人基因组为用户做什么、在阿里云生态中的实践、未来的基因组数据平台三个方面进行了分享,详细介绍了基因组的作用、使用阿里云进行数据存储、传输和计算的方法以及未来基因数据分析的前景。
以下内容根据演讲PPT及现场分享整理。
个人基因组为用户做什么?
除了细胞核有基因组之外,线粒体上也会存在基因组,线粒体是为细胞提供能量的,每个人的线粒体都来自母系,Y染色体会全部来自父系。这些基因数据全部测试的数据量大约为100G。但是我们通常会认为人与人之间的基因组差异会很小,如果只把人与人之间具有差异的部分挑选出来进行检测,我们的计算成本就会变得小很多。
通过基因组数据,我们可以做很多有趣的事情。比如,在东非把所有人的基因组进行计算,加上化石和遗迹的考察,我们可以知道我们的祖先大约在16-20万年前(即现代智人出现的时间)出现在东非。他们大概在6-7万年前开始从非洲大陆迁徙出来,迁徙路径往往是向着有水源或者食物的地方。这是根据Y染色体推算出来的,在Y单倍群的基础上就有了上图中字母的定义,从图中的C路径就可以得知北美的印第安人和我们很像的原因。有了这么多的数据,如果我们对每个人进行检测,我们就会知道自己的祖先是如何一步一步走到这片土地上的。
除了上述祖源的检测,我们还可以根据每个用户的基因组并且基于现在的文献和成果做更多的解读。然而基因组检测还存在一定的局限性,比如很多的研究实际上是基于欧洲人的而不是中国人,所以推动中国人基因组数据研究刻不容缓。当把所有的这些工作都从线下推到了互联网上时,人们可以不需要到医院进行基因检测,在互联网上诞生了一些更多的可能。通过很多的检测,我们发现很多与基因组有关的疾病并不单单是基因组可以决定的,基因组能决定的事情很少,但是几乎所有的所谓疾病的风险除了遗传病以外,基因都只是其中的一个影响因素。
微解读
用户可以在网站上点击创造一个解读项目,填入参考文献等各种信息。用户创建的解读项目是多样的,包括娱乐的、跟饮食有关的等等。这样的解读项目已经有了六十多项,大概有一万多人次用了这样的项目。无论是华大还是产业链的很多巨头,都曾经梦想过在基因组行业中会有一个APP Store。根据每个人的基因组,我们是不是可以开发很多应用?是不是可以构建出一个基因组的APP Store?微解读或许是在这方面初步的一个尝试。
基因组数据不仅仅能够为个人提供好处,很多基因组研究在中国人身上做的不够好,最主要的原因是数据不够。所以,希望通过互联网的技术和手段来推动这方面的研究,比如尼古丁的研究、基因组和睡眠关系的研究。尼古丁重度成瘾性的研究通过在互联网上填写调查问卷,使得研究的速度得到极大的进展,其中每一项都需要用户签署置信同意。随着科技的发展,越来越多的人也愿意参与到这样的科学研究中。
在阿里云生态中的实践
上图中是WeGene主要用到的组件,包括:ECS、OSS、RDS、API应用网关、批量计算等等。WeGene与阿里云平台上的做生物信息PAAS服务的GeneDock的公司的很多组件进行合作。
具体来讲,利用本地服务器通过GeneDock和阿里云自己的组件去提供PC、移动、API的服务,实验室的数据直接进入OSS,大型的数据会直接进入本地的服务器,最终在阿里云上呈现给全球的用户。
数据存储
- RDS:主要用于存储预处理后的基因组数据、表型数据、网站数据,没有经过预处理的数据规模是庞大的,不可能进入RDS这种SQL数据库;
- OSS:用于存储基因组原始数据和大型的计算结果(比如,全基因组数据:FASTQ,BAM,约每用户200GB,约50用户;芯片数据:CEL,约每用户200MB,约7000用户);
- GeneDock:存储正在处理的全基因组数据和芯片数据;
- 本地存储:所有数据的备份。
数据传输
生命科学所有的数据都是在测序中心、实验室中产生的,怎么把这些数据传输到云上是一个很麻烦的事情。以下是三种数据传输的方式:
- 芯片数据:数据量比较小,实验室用OSS客户端上传OSS;
- 全基因组数据:数据量比较大,需通过GeneDock的专线上传GeneDock系统,也有一些专门的压缩和传输算法,尽可能利用数据的带宽,同时实时压缩和解压;
- 23andme等数据:海外的数据通过API直接存储RDS。
计算
本地服务器:
- 主要用于研发,或者是处于alpha测试阶段的产品,Celery调度;
- 基于Spark的芯片数据质控。
ECS:
- 实时的小规模计算,例如简单的遗传风险评估;
- 常规Web服务。
GeneDock:
- 全基因组数据分析。
未来的基因组数据平台
基因组数据的二次分析
当我们为每一个人提供基因组数据分析的时候,我们只是根据已有的科研结果去一个一个的分析基因组数据。无论是华大还是其他厂商,当积累了足够多的数据之后,希望能够从数据中发现新的东西,什么样的系统能够支持这样的数据分析?而且,随时随地都会有用户通过调查问卷、智能硬件来更新表型信息,整个基因组的数据分析结果是否能够实时反应出这些数据所带来的影响?这些挑战都是比较大的。
全基因组数据存储、分析和可视化
数据分析需要有一个高效的存储系统。Genomics API可以统一支持基于基因组的上层应用,数据量变大时仍然面临很大的挑战。
亚洲人群的Genome Graph
参考基因组有一套参考标准,可以认为是白人的基因组。而每个民族的基因组都是不一样的,每个人的基因组都是不一样的,所以和参考基因组进行比对是不太合理的。Genome Graph的思想是:如果将每个人基因组和一个参考基因组进行比对不合适的话,是不是将其和多个参考基因组进行比对更为合适?这样就带来了是处理速度的挑战。