十种改变科学的计算机代码

2021-01-20 23:47:19

在2019年,Event Horizo​​n Telescope团队首次向世界展示了黑洞的实际外观。但是该小组展示的一个发光的环形物体的图像不是传统的照片。它是经过计算的,是对美国,墨西哥,智利,西班牙和南极1台射电望远镜所捕获数据的数学转换。该团队与记录其发现的文章一起发布了用于实现这一壮举的编程代码,因此科学界可以看到并在此基础上继续前进。

这是一种越来越普遍的模式。从天文学到生态学,现代每一个伟大的科学发现背后都有一台计算机。加利福尼亚州斯坦福大学的计算生物学家迈克尔·莱维特(Michael Levitt)因其在对化学结构进行建模的计算策略方面的研究而获得了2013年诺贝尔化学奖,他指出,当今的笔记本电脑的存储和时钟速度大约是他实验室的10,000倍1967年,当他开始他的获奖工作时,内置计算机就开始了。他说:“今天,我们确实确实掌握了相当数量的计算。” “问题是,它仍然需要思考。”

输入科学家编码。如果没有能够解决研究问题的软件以及知道如何编写和使用它的研究人员,那么功能强大的计算机将毫无用处。 “研究现在已经与软件建立了根本联系,”总部位于英国爱丁堡的软件可持续发展研究所所长Neil Chue Hong说,该组织致力于改善科学软件的开发和使用。 “它渗透到研究行为的各个方面。”

科学发现理应获得媒体的关注。但是本周的《自然》杂志是幕后花絮,在过去几十年中,这些关键代码改变了研究。

尽管没有像这样的清单可以确定,但是在过去的一年中,我们对数十名研究人员进行了调查,以开发出十种对科学界产生重大影响的软件工具的多样化阵容。在故事的结尾,您可以权衡我们的选择。

最初的现代计算机不是用户友好的。编程实际上是通过用电线连接电路组来手工完成的。随后的机器语言和汇编语言允许用户使用代码对计算机进行编程,但是这两种语言都仍需要对计算机的体系结构有深入的了解,这使得许多科学家无法使用这些语言。

随着符号语言的发展,这种情况在1950年代发生了变化,特别是John Backus和他在加利福尼亚州圣何塞的IBM团队开发的“公式翻译”语言Fortran。使用Fortran,用户可以使用诸如x instructions = 3 + 5之类的可读指令对计算机进行编程,然后编译器将这些指令转换为快速,高效的机器代码。

这仍然不容易:在早期,程序员使用打孔卡来输入代码,而复杂的仿真可能需要成千上万张。新泽西州普林斯顿大学的气候学家Syukuro Manabe说,Fortran使得非计算机科学家的研究人员可以访问程序。 “第一次,我们能够自己对[计算机]进行编程,” Manabe说。他和他的同事使用该语言开发了第一个成功的气候模型之一。

如今,在其第八个十年中,Fortran仍被广泛用于气候建模,流体动力学,计算化学等涉及复杂线性代数且需要强大计算机快速处理数字的学科。生成的代码很快,并且仍然有很多程序员知道如何编写它。在全球的实验室和超级计算机上,Vintage Fortran代码库仍然有效。 “资深程序员知道他们在做什么,”加利福尼亚蒙特雷海军研究生院的应用数学家和气候建模师Frank Giraldo说。 “他们非常注意记忆,因为他们的记忆很少。”

当射电天文学家扫描天空时,他们捕获了随时间变化的复杂信号的杂音。为了了解这些无线电波的性质,他们需要查看这些信号作为频率函数的样子。研究人员可以通过称为傅立叶变换的数学过程来做到这一点。问题是效率低下,需要对大小为N的数据集进行N 2次计算。

1965年,美国数学家James Cooley和John Tukey提出了一种加快这一过程的方法。使用递归(一种“分而治之”的编程方法,其中算法会重复应用自身),快速傅立叶变换(FFT)简化了将傅立叶变换计算为N log 2(N)个步骤的问题。速度随着N的增长而提高。对于1,000点,速度提升约为100倍;一百万点,是五万倍

英国牛津大学数学家尼克·特雷菲森(Nick Trefethen)说,“发现”实际上是一次重新发现-德国数学家卡尔·弗里德里希·高斯(Carl Friedrich Gauss)于1805年完成了该发现,但他从未发表过。但是Cooley和Tukey做到了,打开了在数字信号处理,图像分析,结构生物学等领域的应用程序。 Trefethen说:“这确实是应用数学和工程学领域的重大事件之一。” FFT已经在代码中实现了很多次。一种流行的选择称为FFTW,即“西方最快的傅立叶变换”。

保罗·亚当斯(Paul Adams)负责加利福尼亚州劳伦斯·伯克利国家实验室的分子生物物理学和整合生物成像部门,他回忆说,当他在1995年2月改进细菌蛋白GroEL的结构时,计算花费了“很多很多小时,甚至不是几天”,即使使用FFT和超级计算机。他说:“尝试在不使用FFT的情况下,我什至不知道我们将如何现实地做到这一点。” “那将是永远的。”

数据库是当今科学研究的一个无缝组成部分,因此可以很容易地忽略它们由软件驱动的事实。在过去的几十年中,这些资源的规模激增,并影响了许多领域,但也许没有哪一种变化比生物学更具戏剧性。

当今庞大的基因组和蛋白质数据库源于玛格丽特·戴霍夫(Margaret Dayhoff)的工作,他是马里兰州银泉市国家生物医学研究基金会的生物信息学先驱。在1960年代初期,随着生物学家努力弄清蛋白质的氨基酸序列,Dayhoff开始整理这些信息,以寻找不同物种之间进化关系的线索。她的《蛋白质序列和结构图谱》于1965年由三位合著者首次发表,描述了当时对65种蛋白质的序列,结构和相似性的了解。历史学家布鲁诺·斯特拉瑟(Bruno Strasser)在2010年3收集了第一个“不依赖于特定研究问题”的集合。它用打孔卡对数据进行编码,从而有可能扩展数据库并进行搜索。

随后是其他计算机生物数据库。 1971年启用了蛋白质数据库,该数据库今天详细描述了170,000个以上的大分子结构。加利福尼亚大学圣地亚哥分校的进化生物学家罗素·杜利特尔(Russell Doolittle)于1981年创建了另一个名为Newat的蛋白质数据库。1982年,该数据库得以发布。该数据库将成为GenBank,即由美国国立卫生研究院维护的DNA档案。

1983年7月,这种资源证明了自己的价值,当时由伦敦帝国癌症研究基金会的蛋白质生物化学家迈克尔·沃特菲尔德(Michael Waterfield)领导的独立小组和杜利特尔(Doolittle)独立报告了特定人类生长因子的序列与病毒中的蛋白质之间的相似性。导致猴子患癌症。该观察结果提出了一种由病毒致癌的机制-通过模仿生长因子,该病毒诱导了细胞4的不受控制的生长。“这使一些生物学家不去研究计算机和统计学的人想到了灯泡,美国国家生物技术信息中心(NCBI)前任主任詹姆斯·奥斯特(James Ostell)说:“我们可以通过比较序列来了解一些有关癌症的知识。”

Ostell说,除此之外,这项发现标志着“客观生物学的问世”。除了设计用于测试特定假设的实验外,研究人员还可以挖掘公共数据集,以获取与实际收集数据的人可能从未发生过的联系。当将不同的数据集链接在一起时,这种能力急剧增加。1991年,NCBI程序员使用Entrez实现了这一目标,该工具使研究人员可以自由地从DNA导航到蛋白质再到文献再返回。

现任马里兰州贝塞斯达市NCBI的现任导演Stephen Sherry使用Entrez作为研究生。他说:“我当时记得当时以为是魔术。”

第二次世界大战结束时,计算机先驱约翰·冯·诺伊曼(John von Neumann)开始将计算机(几年前一直在计算弹道轨迹和武器设计)转向天气预报问题。 Manabe解释说,直到那时,“天气预报只是经验性的”,利用经验和直觉来预测接下来会发生什么。相比之下,冯·诺依曼(Von Neumann)的团队“试图根据物理定律进行数值天气预报”。

位于新泽西州普林斯顿的美国国家海洋与大气管理局地球物理流体动力学实验室建模系统部门负责人Venkatramani Balaji说,这些方程式已经存在了数十年。但是早期的气象学家几乎无法解决这些问题。为此,需要输入当前条件,计算它们在短时间内的变化情况,然后重复进行-这一过程非常耗时,以至于无法在天气赶上时完成数学运算。 1922年,数学家刘易斯·弗莱·理查森(Lewis Fry Richardson)花了几个月的时间对德国慕尼黑进行为时6小时的预报。根据一个历史,结果是“非常不准确的”,包括“在任何已知的陆地条件下都不可能发生”的预测。计算机使问题变得易于处理。

在1940年代后期,冯·诺伊曼(von Neumann)在普林斯顿高级研究所成立了天气预报小组。 1955年,第二个小组-地球物理流体动力学实验室-开始研究他所谓的“无限预报”(即气候建模)。

Manabe于1958年加入气候建模小组,致力于大气模型的研究。他的同事柯克·布莱恩(Kirk Bryan)向海洋致辞。 1969年,他们成功地将两者结合在一起,创造了自然界在2006年称之为科学计算的“里程碑”。

如今的模型可以将地球的表面划分为25××25公里的正方形,并将大气划分为数十个层次。相比之下,Manabe和Bryan的综合海洋-大气模型5使用了500公里的正方形和9个水平,仅覆盖了全球的六分之一。 Balaji说,“这种模式做得很好”,这使团队能够首次测试硅粉中二氧化碳水平升高的影响。

科学计算通常涉及使用向量和矩阵的相对简单的数学运算。只有很多。但是在1970年代,还没有一套普遍认可的用于执行此类操作的计算工具。结果,从事科学工作的程序员将花时间设计高效的代码来进行基本数学运算,而不是专注于科学问题。

编程世界需要的是一个标准。在1979年,它得到了一个:基本线性代数子程序,即BLAS6。该标准一直持续发展到1990年,为矢量和后来的矩阵数学定义了数十种基本例程。

田纳西大学诺克斯维尔分校计算机科学家杰克·东纳拉(Jack Dongarra)说,实际上,BLAS将矩阵和矢量数学简化为基本的计算单位,而加减法则是其中的基础。

德克萨斯大学奥斯汀分校的计算机科学家Robert van de Geijn说,BLAS“可能是为科学计算定义的最重要的接口”。除了为通用功能提供标准化名称外,研究人员还可以确保基于BLAS的代码可以在任何计算机上以相同的方式工作。该标准还使计算机制造商能够优化BLAS实现,以在其硬件上快速运行。

40多年来,BLAS代表了科学计算堆栈的心脏,这是使科学软件产生变化的代码。华盛顿特区乔治华盛顿大学的机械和航空工程师Lorena Barba称其为“五层代码内的机械”。

在1980年代初期,程序员Wayne Rasband在马里兰州贝塞斯达的美国国立卫生研究院的脑成像实验室工作。该团队使用扫描仪将X射线胶片数字化,但无法在计算机上显示或分析它们。因此,拉斯班德(Rasband)编写了一个程序来做到这一点。

该程序是专门为价值15万美元的PDP-11微型计算机设计的,PDP-11微型计算机是机架安装的非个人计算机。然后,在1987年,苹果发布了它的Macintosh II,这是一个更友好,更实惠的选择。 “对我来说,显而易见的是,作为一种实验室图像分析系统,它会更好得多,” Rasband说。他将软件移植到新平台上并重新命名,从而建立了图像分析生态系统。

NIH Image及其后代使研究人员可以在任何计算机上查看和量化几乎任何图像。该软件系列包括Rasband为Windows和Linux用户编写的基于Java的版本ImageJ,以及由德国德累斯顿马克斯·普朗克分子细胞生物学与遗传学研究所的Pavel Tomancak小组开发的ImageJ发行版Fiji,其中包括关键插件。 “ ImageJ无疑是我们拥有的最基础的工具,”在马萨诸塞州剑桥市Broad Institute的成像平台上工作的计算生物学家Beth Cimini说。 “从字面上看,我从未与使用过显微镜但没有使用ImageJ或其分支项目斐济的生物学家说话。”

Rasband说,部分原因是这些工具是免费的。威斯康星大学麦迪逊分校的生物医学工程师凯文·埃里斯里(Kevin Eliceiri)说,但这也是因为用户可以轻松地根据自己的需求定制该工具,该团队自Rasband退休以来一直负责ImageJ的开发。 ImageJ具有看似简单,极简的用户界面,自1990年代以来,该界面基本上保持不变。然而,由于其内置的宏记录器(允许用户通过记录鼠标单击和菜单选择的顺序来保存工作流),广泛的文件格式兼容性和灵活的插件体系结构,该工具可以无限扩展。 Eliceiri小组的编程负责人Curtis Rueden说,“成百上千的人”贡献了插件。这些新增功能极大地扩展了研究人员的工具集,例如具有随时间推移跟踪视频中对象的功能或自动识别单元格的功能。

Eliceiri说:“该计划的重点不是成为最终目标,而是为了达到用户的目的。与Photoshop和其他程序不同,ImageJ可以随心所欲。

可能没有比将软件名称变成动词更好的文化相关性指标。对于搜索,请考虑使用Google。对于遗传学,请考虑一下BLAST。

进化变化被刻蚀为分子序列,如取代,缺失,缺口和重排。通过搜索序列之间的相似性,尤其是蛋白质之间的相似性,研究人员可以发现进化关系并深入了解基因功能。诀窍是在迅速增加的分子信息数据库中快速而全面地进行操作。

Dayhoff在1978年提出了一个至关重要的难题。她设计了一个“点接受突变”矩阵,使研究人员不仅可以根据序列的相似程度,还可以根据它们之间的进化距离来对两种蛋白质的相关性进行评分。

1985年,夏洛茨维尔的弗吉尼亚大学的William Pearson和NCBI的David Lipman引入了FASTP,该算法结合了Dayhoff的矩阵和执行快速搜索的能力。

多年后,Lipman与NCBI的Warren Gish和Stephen Altschul,大学公园的宾夕法尼亚州立大学的Webb Miller以及图森的亚利桑那大学的Gene Myers一起开发了更强大的改进方法:基本局部比对搜索工具(爆破)。 BLAST于1990年发布,将处理快速增长的数据库所需的搜索速度与能够找到进化距离更远的匹配项的能力相结合。同时,该工具可以计算出这些匹配是偶然发生的可能性。

结果非常快,Altschul说。 “您可以进行搜索,喝一口咖啡,然后搜索便会完成。”但更重要的是,它易于使用。在通过邮寄更新数据库的时代,Gish建立了电子邮件系统,后来建立了基于Web的体系结构,该体系结构允许用户在NCBI计算机上远程运行搜索,从而确保其结果始终是最新的。

马萨诸塞州剑桥市哈佛大学的计算生物学家肖恩·埃迪说,该系统为当时处于萌芽状态的基因组生物学领域提供了一种转化工具,这是一种根据未知基因可能与之相关的基因找出未知基因可能做什么的方法。 。对于世界各地的测序实验室,它提供了一种巧妙的新词:“这只是变成动词的其中之一,”埃迪说。 “您刚刚谈论了爆破序列。”

在1980年代后期,高能物理学家通常将其提交的手稿的物理副本以邮寄方式寄给同事,以征求评论和礼貌,但只发给了少数几个人。物理学家保罗·金斯帕格(Paul Ginsparg)在2011年7月写道:“食物链中较低的那些人依靠的是A名单上那些人的仁慈,非精英机构的有抱负的研究人员经常完全不在特权之列。”

1991年,当时在新墨西哥州洛斯阿拉莫斯国家实验室的金斯帕格(Ginsparg)撰写了一封电子邮件自动回复程序,以公平地竞争环境。订户每天收到预印本的清单,每个清单都与文章标识符相关联。只需一封电子邮件,全世界的用户都可以从实验室的计算机系统提交或检索文章,获取新文章的列表,或者按作者或标题进行搜索。

金斯帕格(Ginsparg)的计划是将文章保留三个月,并将内容限制在高能物理领域。但是一位同事说服他无限期保留这些文章。他说:“那是从公告栏过渡到存档的那一刻。”而且,论文的出版范围比金斯帕格所在学科要远得多。 1993年,金斯帕格(Ginsparg)将系统迁移到了互联网,并在1998年将其命名为arXiv.org。

如今已是第30年,arXiv拥有约180万张预印本(全部免费提供),每月吸引超过15,000份投稿和约3000万次下载。 Nature Photonics的编辑在十年前网站成立20周年之际写道:“不难看出arXiv为何如此受欢迎的服务,”该系统为研究人员提供了一种快速便捷的方法来制作国旗可以显示他们的工作和时间,从而避免了传统期刊上同行评审所带来的麻烦和时间。”

该网站的成功催生了生物学,医学,社会学和其他学科的姊妹档案激增。今天,已经在SARS-CoV-2病毒上发布了成千上万的预印本,可以看到这种影响。

“很高兴看到一种方法,被认为是同等水平之外的异质

......