改变科学的 10 种计算机工具

2022-12-18 23:38:17

本文来自微信公众号:饭扑(ID:fanpu2019),原标题:《10个改变科学的电脑工具,你用过哪一个?》 》,编译:乌鸦小子

从 Fortran 到 arXiv.org,从生物学中的 BLAST 到人工智能中的 AlexNet,这些技术进步改变了科学和世界。

2019 年,事件视界望远镜 (EHT) 拍摄了人类第一张黑洞照片。这张带有明亮光晕的图像不是普通的照片,而是射电望远镜拍摄数据的算法合成,相关的编程代码也随后公布。使用计算机编程合成图像已成为越来越普遍的范例。

从天文学到生物学,现代科学的每一个重大发现背后都有一台计算机。但是,计算机不能代替人的思维。如果没有解决科学问题的软件和知道如何编写和使用它的研究人员,即使是最强大的计算机也毫无用处。如今,这些功能强大的软件已经渗透到科研工作的方方面面。

此前,《自然》杂志评选出了10个对科学界产生重大影响的软件工具。你用过或正在使用哪一个?

第一台现代计算机并不容易操作。那时候,编程实际上是手工“编造”的,研究人员用电线连接成排的电路。后来随着机器语言和汇编语言的出现,用户可以用代码编写计算机程序,但这需要对计算机体系结构有深刻的理解,这是很多科学家所望尘莫及的。

随着手语的逐渐发展,这种情况在 1950 年代开始发生变化。特别是出现了IBM工程师约翰·巴克斯开发的“公式翻译”语言Fortran。借助 Fortran 语言,用户可以使用人类可读的指令(如 x=3 5)编写计算机程序。编译器将这些指令转换为快速高效的机器代码。

然而,即使在 Fortran 语言被发明之后,编程仍然不是一件容易的事。那时候没有键盘和屏幕,程序员只能在打孔卡片上记录代码。复杂的模拟可能需要数万张穿孔卡片。即便如此,Fortran 仍然让​​编程不再那么遥不可及,许多非计算机科学家也能够编写自己的代码来解决他们领域中的科学问题。

如今,Fortran 已经走过了 60 多年的岁月,仍然广泛应用于气候建模、流体动力学、计算化学等诸多领域。由于运算速度快、占用内存小等优点,凡是涉及复杂线性代数、需要强大计算机才能快速处理数字的学科,都可以看到Fortran的踪迹。那些古老的代码仍然活跃在世界各地的实验中。房间和超级计算机。

当射电天文学家观测天空时,他们会接收到随时间变化的复杂信号。要了解这些无线电波的性质,他们需要了解信号如何随频率变化。傅立叶变换将信号从时间函数转换为频率函数。问题是傅里叶变换效率不够高,对于一个大小为N的数据集,需要N2次操作。

1965年,美国数学家James Cooley和John Tukey想出了快速傅里叶变换(FFT)方法来加速这个过程。 FFT使用递归,一种“分而治之”的策略,让一个函数可以反复调用自己,从而将计算傅里叶变换的问题简化为Nlog2(N)步。 N越大,速度提升越明显。 1000条数据,速度提升100倍左右;对于100万条数据,提速可达5万倍左右。

事实上,德国数学家高斯在 1805 年就发明了 FFT,但从未发表过。 Cooley和Tukey重新发现了这种方法,开辟了FFT在数字信号处理、图像分析、结构生物学等领域的应用。在许多人看来,这是应用数学和工程领域最伟大的发明之一。

美国劳伦斯伯克利国家实验室的Paul Adams回忆说,他在1995年分析细菌蛋白GroEL的结构时,即使使用FFT和超级计算机,计算过程仍然需要几天时间。 “如果没有 FFT,很难想象需要多长时间。”时间会成功的。”

今天,数据库已经成为科学研究不可或缺的一部分,以至于很容易忽视数据库是由软件驱动的事实。在过去的几十年里,数据库的规模呈爆炸式增长,影响了许多领域,但也许没有哪个领域像生物学那样发生了如此大的变化。

今天庞大的基因组和蛋白质数据库起源于生物信息学先驱 Margaret Dayhoff 的工作。 20 世纪 60 年代初,当生物学家致力于梳理蛋白质的氨基酸序列时,戴霍夫开始整理这些信息,以寻找不同物种之间进化关系的线索。 1966年,她和合作者发表了论文《蛋白质序列和结构图谱》(Atlas of Protein Sequence and Structure),描述了当时已知的65种蛋白质的序列、结构和相似性,并将数据编目打孔卡,使数据库的检索和扩展成为可能。

数字生物数据库(Biological database)随之而来。 1971 年,蛋白质数据库 (PDB) 启动,如今它详细介绍了超过 170,000 种大分子结构。 1982 年,美国国立卫生研究院 (NIH) 发布了 GenBank 数据库,为 DNA 及其编码的蛋白质创建档案。

这些资源很快就显示出了价值。 1983 年,两个不同的小组注意到人类的一种特定生长因子在序列上与导致猴子癌症的病毒蛋白非常相似。这一发现揭示了病毒致癌的一种机制是通过模仿生长因子,诱导不受控制的细胞生长。

由于这一发现,许多对计算机和统计学不感兴趣的生物学家突然意识到,他们可以通过序列比对来了解一些关于癌症的事情。研究人员也受到启发:除了设计实验来检验特定的假设,他们还可以挖掘开放的数据库,找到人们从未想过的联系。

当不同的数据库链接在一起时,这种能力会急剧增加。例如,名为 Entrez 的联合搜索引擎可帮助研究人员在 DNA、蛋白质和文献之间导航。

第二次世界大战结束时,计算机先驱冯诺依曼开始将多年前用于计算弹道和武器设计的计算机转向天气预报问题。在此之前,人们只能根据经验和直觉来进行天气预报。冯诺依曼的团队试图通过基于物理定律的数值计算来预测天气。

其实,科学家们对相关的数学方程式已经熟知多年,但早期的气象学家在解决实际问题时还是一头雾水,因为天气变幻莫测,远远超出了数学家的计算能力! 1922年,英国物理学家Lewis Fry Richardson首先发表了用数学模型预测天气的工作。要预测未来的天气,需要输入当前的大气状况,计算它们在短时间内会如何变化,并不断重复——这个过程非常耗时。他花了几个月的时间才预测接下来几个小时的天气,而且非常不可靠,甚至是“在任何已知陆地条件下都不可能做出的预测”。

计算机的出现使这种数学应用真正可行。 1940 年代后期,冯·诺依曼组建了一个天气预报小组。 1955 年,第二个团队地球物理流体动力学实验室 (GFDL) 也开始了气候建模。大气环流模型(GCM)的首次成功预测。到 1969 年,他们成功地将大气模型和海洋模型结合起来。

当时的GCM模型还比较粗糙,只覆盖了地球表面的六分之一,把它分成了500平方公里的方块,大气也只分成了9层。今天的天气模型将地球表面划分为 25 乘 25 公里的正方形,并将大气层划分为数十层。尽管如此,该模型在科学计算领域树立了一个里程碑,因为它是第一个基于计算机的二氧化碳水平上升对气候影响的测试。

科学计算通常涉及对向量和矩阵进行相对简单的数学运算,但在 20 世纪 70 年代之前,并没有一套被普遍接受的计算工具来执行这些运算。因此,从事科学工作的程序员需要花费大量时间设计代码来进行基本的数学运算,而不是专注于整个科学问题。

编程世界需要的是一个标准。 1979年,出现了这个标准,就是基本线性代数子程序库(BasicLinearAlgebraSubprograms),简称BLAS。 BLAS 将矩阵和向量计算简化为加法和减法等基本计算单元。该标准一直开发到 1990 年,定义了数十个矢量和矩阵数学的基本子程序。

BLAS 可能是为科学计算定义的最重要的接口。它为常用函数提供了标准化名称;基于 BLAS 的代码在任何计算机上都以相同的方式工作;此外,建立标准允许计算机制造商优化 BLAS 以在不同硬件上快速操作。可以说BLAS为科学计算提供了基础。

在 80 年代初期,美国国立卫生研究院 (NIH) 的大脑成像实验室拥有一台可以将 X 射线数字化但无法在计算机上显示或分析图像的扫描仪。因此,在这里工作的程序员 Wayne Rasband 编写了一个程序来实现这个目标。

最初,这个程序是专门为价值 150,000 美元的 PDP-11 计算机设计的。然后在 1987 年,当苹果公司发布 Macintosh II 时,Rasband 将软件移植到这个新平台供个人使用,并建立了图像分析系统。系统,即NIHImage。

NIHImage 的后继产品包括 ImageJ 和 Fiji,它们使研究人员能够在任何计算机上查看和分析图像,并已成为生物学家熟悉的基本工具,任何使用过显微镜的生物学家都熟悉它们。

ImageJ 提供了一个看似简单的极简主义用户界面,自 1990 年代以来几乎没有变化。然而,这个工具几乎可以无限扩展——兼容多种文件格式,具有灵活的插件架构,以及一个通过记录鼠标操作来节省工作流程的宏记录器。人们设计了各种独特的插件,有的可以自动识别细胞,有的可以跟踪目标,用户可以很容易地根据自己的需要使ImageJ工具更加个性化。

说到搜索,我们会说去谷歌;在遗传学中,科学家们会说去 BLAST 寻找特定的分子序列。将软件名称更改为动词可能是其使用范围的最佳指标。 (编者按:名字的形容词或形容词见《隐士:坎坷路的天才数学家丨智者谈》第五节)

进化带来的变化被记录在分子序列中,如取代、缺失、重排等。通过寻找分子序列之间的相似性,尤其是蛋白质的氨基酸序列,研究人员可以发现它们的进化关系,从而深入了解分子序列之间的相似性。基因的功能。然而,关键是要在迅速扩展的分子信息数据库中快速、全面地做到这一点。

生物信息学先驱 Margaret Dyhoff(就是上面那个建立生物数据库原型的人)在 1978 年做出了关键贡献。她设计了一个 PAM 矩阵,其中每个网格点的值代表一种氨基酸被另一种氨基酸取代的概率.这使得研究人员不仅可以通过分子序列的相似程度,还可以通过它们之间的进化距离来对两种蛋白质的相关性进行评分。

1985年,人们进一步将PAM矩阵和快速搜索能力结合起来,推出了一种称为FASTP的算法。几年后,更强大的 BLAST 诞生并于 1990 年发布。

BLAST 不仅可以快速搜索越来越大的数据库,还可以找到进化关系更远的匹配项,并计算这些匹配项偶然发生的可能性。它快速且易于使用。对于当时处于起步阶段的基因组生物学,BLAST 是一种变革性工具,它使科学家能够根据未知基因的功能确定其可能发挥的作用。

在 80 年代后期,高能物理学家通常会将提交的论文副本邮寄给同行征求意见,这也是一种礼貌,但这通常仅限于少数人。 “食物链”下游的科学家不得不依赖知名人士的慷慨解囊,而许多同样有抱负的研究人员往往被排除在外,因为他们不是来自顶级机构。

1991 年,当时在洛斯阿拉莫斯国家实验室工作的物理学家保罗·金斯帕格 (Paul Ginsparg) 写了一封自动回复邮件,试图创造公平的竞争环境。订阅者会收到一份每日预印本列表,每个预印本列表都与一个文章标识符相关联。只需一封电子邮件,世界各地的用户就可以通过实验室的计算机系统提交或检索文章、获取新文章列表以及按作者或标题进行搜索。

Ginsparg 的计划是将文章保留三个月,并将内容限制在高能物理领域。但一位同事说服他无限期保留这些文章。那一刻,它从布告栏变成了存档。论文涌入,高能物理以外的领域也是如此。 1993 年,Ginsparg 将该系统迁移到万维网,并于 1998 年将其命名为 arXiv.org。

今年,arXiv 已经 30 岁了,拥有约 180 万份预印本,全部免费提供,每月吸引超过 15,000 份提交和 3000 万次下载。它为研究人员提供了一种快速简便的方式来展示他们的学术作品,避免了传统同行评审期刊的时间和麻烦。

arXiv 的成功催生了其他纸质预印本网站的激增,包括生物学、医学、社会学和许多其他学科。今天,它的影响力可以从数万份已发表的关于“新冠”病毒的预印本中看到。 (编者按:见《预印本论文可靠吗?》)这种方法,30年前在粒子物理学界之外被认为是异端,现在却被视为自然存在。

Python是一种解释型语言,程序会直接逐行运行代码。程序员可以使用一种称为读取-评估-打印循环 (REPL) 的交互式工具,他们可以在其中输入代码并由称为解释器的程序执行。 REPL允许快速探索和迭代,但是Python的REPL不适合科学计算,例如,它不允许用户方便地预加载代码模块,或者开放数据可视化。

于是在 2001 年,当时还是研究生的 Fernando Pérez 写了自己的版本,也就是 IPython,一个交互式的 Python 解释器,总共有 259 行代码。十年后,IPython 被迁移到浏览器,成为 IPython Notebook,并开始了一场数据科学革命。

IPython Notebook 确实像一个笔记本,将代码、结果、图像和文本全部放在一个文档中。与其他类似项目不同,它是开源的,欢迎所有开发人员贡献。并且它支持 Python,这是一种深受科学家欢迎的编程语言。 2014 年,IPython 进化为 Jupyter,支持约 100 种语言,让用户可以轻松探索远程超级计算机上的数据。

对于数据科学家来说,Jupyter 实际上已经成为一种标准。 2018 年,GitHub 代码共享平台上有 250 万个 Jupyter notebook;今天有近 1000 万个,包括 2016 年发现引力波的代码和 2019 年第一张黑洞照片。

有两种类型的人工智能 (AI):一种使用书面规则,另一种允许计算机通过模拟大脑的神经结构来“学习”。长期以来,人工智能研究人员认为后一种人工智能是行不通的。但在 2012 年,著名计算机科学家 Geoffrey Hinton 的两名研究生 Alex Krizhevsky 和 ​​Ilya Sutskever 证明事实并非如此。

他们基于深度学习的神经网络算法设计了AlexNet,并在2012年参加了ImageNet大规模视觉识别挑战赛。研究人员将使用包含100万张日常物体图像的数据库来训练AI,然后测试生成的AI将算法与另一个独立的图像集进行比较,最后评估算法对图像的正确分类率。当时最好的算法错误分类了大约 1/4 的图像,而 AlexNet 基本上将错误率降低了近一半,降至约 16%。

AlexNet 在 2012 年的成功归功于三个因素:足够大的训练数据集、出色的编程和 GPU 的强大功能,尽管后者实际上是为了提高计算机图形性能。但研究人员利用这一点将算法的速度提高了 30 倍。但这还不够,算法真正的突破其实发生在三年前。就在那时,欣顿的实验室创建了一个神经网络,可以比经过数十年改进的传统人工智能更准确地识别语音。虽然只是轻微的改进,但它标志着真正的技术突破。

这些成果预示着深度学习在各个领域的兴起。今天,我们的手机理解口头查询的能力和生物实验室中识别显微照片中细胞的图像分析工具都依赖于深度学习算法。 AlexNet 也因此成为改变科学和世界的工具之一。

参考:

[1]https://www.nature.com/articles/d41586-021-00075-2

[2]https://www.britannica.com/biography/Lewis-Fry-Richardson

[3]https://en.wikipedia.org/wiki/General_circulation_model