WeGene:存储、传输、计算巧实现,基因数据上云不再难

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
对象存储 OSS,20GB 3个月
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: WeGene(微基因)是一家主打个人基因测序服务的公司,主要致力于帮助用户解读基因的奥秘,遇见未知的自己。我们现在主要的服务内容包括基于基因组数据的祖源分析、个性化的运动和减肥建议、营养基因组学、基因组医学等方面的内容。未来,我们会跟合作伙伴一起把基因组数据推向每一个被基因所影响的角落。

本文正在参加“最佳上云实践”评选,来给我们投票吧:https://yq.aliyun.com/activity/158(编号15)

WeGene(微基因)是一家主打个人基因测序服务的公司,主要致力于帮助用户解读基因的奥秘,遇见未知的自己。

我们现在主要的服务内容包括基于基因组数据的祖源分析、个性化的运动和减肥建议、营养基因组学、基因组医学等方面的内容。未来,我们会跟合作伙伴一起把基因组数据推向每一个被基因所影响的角落。

解读基因的秘密,让自己更加了解自己,这是我们的初衷,也是我们的梦想!

我们在做什么

先来简单介绍一下个人基因组的知识。除了细胞核有基因组之外,线粒体上也会存在基因组,线粒体是为细胞提供能量的,每个人的线粒体都来自母系,Y染色体会全部来自父系。这些基因数据全部测试的数据量大约为100G。但是我们通常会认为人与人之间的基因组差异会很小,如果只把人与人之间具有差异的部分挑选出来进行检测,我们的计算成本就会变得小很多。

7ff02e9a4c1e4250d8c20f3df741753cf8285350

通过基因组数据,我们可以做很多有趣的事情。比如,在东非把所有人的基因组进行计算,加上化石和遗迹的考察,我们可以知道我们的祖先最早出现的地点和时间,以及如何一步一步走到这片土地上的。下图展示了人类的迁移路线。

c7341e3f620281bdaa87d579ffb1486e29b20471

除了上述祖源的检测,我们还可以根据每个用户的基因组并且基于现在的文献和成果做更多的解读。通过很多的检测,我们发现很多与基因组有关的疾病并不单单是基因组可以决定的,基因组能决定的事情很少,但是几乎所有的所谓疾病的风险除了遗传病以外,基因都只是其中的一个影响因素。

基因组数据不仅仅能够为个人提供好处,很多基因组研究在中国人身上做的不够好,最主要的原因是数据不够。所以,我们希望通过互联网的技术和手段来推动这方面的研究,比如尼古丁的研究、基因组和睡眠关系的研究。

WeGene云端架构

下面是我们用到的阿里云服务,其中包括云服务器ECS、云存储OSS、云数据库RDS、API应用网关、批量计算等等。阿里云的“三大件”(ECS、OSS、OSS、RDS)结合负载均衡、弹性伸缩以及其他的NoSQL数据库等功能,让我们能够为用户提供健壮的网站服务——无论是在访问量低峰期,还是在批量交付检测报告给用户或市场活动推广时流量较高的情况下。

304f5a20d10f30bc81a06dbc8b52d493eba85104

除了最基本的网站服务以外,由于基因分析需要海量的计算资源,WeGene还与阿里云平台上提供生物信息PAAS服务的北京聚道有限公司(GeneDock)进行了合作,在他们提供的计算平台上运行用户基因数据的分析。

a8d67c36d9c5a40fc3cf836d6ace3f42c08acfcd

具体来讲,用户的生物样本在实验室进行实验以后,所产生的实验数据会直接被上传进入OSS中,并根据不同的计算任务需求被分配到WeGene在ECS上自建的计算服务器、GeneDock、批量计算等在内的计算环境中去进行分析。分析的结果会通过统一管理的API网关服务录入数据库,并最终在阿里云上呈现给全球的用户。在这一过程中,阿里云实际帮助我们简化了数据存储、传输、计算方面的问题,具体情况如下:

1. 数据存储

  • RDS:主要用于存储预处理后的基因组数据、表型数据、网站数据,以存储计算完成的结果数据为主
  • OSS:用于存储基因组原始数据和大型的计算结果(比如全基因组测序数据,每位用户会产生约200GB了;芯片测序数据,每位用户会产生约 200 MB 数据)
  •  GeneDock:存储正在处理中的全基因组数据和芯片数据
  • 阿里云MongoDB:用于存储一些数据格式多变的第三方表型数据等
  • 本地存储及OAS:数据冷备

2. 数据传输

  • 生命科学所有的数据都是在测序中心、实验室中产生的,怎么把这些数据传输到云上是一个比较麻烦的事情。在上云的过程中,我们主要会使用三种方式:
  • 芯片数据:数据量比较小,实验室用OSS客户端上传OSS
  • 全基因组数据:数据量比较大,需通过GeneDock的专线上传GeneDock的系统(位于OSS上)。也有一些专门的压缩和传输算法,尽可能利用数据的带宽,同时实时压缩和解压
  • 海外用户基因组数据: 通过其他厂商提供的API直接获取并存储到RDS中

3. 计算

  • ECS:在ECS上,我们利用一些计算资源调度自建了一些计算节点,用于处理常规的、计算资源相对较小但数量较多的分析任务,并会提供一些小规模实时计算服务,通过API网关进行管理和调用
  • GeneDock:用于并行处理计算资源要求较高的batch任务以及全基因组数据分析
  • 批量计算:类似GeneDock的使用

未来的挑战

尽管云计算为基因分析工作提供了诸多便利,但是未来还将面临下面这几项大的挑战。

1. 基因组数据的二次分析

当我们为每一个人提供基因组数据分析的时候,我们只是根据已有的科研结果去一个一个的分析基因组数据。当积累了足够多的数据之后,希望能够从数据中发现新的东西。这一过程同样需要海量的计算资源作为支撑——最终我们希望每获取一份新的基因组数据时,我们都能够更新现有的知识库——这对流式计算、机器学习的要求非常之高。

2. 全基因组数据存储、分析和可视化

为了能够更好的查询、分析和可视化基因组数据数据,我们需要一个高效的数据存储和查询系统。“Genomics API”设想对全基因组数据实时查询提供统一的接口服务,但大规模的基因组数据暂时还不能存储在关系型(甚至是非关系型)数据库中 ——在这样的情况下,如何能够快速查询某个基因组上的一小个片段便是一个重大挑战。

3. 全基因组测序的计算问题

在基因组测序的过程中,每一份基因组首先都会被断裂成数十万个片段并检测,再被拼接起来成为完整的基因组数据。由于这一过程是NP问题,我们无法直接通过算法进行拼接,而需要根据参考基因组数据进行比对拼接。因此,我们希望在整个过程中,引入更好的算法(如基于FPGA的算法)、或使用更多的参考数据进行比对(会带来更高的计算资源要求),这都对在云上进行大规模数据的生产提出了问题。

希望随着云计算与大数据技术的发展,这些问题都不将再是问题。

 

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
6月前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用问题之dts是否支持传输数据到mc主键表2.0
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
SQL 数据采集 分布式计算
大数据数据采集的数据迁移(同步/传输)的Sqoop之基本命令和使用的导入/导出数据
在大数据领域,数据迁移(同步/传输)也是非常重要的一环。Sqoop作为一个开源的数据迁移工具,可以帮助我们轻松地实现关系型数据库与Hadoop之间的数据迁移。本文将会对Sqoop的基本命令和使用进行详细介绍。
401 1
|
SQL 分布式计算 Oracle
大数据数据采集的数据迁移(同步/传输)的Sqoop之概念
在大数据领域,数据迁移(同步/传输)也是非常重要的一环。Sqoop作为一个开源的数据迁移工具,可以帮助我们轻松地实现关系型数据库与Hadoop之间的数据迁移。本文将会对Sqoop进行详细介绍。
594 1
|
数据采集 关系型数据库 MySQL
大数据数据采集的数据迁移(同步/传输)的Sqoop之DataX
在大数据领域中,数据迁移是一个非常重要的任务。而Sqoop是一款流行且实用的数据迁移工具,但是它对于某些特定场景的数据迁移并不太方便。为了解决这个问题,阿里巴巴集团开发了一款开源的数据集成工具DataX,提供了更多的数据迁移方式和功能。本文将介绍DataX的基本原理和使用方法,希望能够为大家提供一些参考和帮助。
498 0
|
存储 数据采集 分布式计算
大数据数据采集的数据迁移(同步/传输)的Sqoop之数据传输实战
在大数据领域,数据迁移(同步/传输)也是非常重要的一环。Sqoop作为一个开源的数据迁移工具,可以帮助我们轻松地实现关系型数据库与Hadoop之间的数据迁移。本文将介绍如何使用Sqoop进行数据传输实战。
697 0
|
存储 数据采集 SQL
大数据数据采集的数据迁移(同步/传输)的Sqoop之基本命令和使用的job作业
在大数据领域中,Sqoop是一款非常流行的数据迁移工具。它可以将关系型数据库中的数据快速地移动到Hadoop生态系统中,方便我们进行更深入的分析和处理。本文将介绍Sqoop的基本命令及如何使用Sqoop来创建和运行job作业,希望能够为大家提供一些参考和帮助。
179 0
|
SQL 数据采集 分布式计算
大数据数据采集的数据迁移(同步/传输)的Sqoop之基本命令和使用的help
在大数据领域,数据迁移(同步/传输)也是非常重要的一环。Sqoop作为一个开源的数据迁移工具,可以帮助我们轻松地实现关系型数据库与Hadoop之间的数据迁移。本文将会对Sqoop的基本命令和使用进行详细介绍。
301 0
|
数据采集 分布式计算 关系型数据库
大数据数据采集的数据迁移(同步/传输)的Sqoop之下载和配置安装
在大数据领域中,Sqoop是一款非常流行的数据迁移工具。它可以将关系型数据库中的数据快速移动到Hadoop生态系统中,方便我们进行更深入的分析和处理。本文将介绍如何下载和配置安装Sqoop,希望能够为大家提供一些帮助。
233 0
|
数据采集 SQL 分布式计算
大数据数据采集的数据迁移(同步/传输)的Sqoop之基本命令和使用的查询库/表
在大数据领域中,Sqoop是一款非常流行的数据迁移工具。它可以将关系型数据库中的数据快速地移动到Hadoop生态系统中,方便我们进行更深入的分析和处理。本文将介绍Sqoop的基本命令及如何使用Sqoop来查询库表,希望能够为大家提供一些参考和帮助。
190 0