欢迎访问本站!

首页科技正文

新2会员网址(www.22223388.com):改变科学的十大编程软件|《自然》长文

admin2021-07-0570

2022世界杯比分

www.x2w99.com)实时更新发布最新最快最有效的2022世界杯比分资讯。

,

原文作者:Jeffrey M. Perkel

从Fortran到arXiv.org,盘算机程序和平台的提高,令生物学、天气科学与物理学突飞猛进。

在2019年,事宜视界望远镜向天下首次揭开了黑洞的神秘面纱。但我们看到的谁人发光环形黑洞图像并不是直接拍摄获得的,而是行使来自于美国、墨西哥、智利、西班牙和南极的射电望远镜所捕捉的数据,通过庞大的数学变换和盘算处置而获得的[1]。在宣布效果的同时,该团队也公然了实现这一突破性成就的代码,使得科学界详细明白实在现历程,并以此为基础更深入地研究。

从天文学到动物学,这样的研究模式在各个学科中越来越趋于普遍:在现代每一项重大科学发现的背后,总有盘算机的身影。加州斯坦福大学的盘算生物学家Michael Levitt由于在化学结构建模的盘算战略方面做出的卓越孝顺而分享了2013年的诺贝尔化学奖,他提及自己在1967年刚最先这项事情时,实验室电脑的内存和盘算性能只有不到现在条记本电脑的万分之一。他说:“虽然我们现在已经掌握了壮大的盘算资源,但思索的主要性并没有丝毫削弱。”

这就需要科学家兼程序员。若是没有可以处置研究问题的软件,没有知道若何编写并使用程序的研究职员,再壮大的电脑也会显得毫无用处。Neil Chue Hong是总部位于英国爱丁堡的软件可连续性研究所的认真人,该研究所主要致力于连续改善科学软件的研发和使用,Neil说:“现在的科学研究基本都市运用软件来举行,它们已经渗透到了研究的方方面面。”

图 | Pawe Jo��ca

科学发现理应是媒体的头版头条。但本期《自然》中,我们想要和读者一起聊聊这些发现背后的故事,一起回首已往几十年来极大地改变研究历程的要害代码

只管这样的列表并非绝对,但在已往一年里我们调研了大量研究职员,汇总了差异领域内对科研带来伟大影响的的十大软件工具。

编程语言先驱者:Fortran编译器 (1957)

第一台现代电子盘算机对于用户并不友好。编程需要通过手动逐个链接电路来完成。虽然随后的机械语言和汇编语言迅速生长,可以让用户通过代码举行编程,但依然需要对盘算机系统结构有着深入的明白,这阻碍了许多科学家使用盘算机的效率。

随着20世纪50年月符号化语言的生长,效率逐步提高,尤其是“公式翻译”语言Fortran的泛起改变了这一事态。Fortran语言是由John Backus与其在加州圣何塞的IBM团队开发的。用户可以行使Fortran中人类可读的指令来编程,例如编写x=3+5的盘算公式,随后编译器就可以将其转化为快速高效的机械代码。

这台CDC 3600盘算机于1963年送达位于科罗拉多州博尔德的国家大气研究中央,它可以在Fortran编译器的辅助下举行编程。| 大气科学研究大学同盟/ Science Photo Library

但编程仍然不是一件容易的事情:早期的程序员使用打孔卡来输入代码,稍微庞大点的模拟就需要上万张打孔卡来编写程序。但新泽西普林斯顿大学的天气学家Syukuro Manabe示意,Fortran为非盘算机科学家的研究者提供了一种高效的编程手段。“我们第一次可以自己对盘算机举行编程”,Manabe说。他和同事们行使Fortran开发了第一个乐成的天气模子。

现在,Fortran已经进入了第八个十年,它依旧普遍应用于气象建模、流体力学、盘算化学和其他需要庞大线性代数与壮大盘算能力的学科。其天生的代码运算高效,依然有很大比例的程序员会使用Fortran。中古Fortran代码库仍然活跃在全球各地的超级盘算机和实验室中。“以前的程序员清晰自己在做什么,”加州蒙特雷水师研究生院的应用数学家和天气建模专家Frank Giraldo说,“他们异常注重内存,由于以前的内存异常小。”

信号处置器:快速傅立叶变换 (1965)

当射电天文学家扫视天空时,他们会捕捉到一系列随时间转变的庞大信号。为了明白这些电波的本质,他们需要看到这些信号转成频率方程是什么样的。研究职员可以使用一种被称为傅立叶变换的数学历程来完成这一历程,问题在于它的效率很低,一个N巨细的数据集需要N2的盘算量。

但在1965年,美国数学家James Cooley和John Tukey发现晰一种方式来加速这一历程。使用递归,一种“分而治之”的编程手段(算法可以重复挪用自身),快速傅立叶变换(FFT)可以将傅立叶变换的盘算降低到Nlog2(N)步。盘算速率随着数据集的增大而增添,1000个数据点的情形下速率提升100倍,而对于一百万个点的情形则可以提速5万倍。

英国牛津大学的数学家Nick Trefethen说,这实在是一次重复发现――德国数学家高斯(Carl Friedrich Gauss)在1805年曾提出过这个算法,但他并未揭晓。然而,Cooley和Tukey为数字信号处置、图像剖析、结构生物学等等领域打开了广漠的应用空间。Trefethen说:“这确实是应用数学和工程领域的重大事宜。” FFT已经在代码中实现了许多次,最为著名的是FFTW(西方最快的傅立叶变换)。

西澳大利亚无线电天文望远镜默奇森宽场阵列(Murchison Widefield Array)的夜景,该望远镜使用快速傅立叶变换网络数据。| John Gold *** ith/Celestial Visions

加州劳伦斯伯克利国家实验室分子生物和集成生物成像部门的认真人Paul Adams回忆在1995年优化细菌卵白GroEL结构时[2],纵然使用了快速傅立叶变换和超级盘算机,盘算也花费了大量的时间。他说:“若是没有FFT,我甚至都不知道完成这些盘算是否现实,可能会永远做不完。”

分子编目:生物学数据库 (1965)

数据库是现代科学研究不能或缺的部门,但人们很容易忽略它是由软件驱动的。在已往几十年里,这些资源获得了大规模的扩充,并改变了许多领域的研究方式,但或许没有哪个领域能像生物领域一样泛起了排山倒海的转变。

当今大规模的基因和卵白质数据库,源于马里兰国家生物研究基金会的生物信息学先驱Margaret Dayhoff的事情。20世纪60年月初,生物学家们致力于揭开卵白质的氨基酸序列结构,Dayhoff最先整理这些信息,寻找差异物种间演化关系的线索。她与三位互助者合著的《卵白质序列和结构图集》(Atlas of Protein Sequence and Structure)于1965年首次揭晓,形貌了那时已知的65种卵白质序列、结构及其相似性。历史学家Bruno Strasser在2010年写道[3],这个数据库是第一个不局限于详细研究问题的数据集。Dayhoff通过打卡纸带编码了这些数据,使得这一数据集具有可拓展和可搜索的潜力。

在这一研究后之后,其他的盘算生物学数据库最先不停泛起。于1971年降生的卵白质三维结构数据库(The Protein Data Bank)现在已经席卷了跨越17万种大分子结构的详情。加州大学圣迭戈分校的演化生物学家Russell Doolittle于1981年确立了另一个名为Newat的卵白质数据库。随后于1982年,降生了厥后的国际核酸序列数据库(GenBank),GenBank的DNA档案是由美国国立卫生研究院(NIH)维护的。

卵白质数据银行中包罗了跨越17万种分子结构,包罗这个连系RNA和卵白质合成历程的细菌表达组。| David S. Goodsell and RCSB PDB (CC BY 4.0)

这些数据库在1983年7月证实晰自己的伟大价值,那时由伦敦帝国癌症研究所的卵白质生物化学家Michael Waterfield和Doolittle向导的两个团队,划分自力讲述了一种人类特定生长因子与可使猴子患上癌症的病毒卵白质序列间的相似性。观察效果提出了一种通过模拟生长因子的病毒致癌机理,病毒可以诱导细胞不受调控地快速增生[4]。美国国家生物信息研究中央(NCBI)前主任James Ostell以为:“这让生物学家们意识到,能行使盘算机和统计学举行研究。通过对照卵白质序列,我们能加深对癌症的明白。”

此外Ostell示意,这一发现标志着“客观生物学的问世”。除了设计实验验证假设,研究职员还可以通过挖掘公然数据库,从中发现数据网络者可能从未想过的联系。随着越来越多的数据库被链接在一起,这一研究范式的伟大潜力急剧增进。NCBI的程序员在1991年开发了一款可以在DNA、卵白质和文献中自由导航的工具Entrez实现了这一构想。

马里兰贝赛达NCBI的认真人Stephen Sherry曾在研究生阶段使用Entrez,他说:“我还记得那时感受像邪术一样神奇。”

天气预告向导者:大气环流模式(1969)

在二战竣事时,盘算机先驱冯・诺伊曼(John von Neumann)将战时用于盘算弹道盘算和武器设计的手艺转向天气预告的研究。Manabe说:“在那之前,天气预告都是依赖履历的,而冯・诺伊曼的团队则希望行使物理定律来实现数值天气预告。”

Venkatramani Balaji是普林斯顿的美国国家海洋与大气治理局地球物理流体动力学实验室的建模系统认真人,他说,形貌这些历程的方程已经存在了几十年,但早期的气象学家不知道该若何解这些方程。由于这些方程的盘算需要给定当前条件,盘算其在短期内随时间的转变,然后重复,这一历程十分耗时,而且盘算的速率赶不上天气的转变。1922年数学家Lewis Fry Richardson破费了几个月的时间盘算了德国慕尼黑天气的6小时预告,但据纪录来看预告的效果“极禁绝确” ,还泛起了“在任何已知陆面情形下都不能能发生”的展望效果。盘算机的泛起让问题变得容易了许多。

20世纪40年月末,冯・诺伊曼在普林斯顿先进研究院确立了他的天气预告团队。第二支团队于1955年在地球物理流体动力学实验室睁开对于“无限预告”(天气模子)的研究事情。

Manabe于1958年加入了天气建模团队致力于大气模子的研究。他的同事Kirk Bryan则专注于海洋。1969年他们将两者乐成连系起来,《自然》于2006称之为科学盘算中的“里程碑”。

现在的气象模子已经可以将地表划分为25*25km的区域,大气也被分为了几十个条理举行研究。昔时Manabe和Bryan连系海洋-大气模子[5]使用的是500平方公里的区域和9个条理,而且只笼罩了1/6的地球外面。但Balaji依旧以为,“这一模子是一项伟大的事情”,使得团队第一次可以在盘算机中模拟二氧化碳水平升高对天气的影响。

数值盘算加速器:BLAS(1979)

科学盘算通常行使向量和矩阵举行相对的简朴数学运算,但盘算量照样很大。而在上世纪70年月,科学界缺乏一套通用的盘算工具来执行这些运算。以是科学界的程序员们要花时间编写完成基本数学运算的代码,而无法专心研究科学问题。

然则编程天下需要一个尺度。于是,1979年,泛起了基础线性代数程序集(Basic Linear Algebra Subprograms, BLAS)[6]。这一尺度一直生长到了1990年,为向量和厥后的矩阵数学界说了一系列基本程序。

田纳西大学的盘算机科学家Jack Dongarra以为,BLAS现实上将庞大的矩阵和向量运算简化成类似加减法一样基础的简朴盘算单元。他是BLAS开发团队的一员。

Cray-1超算:在1979年引入BLAS编程工具前,在加利福尼亚劳伦斯・利弗莫尔国家实验室里的Cray-1超级盘算机等机械上事情的研究职员,没有线性代数尺度。|Science History Images/Alamy

德克萨斯大学奥斯丁分校的盘算机科学家Robert van de Geijn说,BLAS“可能是科学盘算领域界说的最主要接口”。除了为常用函数提供尺度命名,研究职员还可以确保基于BLAS的代码可以在任何盘算机上以同样方式运行。这一尺度同时也使得盘算机产商可以不停优化BLAS,幸亏他们的硬件上快速运行。

40多年来,BLAS已经成为了科学盘算手艺栈的焦点,使得科学盘算软件得以连续生长。乔治华盛顿大学的机械与航空工程师Lorena Barba将它称为“代码五层结构内在的机制”。

Dongarra说:“它是盘算的基础结构。”

新2会员网址

新2会员网址(www.22223388.com)实时更新发布最新最快最有效的新2网址和新2最新网址,包括新2手机网址,新2备用网址,皇冠最新网址,新2足球网址,新2网址大全。

必不能少的显微镜:NIH Image(1987)

在上世纪80年月早期,程序员Wayne Ra *** and曾在马里兰贝塞斯达的美国国立卫生研究院(NIH)脑成像实验室事情。其团队有一个可以对X光胶片举行数字化处置,但没设施在盘算机上剖析和显示。Ra *** and编写了一个程序来实现这一功效。

该程序是专门针对价值15万美元的PDP-11微型盘算机设计的(安装在机架上的、绝不是小我私人用的那种电脑)。随后在1987年,苹果刊行了操作更友好价钱更实惠的Macintosh II。Ra *** an说:“我以为这显然是更好的实验室图像剖析系统。”于是他将软件转移到了新的平台上(Macintosh II)并重新命名,从而引领了图像剖析生态系统的生长。

NIH Image及厥后继者可以让研究职员在任何盘算机上查看和量化任何图像。这一软件家族包罗了Ra *** and为Windows和Linux用户写的Java版本软件ImageJ;另有Fiji,德国马克斯・普朗克研究所分子细胞生物学和遗传研究所Pavel Tomancak开发的、包罗要害插件的ImageJ。在麻省Broad 研究所成像平台事情的盘算生物学家Beth Cimini说:“ImageJ无疑是我们拥有最基础的软件工具,我还从未见过哪个要用显微镜的生物学家不用ImageJ或者Fiji的。”

借助插件ImageJ工具可以自动识别显微图像中的细胞核。| Ignacio Arganda-Carreras/ImageJ

Ra *** and以为部门缘故原由是这些工具是免费的,但威斯康辛大学的生物医学工程师Kevin Eliceiri以为,更主要的是它们让用户能够简朴凭证自己需求定制工具,他的团队在Ra *** and退休后向导着ImageJ的研发。ImageJ具有极简的用户界面,自九十年月以来就没有太大的改变。但这一工具却由于内置宏纪录器(允许用户保留鼠标点击和菜单选择的操作序列来纪录事情流)、壮大的文件花样兼容性和天真的插件架构而拥有了险些无限的拓展性。Eliceiri团队中的编程认真人Curtis Rueden说,有数百人在上传插件。这些不停增添的插件极大地拓展了研究职员可用的工具集,包罗从跟踪视频中的工具到自动识别细胞等厚实的功效。

“这一软件的目的不是成为一切或者终结一切,而是服务于用户。”Eliceiri说,“与其他程序差异,ImageJ可以是用户想要的任何容貌。”

序列检索器:BLAST(1990)

一个软件名从名词酿成动词,这真是恰如其分地说明晰其文化主要性。在搜索界有Google,而对于基因领域来说,人们则会想起BLAST。

演化转变以替换、敲除、空缺和重排等形式刻在分子序列上。通过搜索序列(稀奇是卵白质)之间的相似结构,研究职员能发现其间的演化关系,更深入明白基因的功效。实现这一想法的要害在于,在迅速膨胀的分子信息数据库中举行快速和周全的剖析。

1978年Dayhoff为这个拼图补上了要害的一块。她提出了一种称为“可接受点突变”矩阵(PAM矩阵)的形貌方式,使得研究职员可以通过序列间的相似性和演化距离来为两种卵白质的相关性打分

1985年,弗吉尼亚大学的William Pearson和NCBI的David Lipman,在Dayhoff矩阵头脑的基础上提出了一种更为高速的算法FASTP。

几年后,Lipman与NCBI的Warren Gish和Stephen Altschul,宾夕法尼亚州立大学的Webb Miller和亚利桑那大学的Gene Myers配合研发了更为壮大的版本:BLAST(the Basic Local Alignment Search Tool)。在1990年宣布时,BLAST连系了可处置迅速增进数据库的快速搜索,和识别到较远演化距离的匹配的能力。与此同时,它还可以盘算出这些匹配有多大可能性是有时发生的。

Altschul说效果惊人地快:“只需要抿一口咖啡的时间就能完成庞大的搜索!”但更主要的是这一工具很易用。在通过邮件更新数据库的时代,Gish确立了电邮更新系统,并在厥后构建了基于网络的架构,使得用户可以远程接入NCBI的盘算机举行搜索,保证了数据的实时性。

上图中将数据制成表格并可视化的代码可以在github上获取:https://github.com/jperkel/nature_code_survey

哈佛大学盘算生物学家Sean Eddy以为,这一系统为那时处于萌芽状态的基因组生物学提供了变化性的工具,通过相关基因的特征来研究未知基因的特征。对于天下各地的基因测序实验室,它提供了一个新词:“这就是那种会流酿成一个动词的名词,”Eddy说,“你会说你正在Blasting自己的序列。”

预印本发电厂:arXiv.org(1991)

上世纪80年月末期高能物理学家通常会将论文副本寄给偕行,征询意见,同时也是一种礼仪――不外仅发给少数几小我私人。“学术圈层级较低的人们,会仰赖科研绅士们的恩惠,而富有才气和理想却不在精英机构中的研究职员却经常被清扫在外”,物理学家Paul Ginsparg在2011年写道[7]。

1991年,在新墨西哥州洛斯阿莫斯实验室事情的Ginsparg编写了一个电子邮件自动回复系统以推动这一领域的公生平长。订阅者将会收到逐日的预印本论文,每篇文章都市被分配一个牢靠的文章识别号。只需要一封邮件,天下局限内的用户都可以从实验室盘算机系统提交或收到论文、获取最新论文的清单,或通过题目和作者举行搜索。

Ginsparg最早希望将文章保留3个月,而且仅限于高能物理领域。但在同事的劝说下,最先无限期保留文章。他说:“那是从电子通告栏太过到数据库存档的要害时刻。”随后,这一系统的生久远远超出Ginsparg自己的学科,他在1993年将这一系统迁徙到广域网上,并于1998年将域名修改为现在的arXiv.org.。

现在三十年已往了,arXiv已经累计保留了跨越一百八十万篇预印本论文,而且所有免费开放。同时每个月吸引一万五千次提交和跨越三万万次下载。《自然-光子学》的编辑在十年前[8]网站确立20周年之际写到:“不难看出arXiv为何云云受迎接,这一系统为研究职员提供了便捷的方式来符号他们的事情和发现时间,阻止了传统偕行评议历程所需的事务和时长。

图 | arXiv.org

该网站的乐成促进了包罗生物、医学、社会科学和其他姊妹领域预印本网站的蓬勃生长,到今天,从SARS-CoV-2病毒研究已宣布的数万篇预印本论文中,可见其影响力。

Ginsparg说:“30年前这种方式在粒子物理学界以外还被视为异途,很喜悦看到人们现在已经把它视作寻常。从这个角度来说,它就像一个乐成的科研项目。”

数据探索利器:IPython Notebook (2011)

2001年,当Fernando Pérez照样“寻找拖延症”课题的研究生时,他决议着手开发一个Python的焦点组件。

Python是一种注释型语言,这意味着它需要逐行执行。程序员通常使用一种称为REPL(read�Cevaluate�Cprint loop,一种交互式编程环境)的盘算机挪用-响应工具来编程,并使用注释器执行代码。REPL可以用于迅速的探索和迭代开发,但Pérez以为Python并不是为科学构建的语言,好比说不能便捷地加载代码块或保持数据可视化开发。以是他写了自己的版本。

这作育了IPython,一款“交互式”Python注释器。Pérez于2001年12月宣布了这一共259行的版本。十年后,Pérez与物理学家Brian Granger、数学家Evan Patterson互助,将这一工具移植到了浏览器中,开发出了IPython Notebook,掀起了数据科学的革命浪潮。

与其他盘算条记本一样,IPython Notebook在单个文件中融合了代码、效果、图形界面和文本内容。但与其他项目差其余是,IPython Notebook是开源的,宽大开发者社区都能对其做出孝顺。同时它还支持科学家们常用的语言Python。在2014年,这一项目演酿成了Jupyter,支持跨越一百种语言,并允许用户在远程超级盘算机上像使用自己电脑一样平常便捷地探索数据举行剖析

“对于数据科学家来说,Jupyter已经成为了现实的尺度。” 《自然》2018年写道[9]。那时在代码共享平台GitHub上已经有跨越250万份Jupyter条记本了。现在则快要1000万份,包罗2016年发现引力波和2019年为黑洞成像的代码。“我们为这一项目作出的细小事情为带来了伟大的回报。”Pérez说。

高速学习机:AlexNet(2012)

一直以来人工智能(AI)存在两种差其余实现形式。一种使用编码规则,而另一种则使用盘算机通过模拟大脑的神经结构去“学习”。加拿大多伦多大学的盘算机科学家Geoffrey Hinton说,几十年来AI研究者们都以为后一种方式是“无稽之谈”。直到2012年,Hinton的研究生Alex Krizhevsky和Ilya Sutskever在证实晰并非云云。

ImageNet是一项年度竞赛,研究职员们需要在一百万张一样平常工具的数据集上训练AI,并在另一个自力的图像数据集上举行测试。那时,最好的算法会识别错也许1/4的图像,Hinton说。Krizhevsky和Sutskever提出的AlexNet是一种基于神经网络的“深度学习”算法,将错误降低到了16%[10]。“我们基本上将错误率减半,险些有一半。”Hinton弥补道。

Hinton以为其团队在2012年的乐成反映了足够大的训练数据集、优异的编程和新泛起壮大算力GPU(一种最早设计用于加速盘算机视频性能的处置器)的连系迸发出的壮大潜力。“突然之间,我们可以以30倍的速率运行算法,”他说,“或者在30倍的数据上举行学习。”Hinton说,算法上真正的突破其着实三年前就已经实现,那时他实验室缔造的神经网络已经可以实现比经由几十年优化的传统AI更为准确的语音识别了。“虽然只(比传统AI)好了一点点,”Hinton说,“但这已经预兆了未来。”

这些功效预示着深度学习在实验室、工业界的崛起。这就是为什么手机可以明白语音查询、图像剖析工具可以迅速从光学显微镜图像中挑选出细胞。同时这也是AlexNet可以从基本上改变科学,并与众多主要的盘算机工具改变天下的缘故原由所在。

参考文献

[1].The Event Horizon Telescope Collaboration et al. Astrophys. J. Lett. 875, L1 (2019).

[2]. Braig, K., Adams, P. D. & Brünger, A. T. Nature Struct. Biol.2, 1083�C1094 (1995).

[3]. Strasser, B. J. J. Hist. Biol.43, 623�C660 (2010).

[4]. Newmark, P. Nature 304, 108 (1983).

[5]. Manabe, S. & Bryan, K. J. Atmos. Sci. 26, 786�C789 (1969).

[6]. Lawson, C. L., Hanson, R. J., Kincaid, D. R. & Krogh, F. T. ACM Trans. Math. Software5, 308�C323 (1979).

[7]. Ginsparg, P. Preprint at http://arxiv.org/abs/1108.2700 (2011).

[8]. Nature Photon. 6, 1 (2012).

[9]. Nature 563, 145�C146 (2018).

[10]. Krizhevsky, A., Sutskever, I. & Hinton, G. E. in Proc. 25th Int. Conf. Neural Information Processing Systems (eds Pereira, F., Burges, C. J. C., Bottou, L. & Weinberger, K. O.) 1097�C1105 (Curran Associates, 2012).

原文以Ten computer codes that transformed science题目揭晓在2021年1月20日的《自然》的新闻特写版块上。

版权声明:

2021 Springer Nature Limited. All Rights Reserved

网友评论