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

软件工具有助提高研究的再现性

Aug 28, 2018 No Comments

软件工具有助提高研究的再现性

 

一个简单的软件工具箱即可帮助研究人员解决计算分析数据在再现性方面的问题。

2011年,Julia Stewart Lowndes在加利福尼亚州斯坦福大学(Stanford University)读研究生,当时她的研究对象是几只长达一米的Humboldt鱿鱼(Dosidicus gigas)。她需要对这些动物做标记,从而跟踪它们的潜水路径。当她撰写论文时,她有五只动物的数据。随后,在项目完成前两个月,一个标记点被定位在夏威夷。

Lowndes指出,在完成这个项目前的几个月,她得到了第六个重要数据。这是一个非常幸运的突破。但机会永远只青睐有准备的人。Lowndes每个数据集包含几十万个数据点,她之所以能够很轻易地使用新标记,是因为她在再现性方面做了很多工作。伊利诺伊大学(University of Illinois)厄巴纳-香槟分校研究再现性的Victoria Stodden表示,计算再现性是重复分析特定数据集,并获得相同或相似结果的能力。在实践中,再现性意味着发表基于计算分析的论文的研究人员应该发布“数字证据”,包括数据和代码,以便其他研究人员可以测试他们的发现。

然而情况并非总是如此。很长一段时间以来:数据图被发布后,读者无法查看基础数据,并且算法也只是用英语进行了简单描述。鉴于有许多方法可以实现算法,而且代码的一点点调整都能微妙地影响结果,因此如果不提供实际代码、参数和数据,其他研究人员是无法确定已发布的实现是否正确的,或者他们自己的数据是否与发布的结果一致。

Stodden强调,再现性并不一定意味着结果在科学上是准确的。它只是允许我们进行验证,有助提高运算分析的透明度,让我们得以了解论文中涉及的计算步骤,以及所有的工作流程信息,包括数据和任何输入参数。

透明度来自一些关键工具,尤其是使用的控制、脚本和编程。与许多研究人员类似,Lowndes——现在是加州大学圣塔芭芭拉分校(University of California, Santa Barbara)美国国家生态分析与综合中心(US National Center for Ecological Analysis and Synthesis)的海洋数据科学家 ——曾接受过Microsoft Excel等点击式图形应用程序的培训。

但是,准确地记录这类软件中的各个分析步骤难度很大,它让再现性变得更为复杂。当拿到第一批数据时,Lowndes发现数据太大,根本无法在Excel中打开,鉴于此,她必须学会用编程语言MATLAB来处理这些数据。这并非易事。但是当第六个标签在毛伊岛的海滩上被冲刷掉时,她却可以通过再次运行她的代码来更新整个分析。

Lowndes指出,计算再现性其实也是“未雨绸缪”。你要考虑的不是‘现在这么处理最简单方便’,而是要考虑‘怎么做才能让下周、下个月以及更长远的以后的处理更简单方便’。

 

共享知识

1995年,斯坦福大学(Stanford University)的统计学家David Donoho共同撰写了一篇论文,描述了一个名为WaveLab的信号处理函数库,其中回顾了迄今为止计算再现性的历史进程。Donoho引用了再现性领域的先驱、斯坦福大学地质学家Jon Claerbout的一句话:科学出版物中关于计算科学的文章不是学术本身,而是只能算得上是学术广告。实际的学术是完整的软件开发环境和产生这些数字的完整指令集。

简而言之,这意味着研究人员应该对公众开放他们的计算工作流程和数据。这应包括用于生成已发布图表的代码,并且仅保留因隐私或法律原因而无法发布的数据。例如,华盛顿特区乔治华盛顿大学(George Washington University)的航空航天工程师Lorena Barba为她出版的每一个图表创建了“再现性包”——包括代码、数据和最终图像。她将这些包存档在数字存储库网站(如Figshare)上,其中还包括论文中涉及的数字对象标识符(DOI)。

不过值得指出的是,再现性非常复杂,因为软件和数据都不是静态的。

伦敦金斯顿大学(Kingston University)数学家Les Hatton表示,当你编写一个程序来分析生物数据时,其实你只是以其他人编写的一大堆代码为基础,然后编写了一点自己的东西。自20世纪70年代以来,他一直在研究计算的再现性(并且他发表的论文,都附带了再现性文件包)。

在这个开源的、社区开发的软件时代,数据和软件不断变化,仅通过看似简单的代码优化便可以改变输出值。但即使相同的代码如果在不同的硬件上运行或使用不同的设置进行编译,或者因为它假设用户的文件目录结构不同,也可能无法产生相同的结果。

鉴于此,Hatton指出,所有这些加起来,会导致输出结果的千差万别。

 

软件问题

以Chris Baldassano为例。Baldassano是新泽西州普林斯顿大学(Princeton University)研究记忆的博士后研究员,他开发了MATLAB代码来分析大脑活动数据。Baldassano现在就职于纽约市的哥伦比亚大学(Columbia University),他与合作者共享了这段代码。由于合作者使用的是不同版本的MATLAB,因此得到了错误而不是结果。Baldassano指出,有一些关于基础系统如何处理大量数据的问题,我们和他们使用的软件有点不同。 Baldassano通过将他的代码封装在Code Ocean上来规避这个问题。Code Ocean是一个基于云的服务,允许他在Web浏览器中共享他的计算环境和代码,其他人也可以在这里执行脚本。(8月1日,《自然方法》(Nature Methods)、《自然 生物科技》 (Nature Biotechnology)和《自然 机器智能》(Nature Machine Intelligence)宣布了一项试点计划,允许作者使用Code Ocean来共享全功能和可执行代码”,以方便评审人员对代码进行同行评审。)

数据集也可能随着时间的推移而变化。佛罗里达大学(University of Florida)盖恩斯维尔分校的生态学家Morgan Ernest领导了一项研究项目,该研究项目记录了长达40多年的亚利桑那州沙漠中的生物多样性。Ernest表示,这是‘活数据’,因为它一直在变化。在这种情况下,在分析运行时精确定位和记录数据的准确状态变得至关重要,因为在研究人员想要重新审视数据集时,数据集很可能已经发生了变化了。Ernest于6月发布了使用GitHub和持续集成(一种自动代码检查)处理此类数据的策略(go.nature.com/2o2lsza)。

现在常见的情况是,读者通常发现自己难以重复其他科学家的研究——甚至是他们自己的研究。在做博士后期间,费城宾夕法尼亚大学(University of Pennsylvania)的生物信息学家Casey Greene对基因表达数据进行了计算分析。除了密钥数据库的特定版本外,他还记录了他工作的各个方面。4年后,这些发现居然不可被复制,至少在细节上是这样。对此,Greene 表示,这令人不安。

现在,期刊在评估和发表论文时越来越多地考虑再现性。《美国统计协会杂志》(Journal of the American Statistical Association)已经指定编辑专门评估计算的再现性。在《美国政治学杂志》(American Journal of Political Science)上,最近针对再现性的调整是将平均出版时间延长了7周以上,要求作者重新提交材料的(平均)次数为2,以及每篇文章需要腾出8小时来重现结果。北卡罗来纳大学(University of North Carolina)教堂山分校H. W. Odum社会科学研究所的数据档案管理员Thu-Mai Christian表示,提交材料的最大问题是文档质量差。

发表在《自然研究》(Nature Research)期刊和《自然》(Nature)上的所有文章都需要一个声明,指出数据共享的链接,而那些包含自定义代码的论文需要一个代码可用性声明。代码将根据具体情况进行审核。《自然研究》的主编Natalie de Souza指出,目前,评审人员必须自行安装软件进行测试。她还表示,结果不可再现的文章比例不止1-5%,比这个高多了。

 

工具包测试

再现性倡导者围绕工具集进行融合,以最大限度地减少这些问题。该列表包括版本控制、脚本、计算笔记本和容器化——所有允许研究人员记录他们的数据的工具,他们遵循的数据操作步骤,以及他们分析的计算环境(文后“提高再现性”)。

澳大利亚卧龙岗大学(University of Wollongong)的考古学家Ben Marwick表示,如果没有这些文件,其他人就会无法再现该成果,也无法在该成果的基础上深耕。这就像,屋子里有一群饥肠辘辘的人,还有很多罐装罐头。但没人开罐头,然后我们互相问,为什么大家都不吃东西?

再现性可能是一个艰难的选择。Lowndes指出,研究人员不是软件工程师,学习以这种方式工作容易令人生畏。伦敦帝国理工学院(Imperial College London)的研究软件工程师Rich FitzJohn补充表示,再现性工作也可能非常耗时,并且没有什么学习动力。研究人员擅长的是解决科学问题,如果让他们花费大量时间来强调再现性,那就是让他们做自己不擅长的事情。

Stodden表示,学术界在许多方面都不利于再现性,因为大多数机构都会奖励那些高影响因子的出版物,并且免费提供代码和数据可能会使研究人员受到批评,并有可能文章被抢发。谈到学者在计算再现性上能做到什么程度,她补充表示,只要研究人员可以在日常的研究工作做出一点小努力就够了。例如,即使研究人员无法构建可执行容器,在GitHub或Zenodo存储库中共享代码也可以让其他人看到他们所做的事情。(Stodden、Barba和Donoho是美国国家科学院(US National Academies)关于科学再现性和可重复性调研小组的成员。小组的最终报告预计在2019年初发表。)

这些方法对研究人员本身可能作用最大。计算生态学家Christie Bahlai在密歇根州立大学(Michigan State University)开设了一门课程,教导生态学的研究生使用数据。有一年,她的学生提交了一份描述萤火虫活动模型的论文,其中包括他们使用的代码。审稿人实际测试了代码,并指出团队的结论基于一个假设;如果他们改变了这个假设,他们可能会得出不同的结论。

对此,现就职于俄亥俄州肯特州立大学(Kent State University)的Bahlai指出,由于学生提高了论文的再现性,审稿人才能做出这么仔细的评价。后来,该团队将文章的讨论部分扩展为详细说明。

Bahlai指出,这才是科学的正确做法,不是吗?有了再现性,人们才能够在更深层次上评价这项工作。

 

 

更多阅读:提高再现性

虽然目前并没有一种通用的关于计算再现性的解决方案,但以下做法可以提供部分帮助。

使用代码。使用编程语言下载、过滤、处理和输出数据,使用命令行脚本来记录这些工具的执行方式。

开源。鉴于代码透明性是再现性的关键,因此我们应尽可能使用开源工具。伦敦金斯顿大学(Kingston University)的数学家Les Hatton指出,如果你给他一个没有源代码的黑匣子,只给他数字,那么就他而言,它只是一个随机数发生器。

记录软件版本。采用Git和GitHub等版本控制软件,研究人员可以记录和共享他们使用的工具的精确版本,并根据需要检索特定版本。

分析归档。使用诸如Jupyter之类的计算笔记本将代码、结果和说明文本整合在一个文件中。

存档您的数据。在关键点冻结数据集——例如,在提交文章以供发布时,使用Zenodo、Figshare或开放科学框架等存档服务。

重复软件运行环境。软件“容器”,例如Docker,可将代码、数据和计算环境捆绑到一个包中;只要打开文件包,用户便可重新创建开发人员的系统。 ReproZip是纽约大学(New York University)计算机科学家Juliana Freire实验室开发的软件,它可用通过观察程序执行来确定容器创建,以确定其要求。商业服务Code Ocean和开源替代品Binder使研究人员能够创建和共享Docker容器(用户可在Web浏览器中浏览)。

自动化。费城宾夕法尼亚大学(University of Pennsylvania)的生物信息学家Casey Greene指出,自动化提供了再现性,免除了用户在再现性上的烦恼。例如,Travis CI等持续集成服务可以自动执行质量控制检查,Galaxy生物计算环境会自动记录其运行的作业的详细信息。

求助。感兴趣的研究人员可求助的资源非常丰富。例如,可参阅practicereproducibleresearch.org,或者在附近找一个软件车间来学习基本的计算技能。

 

 

原文检索:
Jeffrey M. Perkel. (2018) A toolkit for data transparency takes shape. Nature, 560: 513-515. 张洁/编译

新闻特写, 热点
No Responses to “软件工具有助提高研究的再现性”

Leave a Reply


8 + one =