首页  >  热点  >  新闻特写  >  文章正文
shRNA表达克隆

软件工具容器化可提高研究可重复性

Jun 12, 2017 No Comments

软件工具容器化可提高研究可重复性

容器化技术解决了安装、设置软件的麻烦,同时可以提高研究的可重复性。

2015年,遗传学家Guy Reeves试图使用一个名为Galaxy的免费软件系统来启动他的生信项目。经过一两天的挫折之后,他向IT部门的成员求助。他们帮他安装了Docker,一种用于模拟计算环境的技术。接下来,Reeves可以安装Galaxy的一个特殊版本,里面封装了他所需的所有程序,所以这个版本也被称为容器。在对Galaxy设置进行了轻微调整后,Reeves很快完成了软件的设置,并启动了项目。

事实上,Reeves只是德国马克斯普朗克研究所进化生物学中心(Max Planck Institute for Evolutionary Biology)众多采用容器化技术的科学家之一。随着科学数据变得越来越密集,越来越多的软件被开发出来对它们进行分析。但问题是,研究人员通常没有时间和知识背景来充分利用这些软件。容器技术——一种把软件代码包以及运行环境打包在一起,方便用户使用的服务器资源共享方式——有助于解决这一问题。基于容器技术,研究人员可以使用各种各样的软件,加快实验进度,提高重复性。

容器技术本质上是轻量级的可配置虚拟机——操作系统及其硬件的模拟版本,允许软件开发人员共享其计算环境。研究人员使用容器技术来分享复杂的科学软件系统,从而允许其他人在原始开发条件下执行软件。如此一来,容器技术可以消除计算生物学中的一个数据偏差的来源——软件运行环境的不同。加利福尼亚大学戴维斯分校(University of California, Davis)的生物信息学家C. Titus Brown指出,相对来说,虚拟机资源过于密集,灵活性较差,而容器化技术对硬件要求低,且可配置度高。尽管配置底层的容器化软件可能非常棘手,但容器化可以根据用户的需求进行修改,增加或删除工具。这种灵活性使它非常受欢迎。Reeves就很喜欢马上能上手的工具。

 

优点多多

实验室工具往往需要经过复杂的调适才能使用。因为这些工具往往采取脚本或编程源代码的形式,所以使用前必须进行处理和配置。许多软件需要额外的工具和库,而用户可能没有安装这些。即使用户可以运行软件,计算环境的差异,如所依赖的工具的安装版本不同,也可能微妙地改变性能,影响分析结果的重复性。通过将运行软件所需的计算环境(包括设置和附件)的关键元素打包到轻量级的虚拟框中,容器化可以降低复杂性。容器化并没有改变运行所需的资源——如果一个工具需要大量的内存,那么容器化后也依然如此。但是容器化使软件更容易使用,并且结果更容易重复。

目前最受欢迎的容器化工具是Docker、Singularity和rkt。这些工具可以在Windows、Mac OS X、Linux或云端运行。它们可以将任何单一过程包装到诸如Galaxy的复杂环境中。这些工具可以互通、共享数据或构建流程。因为每个应用程序都在自己的框架中,所以相互冲突的工具也可以彼此相安无事地运行。

Docker使用可执行包,即镜像来封装所需工具以及开发人员的计算环境。要创建Docker镜像,开发人员需要创建一个配置文件,包含有关如何下载和构建其中所需的所有工具的说明。然后他/她运行该文件,创建可执行包。所有用户需要做的只是解压镜像文件,并运行。其它容器化工具也可以生成镜像,例如Reprozip程序通过追踪软件工具运行时所需的输入文件和软件库来组装Docker兼容包。

加州伯克利国家能源研究科学计算中心(National Energy Research Scientific Computing Center)的计算机科学家Deborah Bard帮助研究人员将他们的软件安装在实验室的超级计算机上。当时,他们花了三四天来安装和设置软件。使用容器化技术可以将这个过程缩短到几个小时。Bard表示,你可以把节省下来的时间用于实验,而非浪费在弄清楚编译器版本上。

对于位于南非开普敦大学(University of Cape Town)的生物信息学家Nicola Mulder来说,容器化有助她同步在非洲运行的跨界生物信息学网络——H3ABioNet。据她解释,并不是所有的非洲机构都可以使用相同的计算资源,而且互联网连接也可能是混乱的,但是容器化允许有限资源的研究人员访问他们可能无法使用的工具。

Mulder指出,他们还允许拥有敏感基因组数据的研究人员在不分享基础数据的情况下,进行协作和结果比较。而且,如果一个站点的研究人员和另一个站点的同事得到的结果不同,容器提供的标准化就可以消除其中一个差异的原因。

 

如何利用容器化技术

尽管计算机科学家可选择的容器平台有很多种,但2013年推出的开源项目Docker也许是最受科学家们欢迎的容器化平台。相比于其它平台,Docker有一个大型预建容器注册表和一个活跃的在线社区。但是许多高性能计算系统的管理员并不倾向于使用Docker,因为它需要高级别的管理访问权限才能运行。这种类型的访问可能允许用户复制或损坏系统上的任何东西。收费企业版附加组件允许用户回避这一要求,但免费版本则没有这一功能。这部分用户可以使用其它不需要root权限的容器化工具,例如不需要完全权限或root访问,但也支持Docker映像的Shifter。

据Borwn解释,Docker广泛使用的最大障碍是对Root权限的要求。许多学者在其所属的研究机构或政府管理的高性能计算平台上运行生物信息学工具。正如他所指出的那样,一般来说,在这些系统上,研究者大部分都没有管理权限。Brown每年大约付给Amazon Web Services公司50,000美元,用于支付云计算费用。但他表示,Amazon Web Services提供的运算只是其计算工作的三分之一。其余的运算工作都放在密歇根州立大学(Michigan State University)的一个系统上运行了。在该系统上,他没有Root访问权。Brown虽然为自己用的软件工具创建了Docker镜像,但由于缺乏Root访问权,因此他很少会用到Docker。

研究人员可以从Docker Hub或从容器寄存器(如BioContainers和Dockstore)上访问Docker镜像,可以共享其他研究者开发的工具。加州大学圣克鲁斯分校(University of California, Santa Cruz)的Brian O'Connor是Dockstore注册管理机构的技术负责人,他建议科学家通过容器注册管理机构来寻找适合自己项目的工具,而不是改造已有的工具。

但是,纽约Code Ocean(一个旨在简化Docker的在线服务平台)的首席执行官Simon Adar表示,实际上正确运行Docker软件并不简单。运行Docker对技术要求高,毕竟它是为开发人员部署复杂系统而设计的。Code Ocean于2月推出,并很快便创造了Adar所说的“计算胶囊”,其中包括代码、数据、结果和Docker容器本身。研究人员上传他们的代码和数据,然后在Web浏览器中执行它或与他人共享——无需安装。Adar把该过程比喻成分享视频到YouTube上的过程。该公司甚至提供了一个小部件,使用户可以在网页中嵌入可执行的代码。

毛里求斯大学(University of Mauritius)的计算机科学家Shakuntala Baichoo在H3ABONet组织的一个公共活动(hackathon)中学习了容器化技术。此前,她需要花费几个小时来帮助合作者安装她开发或使用的工具。她表示,容器化不仅可以节省安装软件的时间,还可以鼓励科学家对软件进行测试,并提供反馈。

纽约大学(New York University)物理学家、参与CERN(European Organization for Nuclear Research,欧洲核子研究组织)的ALTAS计划(一个寻找新的基本粒子的项目)的Kyle Cranmer表示,在CERN层面上说,容器化技术加快了出版过程。当物理学家进行后续研究时,他们必须挖掘代码片段,并花费数小时重新分析旧的数据;但是如果使用容器化技术,他们就可以打包即用型数据分析工作流程,并简化和缩短流程。

 

提高重复性

Cranmer表示,尽管关于重复性的大部分辩论都集中在数据和代码上,但计算环境本身也起了很大的作用。这真的很重要。例如,一项研究发现操作系统的选择对最终分析结果产生了小而显著的影响。

华盛顿乔治华盛顿大学(George Washington University)的机械和航空航天工程师Lorena Barba表示,容器化镜像的性能取决于其包含的工具的质量。如果研究人员把糟糕的代码容器化,然后分享给我们,那就会影响我们的研究结果。Brown则指出,如果没有资助机构和期刊的压力,那么容器化技术本身不大可能会提升研究者对运算可重复性的认识。

伊利诺伊大学厄巴纳香槟分校(University of Illinois at Urbana–Champaign)的统计学家Victoria Stodden认为,事实上,很少研究者在使用容器化技术。当然部分原因是因为他们缺乏需求或意识,但其实很可能是因为他们缺乏相应的计算机技能。

不过,现状很快会发生改变。纽约州石溪大学(Stony Brook University)生物信息学家Jonas Almeida指出,像Google和微软这样的公司已经在容器平台上运行了一些软件。大规模的生物信息学项目也开始使用容器化技术。约翰霍普金斯大学(Johns Hopkins University)的计算机科学家Enis Afgan表示,基于云的Galaxy最终将被默认在容器化平台中运行。

Almeida预测,未来5至十10年里,科学家将不再需要担心软件的下载和配置;各种工具也将被简单地容器化。这种情况是势不可挡的。

 

原文检索:
Andrew Silver. (2017)Software simplified. Nature, 546(1038): 173-174.
张洁/编译

新闻特写, 热点
No Responses to “软件工具容器化可提高研究可重复性”

Leave a Reply


four + 4 =