阿里云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;
目录
相关文章
|
2天前
|
存储 分布式计算 大数据
数据仓库与数据湖在大数据架构中的角色与应用
在大数据时代,数据仓库和数据湖分别以结构化数据管理和原始数据存储见长,共同助力企业数据分析。数据仓库通过ETL处理支持OLAP查询,适用于历史分析、BI报表和预测分析;而数据湖则存储多样化的原始数据,便于数据探索和实验。随着技术发展,湖仓一体成为趋势,融合两者的优点,如Delta Lake和Hudi,实现数据全生命周期管理。企业应根据自身需求选择合适的数据架构,以释放数据潜力。【6月更文挑战第12天】
18 5
|
3天前
|
分布式计算 大数据 数据处理
Apache Spark在大数据处理中的应用
Apache Spark是大数据处理的热门工具,由AMPLab开发并捐赠给Apache软件基金会。它以内存计算和优化的执行引擎著称,提供比Hadoop更快的处理速度,支持批处理、交互式查询、流处理和机器学习。Spark架构包括Driver、Master、Worker Node和Executor,核心组件有RDD、DataFrame、Dataset、Spark SQL、Spark Streaming、MLlib和GraphX。文章通过代码示例展示了Spark在批处理、交互式查询和实时数据处理中的应用,并讨论了其优势(高性能、易用性、通用性和集成性)和挑战。【6月更文挑战第11天】
25 6
|
6天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
|
13天前
|
分布式计算 Spark 大数据
深入探究Apache Spark在大数据处理中的实践应用
【6月更文挑战第2天】Apache Spark是流行的开源大数据处理框架,以其内存计算速度和低延迟脱颖而出。本文涵盖Spark概述、核心组件(包括Spark Core、SQL、Streaming和MLlib)及其在数据预处理、批处理分析、交互式查询、实时处理和机器学习中的应用。通过理解Spark内部机制和实践应用,可提升大数据处理效率,发挥其在各行业的潜力。
|
18天前
|
存储 运维 监控
探索云原生技术在大数据分析领域的应用
传统的大数据分析往往需要庞大的硬件设施和复杂的维护工作,给企业带来了昂贵的成本和管理难题。而随着云原生技术的发展,越来越多的企业开始将大数据分析迁移到云平台上,以享受弹性、灵活性和低成本的优势。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势和挑战,并展望未来的发展方向。
22 0
|
21天前
|
存储 分布式计算 DataWorks
【阿里云云原生专栏】云原生下的数据湖建设:阿里云MaxCompute与DataWorks解决方案
【5月更文挑战第26天】在数字化时代,数据成为企业创新的关键。阿里云MaxCompute和DataWorks提供了一种构建高效、可扩展数据湖的解决方案。数据湖允许存储和分析大量多格式数据,具备高灵活性和扩展性。MaxCompute是PB级数据仓库服务,擅长结构化数据处理;DataWorks则是一站式大数据协同平台,支持数据集成、ETL和治理。通过DataWorks收集数据,MaxCompute存储和处理,企业可以实现高效的数据分析和挖掘,从而提升业务洞察和竞争力。
379 0
|
22天前
|
关系型数据库 分布式数据库 数据处理
【PolarDB 开源】PolarDB 在大数据分析中的应用:海量数据处理方案
【5月更文挑战第25天】PolarDB是解决大数据挑战的关键技术,以其高性能和可扩展性处理大规模数据。通过与数据采集和分析工具集成,构建高效数据生态系统。示例代码显示了PolarDB如何用于查询海量数据。优化策略包括数据分区、索引、压缩和分布式部署,广泛应用于电商、金融等领域,助力企业进行精准分析和决策。随着大数据技术进步,PolarDB将继续发挥关键作用,创造更多价值。
55 0
|
24天前
|
存储 安全 大数据
蚂蚁数科MAPPIC密态计算云平台入驻阿里云计算巢,打造云上密态计算服务
蚂蚁数科MAPPIC密态计算云平台入驻阿里云计算巢,打造云上密态计算服务
|
18天前
|
存储 固态存储 安全
阿里云4核CPU云服务器价格参考,最新收费标准和活动价格
阿里云4核CPU云服务器多少钱?阿里云服务器核数是指虚拟出来的CPU处理器的核心数量,准确来讲应该是vCPU。CPU核心数的大小代表了云服务器的运算能力,CPU越高,云服务器的性能越好。阿里云服务器1核CPU就是一个超线程,2核CPU2个超线程,4核CPU4个超线程,这样云服务器可以同时处理多个任务,计算性能更强。如果网站流程较小,少量图片展示的企业网站,建议选择2核及以上CPU;如果网站流量较大,动态页面比较多,有视频等,建议选择4核、8核以上CPU。
阿里云4核CPU云服务器价格参考,最新收费标准和活动价格

热门文章

最新文章