阿里云MaxCompute携手华大基因打造精准医疗应用云平台,十万基因组计算成本降低至1000美金以内

简介: 华大基因是中国最领先的基因科技公司,华大基因为消除人类病痛、经济危机、国家灾难、濒危动物保护、缩小贫富差距等方面提供分子遗传层面的技术支持。让我们结合maxcompute的技术特点,看看如何助力华大基因。


关于华大基因

     华大基因是中国最领先的基因科技公司,华大基因为消除人类病痛、经济危机、国家灾难、濒危动物保护、缩小贫富差距等方面提供分子遗传层面的技术支持。目前,世界上只有两个国家的三个公司可以生产、量产临床级别的基因测序仪,华大基因是中国的唯一一家。我们在基因的产权研发方面从1999年开始做了很多的工作。在2014年,我们与阿里云有了初步的接触,在2015年上线了我国第一个基因云计算平台。

     华大基因股份公司总监金鑫介绍了华大基因,并浅谈了与阿里云的情缘,包括Maxcompute等方面应用案例。2016 杭州云栖大会首日,来自华大基因的基因组学数据专家黄树嘉在大数据专场分享了《基于数加 MaxCompute 的极速全基因组数据分析》


挑战

     我们与阿里云合作是因为我们看到基因技术从过去的只在实验室中逐渐进入到广大群众的生活场景当中,不管是在医学健康方面、生殖健康方面、肿瘤防治方面、病原感染方面还是农业育种,以及与每个人息息相关的健康管理,基因技术已经取得越来越多的应用场景,在国产基因测序仪的助力之下,基因数据产生的体量也越来越庞大,远远的超出了原有的计算能力所能支持的范围。

    遗传信息是生物体,包括人类的根本组成部分,由一系列DNA碱基对组成的字符串储存在我们的染色体中。具体来说,人类有23对染色体,总共包含约30亿对这样的碱基。这个庞大的数字不仅令解析工作复杂,成本高昂,更无法接受的问题是分析时间过长目前测序仪每一次测序的数据产量是 1.5TB,数十亿的记录数(大约为 150 人的数据量)。用传统的 HPC 集群进行分析的话,基本需要3天的时间来分析一个人的数据,而单个节点的话则需要 5.8 天的时间。由此可以看出,数据解读的效率远远跟不上数据的产出速度。

a4.jpg


基于 MaxCompute 的方案

    如何及时把这么多的数据解析出来,是当前的最大挑战。我们的解决方案主要基于maxcompute的两个能力:

    a)稳定的分布式执行能力 b)海量数据极速查询能力。

   利用MaxCompute的分布式能力

    华大重新构建实现了基因的处理分析的流程:1) 对每个样本计算 gvcf 2) 合并所有 gvcf 到一张表 3) 群体 call variant 得到 vcf 表 4) 合并 vcf、

    1)对每个样本 单独计算 gvcf: 主要功能是基于maxcompute分布式能力配合bwa完成分片数据的位点比对,并根据位点数据 shuffle 给对应的 reducer,并处理得到最终gcvf.

a1.jpg

    2)合并所有 gVCF 到一张表: 在这一步,通过maxcompute sql union将来自不同样本的大量基因组VCF(gVCF)文件合并到一张表中。gVCF文件包含了样本的变异信息以及参考基因组序列与样本序列完全匹配的非变异区域。合并不同样本的gVCF文件有助于统一进行后续分析步骤,实现高效的多样本变异检测。

    a2.jpg

    3)群体变异检测得到VCF表: 使用上一步得到的合并表,通过maxcompute mapper结合gatk genotype分析所有样本,确定哪些位置在群体中变异,并生成一个单一的VCF文件。这个VCF文件包含了整个群体中所有样本的变异情况,这些变异包括SNPs、Indels等。该步骤不仅检测到个别样本的变异,还可以发现那些在群体中共享的变异。

    a3.jpg

    4)合并VCF: 再次通过maxcompute sql union将多阶段变异检测或使用不同策略处理的不同的样本组产生的多个VCF文件合并成一个,以完成关于整个群体变异的统一视图。这个过程会使用maxcompute的reduce结合GATK 的 CombineVariants来merge VCF


    5)后续要做的过滤分析:合并VCF文件后,通常需要对数据进行过滤、注释、分析。以及最后对变异数据进行生物学解读,这涉及了解变异是如何影响个体的表型、如对特定疾病的易感性、药物反应性等。


   利用MaxCompute的海量查询能力

在生物信息学和计算生物学领域,海量数据的查询分析比对是个常见挑战,尤其是在基因组测序、蛋白质组学和其他高通量技术中。如1)识别个体或群体中的基因组变异至关重要,这涉及在海量基因数据中,聚类对比找出某几个字段突变的记录 2)借助于公共数据库(如NCBI的dbSNP)查询特定遗传标记的基因信息,以探究其与疾病或表型的相关性,这类似于在大数据量的宽表中,高效查询出指定几列为特定值的记录。

      故基因数据的解析时间和成本,在很大程度上和基于海量数据的对比查询性能有关。

      但在传统HPC或hadoop-hive集群里,查询一个目标约每天产生500亿条的表,压缩后逻辑大小在4.7T 左右。 那么3个月的数据则大概在432T,按256M一个split算, 查询约要169万的slot实例,一个500台的集群约提供5万slot,则满负荷需要跑33轮。占用了大量计算资源和时间。

      MaxCompute提供了,数据基于某些列hashcluster聚合或者zorder聚合能力,再按需计算出每个物理文件指定列的BloomFilter作为海量数据的多列索引文件(BloomFilter文件大小相对于原数据文件大小,几乎可以忽略不计,所以遍历查询BloomFilter非常快)。 相当于数据基于某些列的hashcluster或zorder聚合后,不仅能快速查询指定列(hash,zorder聚合列),还能得到指定bloomfilter的列查询性能收益。 尤其是hash或zorder列 和bloomfilter列有很强的业务相关性时:

      b3.jpg

      如指定user表的userid,作为hashcluster聚合,再指定user的电话号,和 门牌地址码(以上数据均为测试模拟数据) 作为BloomFilter建。 在500亿级别的数据中,指定user 的电话号,或者 按地址查询user,都能秒级返回结果。 因为通过userid hash聚合已经将user按相同userid打散存放在对应hash分桶的物理文件中。

      此时通过电话号查询,电话号和user基本是N对1关系(通常N比较小,一个人拥有2,3个电话号),通过电话号的bloomfilter文件过滤出来的真实表物理文件也只有1个(对应userid所在的hash分桶的文件),故查询非常快。

      此时通过门牌地址查询,门牌地址和user基本是1对N(且通常N<10,一个地址被几个家庭成员所共享),所以maxcompute最多会启动N个slot去查询,对于maxcompute这样的分布式系统,并发查10个文件是非常快,且占用资源量非常低的。

      同样场景如果不做hash聚合或者bloomfilter, 会有两个大劣势:

          1)查询电话号码或地址,要去500亿记录的每个物理文件中查询,据上文陈述,这里需要启动169万个slot。相比上面例子的1个 和 N个。差了很多个数据量级

          2)如果只做hash聚合不做bloomfilter,那除hash列其他列无查询收益。依然会启动169万个slot。


      测试:  模拟单分区60E条 ,针对local_num,id_card, add_num 3列的组合查询 ,每条数据15列包含前3列,大小在0.4k左右,总大小3T。

      local号码(电话)、id_card(userid) 组合成zorder聚合 ; local_num(电话),id_card(userid), add_num(地址)3列分别都设置成BloomFilter

      测试如下查询query(测试数据均为模拟数据)

Q1: select * from test_final where local_num='13000002444’;

Q2: select * from test_final where add_num='13000002915’;

Q3: select * from test_final where id_card='130000024443141592’;

Q4: select * from test_final where local_num='13000002444' and add_num='13000002915’;

Q5: select * from test_final where local_num='13000002444' and add_num='13000002915' and id_card='130000024443141592';

      能看到其查询性能差异显著甚至是2个数量级的

b2.jpg


客户收益

     每个人的基因数据为暂读取100G,传统计算方式处理需要三到五天,使用Maxcompute稳定的分布式和海量查询加速能力,可以提到到一小时内完成甚至多人的基因分析,大大加速了数据吞吐速度和交付速度。另外,在对百万人的基因数据进行遗传结构分析时,需要把每一个人与剩余的所有人进行遗传距离计算,对比,这个计算量是巨大的,计算复杂度已经远远超出了传统计算条件下硬件设备所能承受的能力范围,通过使用Maxcompute,我们已经在这方面取得了技术突破,其中,我们在几小时内就可以把一个人与十万人中所有遗传距离进行计算对比,计算成本大幅降低至1000美金以内,这样的例子我们还在不断的开发中,相信Maxcompute也会给我们带来更多的惊喜。



鸣谢: 最后感谢项目负责人,Maxcompute研发专家陆东,海虾 提供的材料和项目经验分享。



相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
4天前
|
存储 弹性计算 监控
【阿里云云原生专栏】成本优化策略:在阿里云云原生平台上实现资源高效利用
【5月更文挑战第29天】本文探讨了在阿里云云原生平台上实现资源高效利用和成本优化的策略。通过资源监控与评估,利用CloudMonitor和Prometheus等工具分析CPU、内存等使用情况,识别浪费。实施弹性伸缩策略,利用自动伸缩规则根据业务负载动态调整资源。借助容器化管理和Kubernetes编排提高资源利用率,优化存储选择如OSS、NAS,以及网络配置如VPC和CDN。示例展示了如何使用Kubernetes的HorizontalPodAutoscaler进行弹性伸缩,降低成本。
25 4
阿里云web应用
设备端将图片编码为base64发送至物联网平台,在web界面配置图片选择物联网平台配置的数据(base64),实现设备向云平台的图片的上传,以及在web界面上显示图片。
|
5天前
|
SQL 分布式计算 监控
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
本文演示了使用 EMR Serverless Spark 产品搭建一个日志分析应用的全流程,包括数据开发和生产调度以及交互式查询等场景。
127 1
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
5天前
|
弹性计算 Kubernetes 监控
【阿里云弹性计算】阿里云 ECS 与 Kubernetes 集成:轻松管理容器化应用
【5月更文挑战第28天】阿里云ECS与Kubernetes集成,打造强大容器管理平台,简化应用部署,实现弹性扩展和高效资源管理。通过Kubernetes声明式配置在ECS上快速部署,适用于微服务和大规模Web应用。结合监控服务确保安全与性能,未来将深化集成,满足更多业务需求,引领容器化应用管理新趋势。
20 2
|
5天前
|
供应链 Cloud Native 安全
【阿里云云原生专栏】云原生与区块链的交响曲:阿里云 BaaS 平台的应用展望
【5月更文挑战第28天】阿里云BaaS平台融合云原生与区块链技术,提供一站式便捷、高性能且安全的区块链服务。在供应链和金融等领域应用广泛,如智能合约示例所示,助力数字化转型。未来,两者融合将深化,创造更多应用模式。企业和开发者应把握机遇,借助阿里云BaaS平台开创未来。
154 1
|
9月前
|
机器学习/深度学习 Kubernetes Cloud Native
SAP 云平台 (Cloud Platform) 架构概述
SAP 云平台 (Cloud Platform) 架构概述
188 1
|
9月前
|
移动开发 IDE Java
SAP 云平台从 Neo 到 Multi-Cloud 的演化历史
SAP 云平台从 Neo 到 Multi-Cloud 的演化历史
164 0
|
9月前
|
数据中心
什么是 SAP 云平台的 multi-cloud architecture
什么是 SAP 云平台的 multi-cloud architecture
63 1
|
9月前
|
机器学习/深度学习 JavaScript 前端开发
SAP 云平台 ABAP 编程环境的前世今生
SAP 云平台 ABAP 编程环境的前世今生
69 0
|
9月前
|
JavaScript Java Apache
SAP 云平台多目标应用 Multi-Target Application 的开发技术介绍
SAP 云平台多目标应用 Multi-Target Application 的开发技术介绍
138 0