近日腾讯云国内首发二代基因测序FPGA加速方案,将人类全基因组数据分析从业内平均水平的30小时降低到了不到3小时,在业内引起不小反响,也吹响了腾讯云进军基因计算行业的号角[1]。这其中的核心技术就来自于架构平台部的腾讯计算服务(TCS:Tencent Computing Service)和腾讯云相关团队紧密合作,针对基因计算这一行业进行深度垂直化定制,以IT赋能BT(BioTechnology),帮助基因企业享受IT技术进步带来的便利和效率提升。

基因听起来很神秘,但其实早就已经在很多领域得到了广泛的应用,已经越来越和我们的生活密不可分。比如现在很多孕期妈妈会做的无创产前检测(NIPT),就是基因技术应用于我们生活中的一个例子。农业上,科学家需要测定不同物种的DNA序列,找出影响性状的关键基因,并尝试让它们朝着对人类有益的方向变化,比如大家耳熟能详的转基因作物;医疗上,医生们需要测定癌症肿瘤患者的基因,找准对该患者有效的靶向药物,才能有的放矢达到疗效;遗传学上,通过测定不同物种的DNA序列,可以确定地梳理清楚物种起源关系。

基因测序技术当前以二代测序为主流,三代测序也在蓬勃发展之中。其特点是数据量大、计算量大。数据量大表现在一个人的全基因组测序数据就高达几百G,同时对这些数据需要进行大量的计算才能找出我们想要的信息。以人的全基因组测序数据分析为例,二代测序当前普遍需要的计算力达到~500核时,而三代测序需要的计算力更是高达数万核时。

因为基因测序对数据存储和计算的庞大需求,而且业务存在淡旺季周期,它天然适合云计算的模式。架构平台部的腾讯计算服务TCS采用弹性计算平台提供动态资源,通过自研极光硬件加速和基因行业垂直定制化方案,进一步加速基因计算效率,赋能基因行业发展。

弹性计算平台---动态伸缩调度资源

TCS弹性计算平台,依托部门和公司内的大量空闲资源,以docker技术进行资源的调度,对外提供弹性可伸缩的算力资源。已经支撑了QQ/微信的图片/视频压缩转码、离线计算和AI计算等,为各业务提供了百万核的算力。

在基因计算的场景中,基因公司通常会购置一批高性能的CPU服务器,用行业内流行的网格计算系统(SGE)组建成集群,搭配以共享文件存储系统,就可以开始进行数据分析计算。但是由于业务本身存在淡旺季周期,机器买多了有可能浪费,买少了在业务增长时又会制约自身发展。

这种情况下,基因公司需要的是能够按需使用的资源,需要的时候可以及时拿到大量算力,不需要的时候立刻释放不再付出成本。弹性计算平台通过复用空闲资源来低成本地提供大量算力,同时集成了负载均衡、名字化服务等功能,让算力供应变得稳定、可靠。面对基因计算中动辄成百上千的计算核时请求,弹性计算平台都能够从容应对。

自研极光技术---硬件异构加速

相比于CPU/GPU,FPGA的一大特点是其软硬件一体化的定制能力,可以达到很高的计算能力。基于FPGA的自研极光加速技术已经被架构平台部应用于AI图像识别、图片webp/hevc格式压缩等大规模的业务场景,原来需要数千台服务器的集群,现在只需要100多台FPGA服务器,显著节约了成本。

以二代基因数据分析的金标准BWA+GATK流程为例,我们分析发现在前半段的比对、去重、排序等步骤都可以用多线程运行,而最后的GATK变异召回只能单线程运行,这是受限于开源软件的实现。

针对于此,我们学习了变异召回的原理,请教了行业内的一些专家,通过拆分染色体的方式让GATK变异召回这一步实现了分片段的并行化。让业内标准的30x的NA12878样本,分析时间从通常的30小时缩减到了10小时。

接着使用FPGA对计算密集的BWA中的smith waterman算法和GATK中的PairHMM算法进行硬件实现和加速,让时间进一步从10小时缩短到2.8小时。

基因行业垂直定制

一个基因数据分析流程涉及很多步骤,往往用到了几十种不同的软件,每个软件消耗的算力资源和存储IO都不同。因为行业传统沿袭,基因公司往往追求堆砌硬件,达到很高的理论计算能力和很大的理论IO吞吐。但是实际的运营中,因为传统调度机制的不尽完善,导致集群常常是低负载状态,集群CPU利用率一般只能达到20%。

针对于此,我们对业内较为标准化的一些数据分析流程进行深入的研究分析,通过更优的分布式调度、针对性的软硬件加速优化,在节约成本的同时缩短整个流程的耗时,提升效率。

比如对于三代测序的falcon运算,典型的是在一个集群环境中进行。原生的调度往往不均衡,有的节点分配到更多任务,有的节点分配到的任务耗时明显更长,最终都导致整体作业耗时很长。

以一个小样本为例,我们使用一个昆虫样本在一个小集群上运行花了10个小时。观察发现Daligner这一步骤调度非常不均衡,有的节点分到了12个任务,而且其中有3个任务的输入数据达到100M。有的节点只有3个任务,而且任务的输入数据只有40M左右。同时我们发现这一步骤的计算量与输入文件体积呈正相关。

因此我们优化了这一步的调度,让每个节点分配到的计算量尽可能平均,并且弹性申请更多资源,将耗时从10小时减到了3.6小时。

总结与展望

基因测序是一个朝阳产业,随着国家精准医疗计划的普及推进,将越来越深刻地影响普通人的生活。我们希望能够以TCS腾讯计算服务为载体,通过腾讯云上的相关产品来为基因公司提供大规模的可靠的弹性计算资源;挖掘基因公司在IT上的痛点,以深度定制研发来加以解决。真正做到以技术赋能行业,帮助基因企业更专注于业务本身的发展,获得更大的成长。

[1]国内首个二代基因测序FPGA加速方案落地腾讯云,人类全基因组分析从30小时到2.8小时http://mp.weixin.qq.com/s/Bm5nHlPQjbH0iru3m8S-Ag

本文转自“腾讯架构师”公众号

文章来源于腾讯云开发者社区,点击查看原文