构建基因数据应用生态系统: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



相关文章
|
14天前
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
85 28
|
2月前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
282 75
|
2月前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
83 9
|
2月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
85 5
|
2月前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
86 4
|
2月前
|
存储 缓存 运维
Docker镜像采用分层存储,每层代表镜像的一部分,如基础组件或应用依赖,多层叠加构成完整镜像
Docker镜像采用分层存储,每层代表镜像的一部分,如基础组件或应用依赖,多层叠加构成完整镜像。此机制减少存储占用,提高构建和传输效率。Docker还通过缓存机制提升构建和运行效率,减少重复工作。文章深入解析了Docker镜像分层存储与缓存机制,包括具体实现、管理优化及实际应用案例,帮助读者全面理解其优势与挑战。
91 4
|
存储 负载均衡 数据安全/隐私保护
Docker生态系统系列之三:服务发现和分布式配置存储
本文讲的是Docker生态系统系列之三:服务发现和分布式配置存储,【编者的话】本文介绍了服务发现与全局可读配置存储两部分内容,不仅介绍了工作原理和工作方式,也介绍了与之相关的故障检测、重配置和安全问题,最后还介绍了常用的服务发现项目。
4262 0
|
1月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
225 93
|
5天前
|
网络协议 API Docker
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
39 23
|
5天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
109 15