本文正在参加“最佳上云实践”评选,来给我们投票吧:(编号14)
公司成立于2014年,取名基云惠康,立志通过基因来惠及大众健康,公司的口号是知基因,惠健康。惠健康的第一步就是要知基因,知基因就要对基因数据进行分析与解读。要知道人全基因组测序的原始数据一般在300G左右,压缩为fastq格式也要60G左右,怎么快速低成本的分析这些数据是一个比较棘手的问题。
公司成立之初,原打算是自己购买服务器搭集群,后来由于种种原mei因qian,加之“云”的大势所趋,我司boss就决定将基因数据分析流程搭建在云上。那时中国的天空就那么几朵云,AWS刚进入中国;阿里云可选服务产品还很少;腾讯云还未正式商用;百度云那时还指的是百度个人网盘。经过综合分析对比,加之基因数据比较敏感,最终选定了阿里云。
最初,服务少,条件苦,我司直接在阿里云上买了几台ECS服务器,组建成一个小集群,在集群上搭建了半自动数据分析流程。分析一个人全基因组数据还需要手动调用资源,拼接分析流程,完成一个样本的分析成本很高,时间也很长。
2014年末阿里云的林河山告诉我们他们开发了一款强大的计算服务,称之为“帝喾”(阿里云内部似乎比较偏爱上古皇帝),邀请我们内zhao测bug。在阿里云技术团队的支持下我们用了一周左右的时间将数据分析流程搭建到了帝喾上。搭建成功后又用了近一个月的时间找bug、修复调整后V1.0版本的分析流程终于正式出阁待客了,15年7月阿里云在云栖大会正式发布了帝喾服务,改名为批量计算。应该说我司基云惠康是首家将基因数据分析业务部署到阿里云上的公司,在一定程度上促使了阿里云形成了现如今的生物基因解决方案。我们经历了批量计算从杭州到深圳再到青岛的迁移,每次迁移也是批量计算一次大的升级,每次迁移升级后我司的技术人员就会对数据分析流程进行针对性的调整升级,在调整过程中就会发现批量计算中的一些bug并反馈给阿里云。到目前为止,我司已在批量计算上分析了上千的人的基因样本数据,经过不断的调整优化,数据分析成本已降到了很低。
俗话说时间就是金钱,这在使用“云”分析基因数据时体现的淋漓尽致。要想分析时间短,就需要更多的计算资源,相应的成本就会直线上升,而要想节约成本,就需要以时间换取资源。在保证数据分析结果准确性的前提下,我们经过大量样本的分析摸索,取得了时间和成本上的最佳平衡。在12个小时之内完成一个人全基因组数据分析,成本做到了不足百元。数据分析的成本已开始低于数据存储的成本。
说了这么多,接下来讲讲我们都使用了阿里云的哪些服务,搭建的数据分析流程是什么。先上一张阿里云的生物基因解决方案中的数据分析平台架构图。
个人认为阿里云提供的这个解决方案架构还是很完善的,基于我们公司的现实情况,目前除了归档存储、表格存储外其他的产品都在使用中,而归档存储和表格存储也计划在今年去实施来解决遇到的一些问题中。
基因数据存储可选的服务有OSS和归档存储,基云惠康承诺为合作伙伴永久免费存储所有样本数据,阿里云对象存储1T/年收费1839.6元,存储近万个样本数据对我们创业公司来说,存储成本压力还是很大的。在16年中旬的时候,就有消息传出阿里云的OSS要推出冷存储,但至今也未见得正式商用或者内测。为缓解存储成本压力,准备将超1年未使用的样本数据转存到归档存储中,同时希望冷存储尽快发布。
基因数据分析模块有ECS和批量计算。我们使用一台ECS作为批量计算的镜像,一台ECS作为分析流程交互服务器,使用批量计算来进行数据分析。完成一个人的全基因组数据分析大概需要使用500核时的计算资源。
安全与监控模块有基础防护、安骑士和云监控,对这些服务的使用是必须的,无需多说。基云惠康对基因数据的保护除使用阿里云自身提供的安全防护外,还使用了自研的三层加密隔离防护技术。
数据库存储包括了RDS、Redis、TableStore。对基云惠康来说,使用了RDS中的mysql关系数据库来存储样本的解读报告等数据。Redis作为我司对外提供解读服务的缓存加速服务。计划使用TableStore表格存储解读后的用户突变数据。
Web服务中http服务器和负载均衡不再赘述。
说完整体架构图,接下来详细说明一下我司如何在批量计算上运行基因组数据分析业务的。
这是我司使用批量计算服务处理人基因组数据作业的有向无环图,图例中的每个节点都是流程的一个任务,每个任务又包含多个处理步骤,对应调用的资源也不尽相同。
- data_preparation,为基因组数据准备任务,包括数据完整性验证、数据质量校验等。
- split_R1和split_R2,双端测序两个fastq文件的切分job,每个切分步骤中又包括了gz文件解压、数据切分、压缩成gz格式等任务。
- QC_mapping,该任务会根据上一步切分的文件个数启用相应个数的实例,每个实例处理同一编号R1和R2两个文件,包括对文件进行BWA比对,使用samtools将得到的bam文件按照染色体输出任务,每个实例得到1-22,X,Y,M共25个bam文件。
- Mergechr_Analysis,这一步会启用25个实例,分别处理包括MT在内的25个染色体对应的bam文件,将每条染色体零散的bam文件合并成对应染色体完整的bam文件并进行dup操作,染色体数据统计和cnv的检测。
- gatk0、gatk1、gatk2、gatk3,将得到的比对后的bam文件使用GATK软件进行变异检测。检测突变的过程包括了RealignerTargetCreator、IndelRealigner、BaseRecalibrator、PrintReads、UnifiedGenotyper、VariantRecalibrator、ApplyRecalibration等过程。如果对GATK的变异检测流程感兴趣可以到GATK官网具体查询。
- Mergebam,该任务是将包括MT在内的25条染色体bam文件合并成一个完整的bam文件,并对数据进行一些统计工作以进行后续的分析。
- MarkDuplicates,去除PCR重复reads。
- SV,用来检测结构变异及注释。
- result,汇总最终得到的结果文件,这些结果包括了突变结果(snp、indel、cnv、sv等)、数据质控和统计结果、bam文件等。
整个人全基因组数据分析下来耗时12个小时左右,共使用500核时左右的资源,使用批量计算的成本控制在了两位数,比最开始直接在ECS上搭建分析流程节省了近90%的成本。
在成本节省的同时,批量计算服务使大批量的基因数据同时分析成为可能,目前已实际运行过同时提交100个全外显子组数据,在12个小时内全部分析完成。
最后打个广告,我司从成立到现在再到未来,一直都专注于人的基因组数据分析与解读。依托于阿里云,我们为合作伙伴提供一站式基因产品解决方案的标准服务、根据行业场景需求的定制服务、超4000+项的解读对接服务和基因应用开发服务。
联系电话:400-626-1023