被批评的冠状病毒模拟从代码检查工作中竖起大拇指

2020-06-11 22:42:13

“完全不可靠。”“一团乱七八糟的东西。”过去一个月,软件工程师尖锐批评了支撑伦敦帝国理工学院(Imperial College London)科学家进行的一项有影响力的冠状病毒模拟的代码,这是帮助说服英国政界人士宣布封锁的几项建模活动之一。一些媒体文章甚至暗示,其他人不能重复这种模拟-这让人对这项研究产生了进一步的怀疑。现在,一位计算神经学家报告说,他已经独立地重新运行了模拟,并复制了结果。其他科学家告诉“自然”杂志,他们已经私下证实了代码是可重现的。

成功的代码测试并不是对由数学流行病学家尼尔·弗格森(Neil Ferguson)领导的团队制作的模拟的科学准确性的审查。但它消除了对代码的一些误解,并表明其他人可以重复最初的发现。

法国国家研究机构CNRS的计算生物物理学家康拉德·辛森(Konrad Hinsen)没有参与这项工作,他说,考虑到计算科学的最先进水平,新的测试是对弗格森模拟的最好可能的验证。今年5月,他在一篇博文中写道,帝国理工学院的代码看起来很可怕,但这些缺陷在通常不是软件开发专家的科学家编写的代码中是可以预料到的。

最初的研究发布于3月中旬,最初的研究表明,如果不采取任何措施阻止病毒,英国可能会有50万人死亡,并模拟了各种政策干预可能会有所帮助的方式。但帝国理工学院的科学家没有立即将代码提供给公众监督。

当4月底发布经过清理的版本时,软件工程师贬低了它的质量,并表示需要其他人重复模拟。今年5月,英国执政的保守党议员大卫·戴维斯(David Davis)在推特上发布了一些网上批评,称如果是真的,这是“可耻的”。

媒体文章通过报道在线评论进一步质疑帝国科学公司的工作,这些评论表明,其他科学家在重新运行代码时遇到了问题。自然现在已经确定这些是断章取义的:它们与帝国集团为确保公开发布的代码在所有可能的计算环境中正确运行所做的工作有关。

弗格森当时没有对这些批评发表评论,他同意模拟没有使用当前的最佳实践编码方法,因为它必须改编自十多年前为模拟流感大流行而创建的模型。他说,没有时间从头开始生成同样复杂的新模拟,但团队在其他工作中使用了更现代的编码方法。然而,他说,对代码的批评都不会影响模拟的数学或科学。

研究人员说,围绕帝国代码的政治化辩论表明,科学家可能仍然不愿公开发布支撑他们工作的代码的一些原因:学术项目往往存在缺陷,软件工程师可以挑出来。英国剑桥大学的神经学家斯蒂芬·埃格伦(Stephen Eglen)表示,即便如此,科学家们也应该公布他们的代码,并记录它是如何工作的。他在6月1日重新运行了帝国密码,并报告了他的结果。

今年,埃格伦联合创立了一个名为Codecachk的组织,以帮助评估科学研究背后的计算机程序。他的工作测试了一名独立科学家是否能在给定数据输入和代码的情况下复制计算分析的结果。他没有回顾帝国理工学院模拟的流行病学,比如估计与新型冠状病毒相关的死亡率,或者估计个人通常多频繁地融入社会。然而,英国的科学顾问要求多个团队对新出现的大流行进行建模,他们得出的结果与帝国理工学院的结果相似。

与伦敦皇家学会合作的研究人员告诉“自然”杂志,他们也在3月份私下进行了验证代码的演习,这是一项名为“大流行快速援助”(RAMP)的努力的一部分。在帝国理工学院最初的研究报告发布到网上后,RAMP研究人员与弗格森的团队以及软件公司微软(Microsoft)和GitHub合作,提高了文档的清晰度,并清理了软件,以便在GitHub网站上公开发布。GitHub网站是开发人员(包括科学家)共享代码的中央存储库。作为这项工作的一部分,他们检查了公共代码和原始代码是否可靠地从相同的输入中产生了相同的结果。

英国爱丁堡大学(University Of Edinburgh)物理学家格雷姆·阿克兰(Graeme Ackland)表示,坡道小组的工作包括一项单独的努力,通过试图在各种操作条件下打破模拟,来测试模拟的健壮性。参与研究的团队包括爱丁堡和瑞士日内瓦附近的欧洲粒子物理实验室CERN的软件专家,他们一边走一边在GitHub上发表评论。正是这些评论被报纸文章错误地引述为令人怀疑代码是否可以复制。

尽管一些期刊现在要求同行评审员重新运行和验证代码,但公开分享代码仍然远远不是一种学术规范。爱丁堡软件可持续发展研究所(Software可持续性Institute)创始主任尼尔·楚洪(Neil Chue Hong)表示,研究人员必须花费大量时间来帮助人们使用他们的软件,或者驳斥因滥用软件而引发的指控,这是许多学者的“一大担忧”。他说:“有一些方法可以运行代码,这意味着你不会得到合理的结果,但使用代码的研究人员知道这些方法是什么。”“这就像你或我得到了一辆一级方程式赛车,当它在第一个弯道发生撞车时,你会大吃一惊。”

尽管如此,埃格伦说,代码是任何计算研究的实质,应该总是发布的。其他科学家也呼吁总体上提高新冠肺炎模型背后的代码透明度。通过Codecachk,埃格伦验证了另外两个新冠肺炎模型的结果,这两个模型是由伦敦卫生与热带医学院的研究人员建立的,他们在研究中公布了代码。

当被问及他是否从他的团队代码引发的轩然大波中吸取了什么教训时,弗格森向自然强调了这项工作必须以多快的速度完成。2月27日,他在联合王国主要紧急情况科学顾问小组的一次非公开会议上提出了对大流行影响的基本估计;根据5月底公布的会议纪要,他的数字已经给出了50万人死亡的估计。然后,他的团队长时间地工作,快速生成更复杂的模拟,估计一些政策行动可能会如何改变结果。他说,清理和发布代码在当时并不是首要任务。