以下内容根据演讲PPT以及现场分享整理而成。
容器技术在各个行业有很广泛的应用,今天分享是docker技术在基因数据方面的应用以及如何建设基因数据应用的“APP Store”。
一、基因组学数据与分析应用
我们都知道人有23对染色体,上面包含了人的基因组信息,这些信息决定了一个人的身高体重、头发的颜色以及一些可能会患有的疾病的风险信息。一个有意思的小常识是人类的基因和老鼠的基因有85%的相似度,与猫的基因相似度达到了90%,和人类的近亲大猩猩的基因相似度则高达96%,而人与人之间在基因组信息上的差别只有0.1个百分点,但是这0.1%却决定了不同的个体。
为什么靠这0.1%的不同基因信息就能够决定人与人之间的差别呢?其实在基因学上有这样的一个中心法则:DNA转录成为RNA,RNA翻译成蛋白质,蛋白质就决定了性状。这就是基因学上最核心的中心法则,在这个过程中产生的数据有哪些呢?依靠目前先进的测序技术基因组信息可以被序列化成为数据信息,其次还有基因在不同时空中表达的RNA信息,其编码的蛋白还有结构信息,并且蛋白质之间的相互作用决定了性状信息,这些就构成了基因组学的数据。
当然,人的性状不单单由基因组信息决定,环境以及生活方式也会产生很大影响。目前华大基因正在利用基因测序技术解决人类生老病死的问题,我们希望能从基因组学的层面上结合外部环境和人体内环境进行精准医学的生活指导,在生活的各方面给出相应的医学指导。
基因组学其实是数据密集型的科学,需要大数据计算的支持。在基因测序方面,大家都知道当年人类基因组计划花费了十几亿才能够将测序工作完成,但是今天在美国,每个人只需要一千美元就可以获得自己的基因组信息,基因测序的价格将会越来越便宜,其价格的下降速度会超过摩尔定律。从整个基因产业的价值链来讲,未来的技术瓶颈和价值所在都是基因的数据分析。学计算机的都知道,对于计算而言,需要有一些input和相应的output,这其中的计算需要是软件或者算法。但即便是能获取到再好的数据,使用一个糟糕的软件或者算法流程的话,也只能获得一些垃圾数据,并不能解决实际的问题。
真正的基因组学应用如果以能够解决之前提到的问题,其实是非常复杂的,因为需要很多的数据输入和操作步骤才能达到最终想要的结果,而这就是一个比较重要的问题,未来生物信息学工具和方法的创新必将带来产业革命。
一般认为基因测序信息的有效期是5到10年,而从现在往后的5年,基因序列并不会发生什么重大的变化,变化的只可能是基因测序技术的成本。对于这些测出的基因组信息,有什么利用价值呢?其实取决于对于基因组信息进行的创新,如果说现在的软件开发者能够通过基因测序信息判断一个人有没有携带癌症的潜在基因的话,就可以做到早期的癌症筛查。
二、存在的问题与挑战
下图是基因信息分析工具,可以看出目前基因信息分析工具有很多。
下图是基因测序圈比较有名的论坛的统计,可以看出在基因分析中使用的语言很多,涉及的操作系统也是种类繁多。目前来讲,基因测序的工作流可以运行在个人电脑中也可以运行在计算性能高的工作站中,或者更大的计算集群,乃至于像阿里云这样的云端。
为了使基因测序以及基因分析的工作流能运行在各种架构上,需要让基因组学应用满足可移植性、可扩展性和可重复性的要求。为了满足这些的需求,华大基因也正在探索如何利用docker技术去将基因组学应用标准化。
三、docker与应用标准化
下图是docker的应用案例,其依赖于两个特性就是应用的隔离和对于配置的简化。
具体而言如何去使用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格式的接口文件,用户直接将数据输入到文件中就可以获取经过工作流处理的数据,这样用户就可以只关注数据本身,而不必关心软件系统的搭建和计算过程。
如果将APP Store的模型实现的话,对开发者而言,生物信息领域应用的构建和分享将会容易很多。
对于生物信息领域的人,容易写出标准dockerfile文档。那么如何降低他们的学习成本呢?其实有很多在线开发工具可以使用,预先配置好工具模板以及文件结构,开发者只需要在一些地方实现自己的算法,最终整个应用就可以自动打包成为标准的形式。
另外就是可视化流程编辑器,用户可以通过简单的拖拽形式构建工作流程。