COVID-19 专题
2020年10月号
医学进展

代码检查器验证的有影响力的大流行病模拟

作者:杜泽一

今年,Eglen与他人共同创立了一个名为编解码器检查(Codecheck)的组织,帮助评估科学研究背后的计算机程序。他的工作是测试在给定数据输入和代码的情况下,是否有可能重现计算分析的结果。他没有回顾模拟流行病学的研究,比如与冠状病毒相关的死亡率估计。然而,英国的科学顾问们要求多个团队对正在出现的流行病进行模拟,他们得出的结果与帝国理工学院的相似。

“完全不可靠”“一团糟”。过去一个月里,软件工程师对伦敦帝国理工学院的科学家们支持的一个有影响力的冠状病毒模拟的代码提出了尖锐批评。该模型是促使英国政界人士宣布封锁的几个模型之一。一些媒体文章甚至暗示这种模拟不能被其他人重复——这进一步加深了人们对这项研究的怀疑。现在,一位计算神经科学家报告说,他独立地重新运行了模拟程序,并重现了模拟结果。

成功的代码测试并不是对模拟的科学准确性的评估,这个模拟是由数学流行病学家Neil Ferguson领导的一个团队完成的。但它消除了对代码的一些误解,并表明其他人可以重复最初的发现。

法国国家科研中心(CNRS)的计算生物物理学家Konrad Hinsen表示,新的测试是“鉴于计算科学的最先进水平,对Ferguson模拟的最好的验证”。今年5月,他在一篇博客文章中写道,该研究的代码看起来“可怕”,但这种缺陷在非软件开发专家编写的代码中是可以预料到的。

3月中旬发布的最初研究报告称,如果不采取任何措施阻止该病毒传播,英国可能会有50万人死亡,并模拟了政策干预可能起到的作用。但是科学家们并没有将这些代码公开接受审查。4月底,当一个清理后的版本发布时,软件工程师贬低了它的质量,并表示需要由其他人重复模拟。媒体文章对这项工作提出了进一步的质疑,报道称其他科学家在重新运行代码时出现了问题。

Ferguson当时没有对批评发表评论,但他也认为这个模拟没有使用最佳实践编码方法,因为它是根据十多年前为模拟流感大流行而创建的模型改编的。他说,没有时间从零开始生成同样复杂度的新模拟,但对代码的批评并没有影响模拟的科学性。

研究人员说,围绕代码的政治化辩论表明了为什么科学家在公开发布他们工作的底层代码方面仍然犹豫不决:学术程序经常有软件工程师可以挑出的缺点。尽管一些期刊现在要求同行审稿人重新运行并验证代码,但公开分享代码仍远未成为学术规范。爱丁堡软件可持续发展研究所创始董事Neil Chue Hong表示,研究人员可能不得不花时间帮助人们使用他们的软件,或反驳因误用软件而引起的指控,这是许多学者的一个“大担忧”。

英国剑桥大学的神经科学家 Stephen Eglen说,即便如此,科学家们还是应该公布他们的代码并记录它的工作原理,他重新运行了代码,并于6月1日报告了研究结果。

可重复的软件

今年,Eglen与他人共同创立了一个名为编解码器检查(Codecheck)的组织,帮助评估科学研究背后的计算机程序。他的工作是测试在给定数据输入和代码的情况下,是否有可能重现计算分析的结果。他没有回顾模拟流行病学的研究,比如与冠状病毒相关的死亡率估计。然而,英国的科学顾问们要求多个团队对正在出现的流行病进行模拟,他们得出的结果与帝国理工学院的相似。

与伦敦皇家学会合作的研究人员,作为模拟大流行的快速援助(RAMP)工作的一部分,告诉《自然》杂志,他们也在3月份私下进行了代码验证。在最初的研究报告发布到网上后,RAMP的研究人员与Ferguson团队、微软和GitHub软件公司合作,对该软件进行清理,以便在GitHub网站上公开发布。GitHub网站是开发者(包括科学家)共享代码的地方。作为这项工作的一部分,他们检查公共代码和原始代码从相同的输入中可靠地生成相同的结果。

英国爱丁堡大学的物理学家Graeme Ackland表示,RAMP小组的工作包括一项单独的工作,即通过尝试在各种操作条件下破坏模拟,来测试模拟的稳健性。相关团队在GitHub上发表了评论。正是这些报纸文章错误地引用了这些评论,使人们怀疑该代码是否可以被复制。

当被问及他从对代码的愤怒中学到了什么时,Ferguson强调必须尽快完成这项工作。2月27日,他在英国主要的紧急情况科学咨询小组的一次非公开会议上提出了对大流行病影响的基本估计,他估计已经有50万人死亡。然后,他的团队花了很长时间生成更复杂的模拟,以估计某些政策行动可能会如何改变结果。他说,清理和发布代码在当时并不是当务之急。(编译:杜泽一)

参考文献:Nature 2020;582:323-324

Copyright 1994-2015 Cinkate.com.cn All Rights Reserved 沪ICP备10014127号-5