2019年,事件视界望远镜拍摄了第一张人类黑洞照片这张带有明亮光晕的图像不是普通的照片,而是由射电望远镜捕捉到的数据通过算法合成的,相关的编程代码也在后面公布利用计算机编程合成图像已经成为一种越来越普遍的模式
从天文学到生物学,现代科学的每一个重大发现背后,都有一台计算机可是,计算机不能取代人类的思维如果没有能够解决科学问题的软件和知道如何编写和使用软件的研究人员,即使是最强大的计算机也将毫无用处如今,这些功能强大的软件已经渗透到科研的方方面面
此前,《自然》杂志评选出了10个对科学界有重大影响的软件工具你用过或者正在用的是哪一款
第一台现代计算机不容易操作那时候编程真的要手动编程,研究人员需要用电线把一排排电路连接起来后来,伴随着机器语言和汇编语言的出现,用户可以用代码编写计算机程序,但前提是需要对计算机体系结构有深刻的理解,这是很多科学家无法做到的
20世纪50年代,伴随着符号语言的逐渐发展,这种情况开始改变特别是出现了由IBM的工程师约翰·巴科斯开发的公式翻译语言Fortran使用Fortran语言,用户可以使用人类可读的指令来编写计算机程序编译器会将这些指令转换成快速高效的机器代码
可是,即使在Fortran发明之后,编程仍然不是一件容易的事情那时候没有键盘和屏幕,程序员必须把代码记录在穿孔卡片上一个复杂的模拟可能需要成千上万张穿孔卡片即便如此,Fortran还是让编程变得不再那么遥远,很多非计算机科学家可以自己编写代码来解决自己领域的科学问题
如今,Fortran已经走过了60多年的历程,仍然广泛应用于气候建模,流体力学,计算化学等诸多领域由于Fortran运行速度快,占用内存少,因此它可以在任何涉及复杂线性代数并需要强大的计算机来快速处理数字的学科中找到那些古老的代码仍然活跃在世界各地的实验室和超级计算机中
2.信号处理器:快速傅立叶变换。
当射电天文学家巡视天空时,他们将捕捉到随时间变化的复杂信号为了理解这些无线电波的本质,他们需要了解信号如何伴随着频率的变化而变化傅立叶变换可以将信号从时间的函数转换成频率的函数
1965年,美国数学家詹姆斯·库利和约翰·图基提出了快速傅立叶变换的方法来加速这一过程利用FFT的分而治之策略,让一个函数反复调用自己,从而将傅里叶变换的计算问题简化为N log2步n越大,速度越明显对于1000个数据,速度提升约100倍,对于100万的数据,速度可以提升5万倍左右
Murchison宽视场阵列是一个位于西澳大利亚的射电望远镜,它使用快速傅立叶变换来处理数据。
事实上,德国数学家高斯在1805年就发明了FFT,但从未发表过库利和图基重新发现了这种方法,开始了FFT在数字信号处理,图像分析,结构生物学等领域的应用在很多人看来,这是应用数学和工程领域最伟大的发明之一
美国劳伦斯柏克莱国家实验室的保罗·亚当斯回忆说,他在1995年分析蛋白质GroEL的结构时,即使使用了FFT和超级计算机,计算过程仍然需要几天时间。"如果没有FFT,很难想象要花多长时间才能完成."
3.分子编目:生物学数据库
如今,数据库已经成为科学研究中不可或缺的一部分,以至于人们很容易忽略数据库是由软件驱动的这一事实在过去的几十年里,数据库的规模迅速扩大,影响了很多领域,但恐怕没有哪个领域的变化像生物学那么大
数字生物数据库紧随其后1971年,蛋白质数据库投入使用,现在它详细记录了超过17万个大分子结构1982年,美国国立卫生研究院发布了GenBank数据库,为DNA及其编码的蛋白质建立了档案
这些资源很快显示出它们的价值1983年,两个独立的团队注意到,人体内的一种特定生长因子在序列上与蛋白质非常相似,蛋白质是一种导致猴子癌症的病毒这一发现揭示了病毒致癌的机制是通过模仿生长因子来诱导细胞不受控制地生长
因为这个发现,很多对计算机和统计学不感兴趣的生物学家突然意识到,他们可以通过序列比对了解癌症的一些事情研究人员也受到启发:除了设计实验来测试特定的假设,他们还可以挖掘那些开放的数据库,找出人们从未想到的联系
当不同的数据库链接在一起时,这种力量将大大增加例如,一个名为Entrez的联合搜索引擎可以帮助研究人员在DNA,蛋白质和文献中自由导航
大卫·古德塞尔和RCSB·PD B4,天气预报:大气环流模式
二战末期,计算机先驱冯·诺依曼开始将几年前用于计算弹道轨迹和武器设计的计算机转向天气预测的问题在此之前,人们只能根据经验和直觉进行天气预报,而冯·诺依曼的团队则试图根据物理定律,通过数值计算来预测天气
其实很多年前科学家就熟悉相关的数学方程了,但是早期的气象学家在解决实际问题时还是手足无措,因为天气变幻莫测,远非数学家的计算能力可比!1922年,英国物理学家刘易斯·弗莱·理查森首次发表了用数学模型预测天气的工作要预测未来的天气,就要输入当前的大气状况,计算它们在短时间内会如何变化,不断重复——这个过程非常耗时他需要几个月的时间来预测未来几个小时的天气状况,而且是不可靠的,甚至是在任何已知的陆地条件下都不可能发生的预测
计算机的出现使这一数学应用真正成为可能20世纪40年代末,冯·诺依曼建立了一个天气预报小组1955年,第二个团队,地球物理流体动力学实验室,也开始了气候建模之后,他们首次成功预测了大气环流模式到1969年,他们已经成功地结合了大气和海洋模型
当时的GCM模型比较粗糙,只覆盖了地球表面的六分之一它被分成了500平方公里的方块,大气层只分了九层今天的气象模型会把地球表面分成25×25公里的正方形,把大气层分成几十层尽管如此,这个模型在科学计算上创造了一个里程碑这是首次通过计算机测试二氧化碳含量上升对气候的影响
5.科学计算基础:BLAS
科学计算通常涉及相对简单的数学运算,如向量和矩阵,但在20世纪70年代之前,没有公认的计算工具来执行这些运算所以从事科学工作的程序员需要花费大量的时间设计代码,仅仅是为了做基本的数学运算,而不是着眼于整体的科学问题
编程领域需要的是一个标准1979年,这个标准出现了,它就是基本线性代数子程序库,简称BLASBLAS将矩阵和向量计算简化为加减等基本计算单元这个标准一直发展到1990年,定义了数十个向量和矩阵数学的基本子程序
BLAS可能是为科学计算定义的最重要的接口它为常见功能提供标准化名称,基于BLAS的代码在任何计算机上都以同样的方式工作,此外,标准的建立也使得计算机厂商能够优化BLAS,实现在不同硬件上的快速运行可以说BLAS为科学计算提供了一个基础
在1979年编程工具BLAS问世之前,在美国劳伦斯利弗莫尔国家实验室的超级计算机Cray—1上工作的研究人员还没有一个线性代数计算的标准。
在20世纪80年代初,美国国立卫生研究院的大脑成像实验室拥有一台扫描仪,可以将X射线数字化,但不能在计算机上显示或分析这些图像所以在这里工作的程序员Wayne Rasband写了一个程序来实现这个目标
起初,这个程序是专门为一台价值15万美元的PDP—11计算机设计的然后在1987年,苹果发布了Macintosh II,拉斯班德将软件移植到这个新平台上供个人使用,并建立了一个图像分析系统,即NIH Image
NIH Image的后继者包括ImageJ和Fiji研究人员可以在任何电脑上查看和分析图像,这已经成为生物学家的基本工具任何使用过显微镜的生物学家都会熟悉它们
ImageJ提供了一个看似简单极简的用户界面,自上世纪90年代以来几乎没有改变可是,这个工具实际上是无限可扩展的——它兼容多种文件格式,具有灵活的插件架构,并且具有宏记录器,可以记录鼠标操作以保存工作流人们设计了各种独特的插件,有些可以自动识别细胞,有些可以跟踪目标,用户可以根据自己的需求轻松个性化ImageJ工具
Ignacio Arganda—Carreras/Image J7,序列搜索:BLAST
说到搜索,我们会说去Google在遗传学中,科学家说要爆破某个分子序列把软件的名字改成动词,大概是其广泛使用的最好指标
进化带来的变化记录在分子序列中,如取代,缺失,重排等通过寻找分子序列之间的相似性,特别是蛋白质的氨基酸序列,研究人员可以发现它们的进化关系,并深入了解基因的功能可是,问题的关键是在迅速膨胀的分子信息数据库中快速而全面地做到这一点
生物信息学的先驱玛格丽特·德霍夫在1978年做出了关键贡献她设计了一个PAM矩阵,其中每个格子点的值是一个氨基酸被另一个取代的概率这使得研究人员不仅可以根据它们分子序列的相似性,还可以根据它们之间的进化距离,来对这两种蛋白质物种之间的遗传关系进行评分
1985年,人们进一步将PAM矩阵和快速搜索能力结合起来,引入了一种算法,称为FASTP几年后,更强大的爆炸诞生并于1990年发布
BLAST不仅可以快速搜索日益庞大的数据库,还可以找到那些在进化关系上距离较远的匹配,并计算出这些匹配偶然发生的概率它既快又容易使用BLAST是当时处于萌芽阶段的基因组生物学的革命性工具,科学家可以根据相关基因的功能发现未知基因可能发挥什么作用
在20世纪80年代末,高能物理学家通常会将提交的论文副本邮寄给同行进行评论,这也是出于礼貌,但这往往仅限于少数人处于食物链较低位置的科学家不得不依靠大牛们的慷慨解囊,而许多同样雄心勃勃的研究人员却往往因为不是顶级机构出身而被排除在圈子之外
到今年,arXiv已经成立30年,预印本约180万份,全部免费提供,每月吸引超过15000次投稿和3000万次下载为科研人员展示学术成果提供了快速便捷的途径,从而避免了传统同行评议期刊的时间和麻烦
arXiv的成功催生了其他预印本网站的繁荣,包括生物学,医学,社会学等诸多学科如今,关于新冠肺炎病毒的预印本已经出版了数万份,我们可以看到它的影响力这种在30年前被认为是粒子物理领域外的异端的方法,早已被视为自然存在
9.数据浏览器:IPython笔记本
Python是一种解释性语言,程序会直接逐行运行代码程序员可以使用一种叫做读取—评估—输出循环的交互式工具,在这种工具中,代码被输入,然后由一个叫做解释器的程序执行REPL允许快速探索和迭代,但Python的REPL不适合科学计算例如,它不允许用户轻松预加载代码模块或打开数据可视化
所以在2001年,当时还是研究生的费尔南多·佩雷斯写了他自己的版本,这就是IPython,一个交互式Python解释器,总共有259行代码十年后,IPython被迁移到浏览器,成为了IPython笔记本,开启了一场数据科学革命
与其他类似项目不同的是,它是开源的,欢迎所有开发者贡献它支持Python,一种受科学家欢迎的编程语言2014年,IPython发展成为Jupyter,支持约100种语言,允许用户方便地探索远程超级计算机上的数据
Jupyter实际上已经成为数据科学家的标准2018年,GitHub代码共享平台上有250万台Jupyter笔记本,如今,包括2016年发现引力波,2019年拍摄第一张黑洞照片的代码在内,已有近千万张
10.快速学习者:AlexNet
人工智能有两种:一种是使用书面规则,另一种是通过模拟大脑的神经结构让计算机学习长期以来,人工智能研究人员认为后一种类型的人工智能不会起作用但在2012年,著名计算机科学家杰弗里·辛顿的两名研究生亚历克斯·克里热夫斯基和伊利亚·苏茨基弗证明事实并非如此
他们基于深度学习的神经网络算法设计了AlexNet,并参与了2012年的ImageNet大规模视觉识别挑战赛研究人员要用包含100万张日常物品图像的数据库来训练AI,然后用另一个独立的图像集来测试生成的AI算法,最后评估算法对图像分类的正确率当时最好的算法会误分类1/4左右的图像,AlexNet基本上把错误率减半到16%左右
Alex在2012年的成功要归功于三个因素:足够大的训练数据集,优秀的编程和GPU强大的功能,即使后者实际上是为了提高计算机图形性能可是,研究人员将算法的运行速度提高了30倍但这还不够算法真正的突破其实发生在三年前当时,Hinton Lab创造了一个神经网络,它可以比改进了几十年的传统AI更准确地识别语音虽然只是一点点进步,但标志着真正的技术突破
这些成果预示着深度学习在各个领域的兴起现在,我们的手机可以理解语音查询,生物实验室的图像分析工具可以识别显微照片中的细胞,这些都依赖于深度学习算法因此,AlexNet成为了改变科学和世界的工具之一
参考资料:
郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。