构建基因数据应用生态系统:Docker在基因数据的应用实践

简介: 在2016云栖大会杭州峰会容器技术专场上,华大基因互联网产品总监黄泽辉分享了docker技术在基因组学应用标准化过程中发挥的作用,并且与大家分享了未来建设基因数据应用的“APP Store”的构想。

以下内容根据演讲PPT以及现场分享整理而成。


容器技术在各个行业有很广泛的应用,今天分享是docker技术在基因数据方面的应用以及如何建设基因数据应用的“APP Store”。


一、基因组学数据与分析应用
我们都知道人有23对染色体,上面包含了人的基因组信息,这些信息决定了一个人的身高体重、头发的颜色以及一些可能会患有的疾病的风险信息。一个有意思的小常识是人类的基因和老鼠的基因有85%的相似度,与猫的基因相似度达到了90%,和人类的近亲大猩猩的基因相似度则高达96%,而人与人之间在基因组信息上的差别只有0.1个百分点,但是这0.1%却决定了不同的个体。

为什么靠这0.1%的不同基因信息就能够决定人与人之间的差别呢?其实在基因学上有这样的一个中心法则:DNA转录成为RNA,RNA翻译成蛋白质,蛋白质就决定了性状。这就是基因学上最核心的中心法则,在这个过程中产生的数据有哪些呢?依靠目前先进的测序技术基因组信息可以被序列化成为数据信息,其次还有基因在不同时空中表达的RNA信息,其编码的蛋白还有结构信息,并且蛋白质之间的相互作用决定了性状信息,这些就构成了基因组学的数据。

dd180111c3865b09b558f3b0e9dfaacd2723da03

当然,人的性状不单单由基因组信息决定,环境以及生活方式也会产生很大影响。目前华大基因正在利用基因测序技术解决人类生老病死的问题,我们希望能从基因组学的层面上结合外部环境和人体内环境进行精准医学的生活指导,在生活的各方面给出相应的医学指导。

8923d8d275101f64b241225811fb9bd1b5fdc562

基因组学其实是数据密集型的科学,需要大数据计算的支持。在基因测序方面,大家都知道当年人类基因组计划花费了十几亿才能够将测序工作完成,但是今天在美国,每个人只需要一千美元就可以获得自己的基因组信息,基因测序的价格将会越来越便宜,其价格的下降速度会超过摩尔定律。从整个基因产业的价值链来讲,未来的技术瓶颈和价值所在都是基因的数据分析。学计算机的都知道,对于计算而言,需要有一些input和相应的output,这其中的计算需要是软件或者算法。但即便是能获取到再好的数据,使用一个糟糕的软件或者算法流程的话,也只能获得一些垃圾数据,并不能解决实际的问题。

真正的基因组学应用如果以能够解决之前提到的问题,其实是非常复杂的,因为需要很多的数据输入和操作步骤才能达到最终想要的结果,而这就是一个比较重要的问题,未来生物信息学工具和方法的创新必将带来产业革命。

一般认为基因测序信息的有效期是5到10年,而从现在往后的5年,基因序列并不会发生什么重大的变化,变化的只可能是基因测序技术的成本。对于这些测出的基因组信息,有什么利用价值呢?其实取决于对于基因组信息进行的创新,如果说现在的软件开发者能够通过基因测序信息判断一个人有没有携带癌症的潜在基因的话,就可以做到早期的癌症筛查。


二、存在的问题与挑战
下图是基因信息分析工具,可以看出目前基因信息分析工具有很多。

f23f1f9de276642ee8525ec4064f2e22784d6a4e

下图是基因测序圈比较有名的论坛的统计,可以看出在基因分析中使用的语言很多,涉及的操作系统也是种类繁多。目前来讲,基因测序的工作流可以运行在个人电脑中也可以运行在计算性能高的工作站中,或者更大的计算集群,乃至于像阿里云这样的云端。

4222dfdea9164947b63a9fe60f697a3332e8119f

为了使基因测序以及基因分析的工作流能运行在各种架构上,需要让基因组学应用满足可移植性、可扩展性和可重复性的要求。为了满足这些的需求,华大基因也正在探索如何利用docker技术去将基因组学应用标准化。


三、docker与应用标准化
下图是docker的应用案例,其依赖于两个特性就是应用的隔离和对于配置的简化。

7a72c18dfcd8518fd897246fb1911eaa5996cdad

具体而言如何去使用docker技术对于基因组学应用进行标准化呢?
1.使用预配置docker镜像提供运行时环境
docker相比VM更加轻量化,更简单易用,而且性能稳定,不涉及到编译程序和配置环境,而且它不区分开发语言和操作系统,便于使用胶水语言将各部分程序粘合到一起,对于生物专业的同学更容易使用,还可以进行版本化控制。


2.统一的CLI(执行)描述语言
对于很多生物专业的同学而言,不见得具有很强的IT技术方面的知识,并且对于应用而言,也不应使用差异化的命令行去进行操作,需要提供对于命令行的统一封装,所以需要docker提供命令的包装工具,这样也便于文件的标准化,同时对执行引擎也更加友好。

生物信息领域的同学更加熟悉Linux,但是也要让应用尽量兼容POSIX标准。而且在基因组应用构建过程中会需要对数据进行比对,来寻找变异,需要连接到引用数据进行分析,而生物学中有一些数据量很大的参考数据库,不能包含在docker中,所以需要link-data的形式。


3.统一流程(DAG)描述语言
DAG其实就是有向无环图,在生物信息领域上的应用就是进行生物信息分析。所以要想支持生物基因组应用,就需要支持DAG。对于DAG而言,需要使用工具或者子流程构建并定义任务依赖关系,而且需要根据动态数据生成作业。


4.提供完整的工具链(support tooling)
基因组应用需要提供完整的工具链,也就是需要不花费太大的学习成本来使用工具开发以及在本地进行调试,并且支持快速地在HPC或者云端进行部署。


5.统一的分发方式
应用需要dockerfile透明化地完成版本控制和自动构建,并且需要dockerRegistry进行版本仓库和软件分发。对于用户来说,只需要将软件下载到本地就可以直接应用了。

所以大家目前在努力的方向就是标准化。Global Alliance提出对于一个基因组应用而言,需要一个镜像,这也是目前docker所做的,还有对于如何使用这个镜像的描述,以及如何编译并且获得这个镜像的描述文档。


四、如何构构建基因“APP Store”
华大基因与阿里巴巴同一年成立,目前在生物信息方面有了大量的积累,我们希望能够将信息提供给客户,应该如何实现呢?其实对于基因组学而言,创建一个“APP Store”,让用户可以直接使用类似于SaaS这样的服务,这是非常有价值的。做到这样的,其实也能帮助基因组学测序技术的发展。

对于生物信息软件而言,可以说是来源众多,形式多样。我们希望能构建这样原型:开发者通过撰写dockerfile并且提交到构建系统中去,系统自动构建docker镜像,最终提交到APP Store里面去,用户可以自由浏览APP Store中的软件并且下载和应用,并且这样的软件都能够提供JSON格式的接口文件,用户直接将数据输入到文件中就可以获取经过工作流处理的数据,这样用户就可以只关注数据本身,而不必关心软件系统的搭建和计算过程。

36dcd99880901fb2c7f7b1f1e5ab4615a02ad701

如果将APP Store的模型实现的话,对开发者而言,生物信息领域应用的构建和分享将会容易很多。

对于生物信息领域的人,容易写出标准dockerfile文档。那么如何降低他们的学习成本呢?其实有很多在线开发工具可以使用,预先配置好工具模板以及文件结构,开发者只需要在一些地方实现自己的算法,最终整个应用就可以自动打包成为标准的形式。

f46b1abe8b786ba66bcdb2828468ee7d9fbb5026

另外就是可视化流程编辑器,用户可以通过简单的拖拽形式构建工作流程。

71f94ad3bc48483a2936efe61008513b38facf5b



相关文章
|
28天前
|
运维 Kubernetes Docker
利用Docker和Kubernetes构建微服务架构
利用Docker和Kubernetes构建微服务架构
|
11天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
31 3
|
28天前
|
关系型数据库 数据管理 应用服务中间件
【赵渝强老师】Docker的数据持久化
在生产环境中使用Docker时,为了实现数据的持久化和共享,可以通过数据卷(Data Volumes)和数据卷容器(Data Volume Containers)两种方式来管理数据。数据卷是一个独立于容器的挂载目录,可以跨多个容器共享和重用。数据卷容器则是一种特殊容器,用于维护数据卷,便于数据迁移和共享。本文通过示例详细介绍了这两种方法的使用步骤。
|
1月前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
28 2
|
28天前
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
|
28天前
|
缓存 JavaScript 安全
深入理解Docker镜像构建过程
深入理解Docker镜像构建过程
64 0
|
存储 分布式计算 Hadoop
基于docker的Hadoop环境搭建与应用实践(脚本部署)
本文介绍了Hadoop环境的搭建与应用实践。对Hadoop的概念和原理进行了简要说明,包括HDFS分布式文件系统和MapReduce计算模型等,主要通过脚本的方式进行快捷部署,在部署完成后对HDFS和mapreduce进行了测试,确保其功能正常。
|
2月前
|
运维 监控 Cloud Native
深入了解容器化技术:Docker 的应用与实践
【10月更文挑战第6天】深入了解容器化技术:Docker 的应用与实践
64 0
|
4月前
|
运维 开发者 Docker
Docker容器化技术在运维中的应用实践
【8月更文挑战第27天】本文旨在探讨Docker容器化技术如何在现代运维工作中发挥核心作用,通过深入浅出的方式介绍Docker的基本概念、优势以及实际应用场景。文章将结合具体案例,展示如何利用Docker简化部署流程、提高资源利用率和加强应用的可移植性。读者将获得对Docker容器技术在实际运维中应用的全面认识,并能够理解其在提升运维效率与质量方面的重要性。
|
4月前
|
数据可视化 数据安全/隐私保护 开发者
堪称最优秀的Docker可视化管理工具——Portainer深度解析与应用实践
【8月更文挑战第7天】在容器化技术日益盛行的今天,Docker以其轻量级、可移植性和灵活性的优势,成为了开发者和管理员的首选。然而,随着Docker容器的增多,如何高效地管理和监控这些容器成为了一个挑战。Portainer,作为一款开源的Docker可视化管理工具,凭借其直观的操作界面和强大的功能,赢得了广泛的赞誉。今天,我们就来深入探讨Portainer的使用技巧,看看你是否真的会用它。
181 0