當前位置:股票大全官網 - 基金投資 - 《自然》選出了10個改變科學的計算機代碼項目。

《自然》選出了10個改變科學的計算機代碼項目。

從Fortran到arXiv.org,這些計算機代碼和平臺使生物學、氣候科學和物理學的發展達到了真正“千變萬化”的速度。

2019年,視界望遠鏡團隊讓世界第壹次看到了黑洞。然而,研究人員發布的這個發光環形物體的圖像並不是傳統的圖片,而是通過計算獲得的。利用美國、墨西哥、智利、西班牙和南極洲的射電望遠鏡獲得的數據,研究人員進行了數學變換,最終合成了這張標誌性的圖片。研究團隊還發布了用於實現這壹壯舉的編程代碼,並撰寫了壹篇文章記錄這壹發現,其他研究人員可以在此基礎上進壹步分析。

這種模式越來越普遍。從天文學到動物學,近代每壹個重大科學發現的背後,都有計算機的參與。美國斯坦福大學計算生物學家邁克爾·萊維特(Michael levitt)因“創建了復雜化學系統的多尺度模型”,與另外兩名研究人員分享了2013諾貝爾化學獎。他指出,今天的筆記本電腦的內存和時鐘速度是他在1967年開始獲獎時實驗室制造的電腦的10000倍。“我們今天確實有相當大的計算能力,”他說。“問題是我們還需要思考。”

如果沒有能夠解決研究問題的軟件和知道如何編寫和使用軟件的研究人員,壹臺計算機,無論多麽強大,都是無用的。今天的科學研究已經從根本上與計算機軟件聯系起來,計算機軟件已經滲透到研究工作的各個方面。近日,《自然》雜誌將目光轉向幕後,聚焦過去幾十年改變科學研究的關鍵計算機代碼,並列出了10個關鍵計算機項目。

這臺CDC 3600計算機於1963年交付給位於科羅拉多州博爾德的美國國家大氣研究中心,研究人員借助Fortran編譯器對其進行了編程。

語言的先驅:Fortran編譯器(1957)

第壹臺現代計算機不容易操作。當時的編程實際上是通過人工將導線連接成壹排排電路來實現的。後來出現了機器語言和匯編語言,讓用戶用代碼給計算機編程。然而,這兩種語言都需要對計算機體系結構有深刻的理解,這使得許多科學家很難掌握。

在20世紀50年代,隨著符號語言的發展,特別是Fortran,壹種由john balks和他在加州聖何塞的IBM團隊開發的公式翻譯語言,這種情況發生了變化。有了Fortran,用戶可以用人類可讀的指令編程,比如x = 3+5。然後編譯器將這些指令轉換成快速高效的機器代碼。

然而,這個過程仍然不容易。早期的程序員使用穿孔卡來輸入代碼,而復雜的模擬可能需要數萬張穿孔卡。盡管如此,新澤西州普林斯頓大學的氣候學家Syukuro Manabe指出,Fortran使得非計算機科學家也能編程。"這是我們第壹次能夠自己給計算機編程."他和他的同事使用這種語言開發的氣候模型是最早成功的模型之壹。

Fortran已經發展到第八個十年,現在仍然廣泛應用於氣候建模、流體力學、計算化學等學科,這些學科都涉及到復雜的線性代數,需要強大的計算機快速處理數字。Fortran生成代碼很快,現在還有很多程序員知道怎麽寫。古老的Fortran代碼庫仍然活躍在世界各地的實驗室和超級計算機中。“以前的程序員知道他們在做什麽,”弗蘭克·吉拉爾多說,他是美國海軍研究所的應用數學家和氣候建模師。"他們非常註重記憶,因為他們的記憶力很差."

信號處理器:快速傅立葉變換(1965)

當射電天文學家掃描天空時,他們捕捉到隨時間變化的復雜信號噪聲。為了理解這些無線電波的本質,他們需要看到這些信號作為頻率的函數是什麽樣的。壹種叫做“傅立葉變換”的數學過程可以幫助研究人員,但是效率很低。對於壹個大小為n的數據集,需要n 2次計算。

1965年,美國數學家詹姆斯·庫利和約翰·達克想出了壹個加速這個過程的方法。快速傅裏葉變換(FFT)通過遞歸(壹種通過將問題反復分解成同類子問題來求解問題的編程方法)將傅裏葉變換的計算問題簡化為N log2(N)步。隨著n的增加,速度也會增加。對於1000點,速度提升約100倍;1萬積分是5萬倍。

這個“發現”其實是壹個再發現,因為德國數學家高斯在1805年就研究過,但他從未發表過。詹姆斯·庫利和約翰·達克做到了。他們開啟了傅裏葉變換在數字信號處理、圖像分析、結構生物學等領域的應用,成為應用數學和工程領域的重大事件之壹。FFT已經在代碼中多次使用。近年來,壹種流行的方案是FFTW,它被認為是世界上最快的FFT。

加州勞倫斯伯克利國家實驗室分子生物物理學和集成生物成像系主任保羅·亞當斯(Paul adams)回憶說,他在1995年改進細菌蛋白質凝膠結構時,即使使用FFT和超級計算機,也需要“許多小時甚至幾天”才能計算出來。“如果我試圖在沒有FFT的情況下做到這壹點,我不知道如何在現實中做到這壹點,”他說。“可能需要很長時間。”

分子編目:生物數據庫(1965)

數據庫是當今科學研究不可或缺的壹部分,以至於很容易忘記它們也是由軟件驅動的。在過去的幾十年中,數據庫資源的規模迅速擴大,影響了許多領域,但也許沒有壹個領域的變化比生物學更劇烈。

蛋白質數據庫擁有超過654.38+0.7萬個文件的分子結構,包括這種細菌的“表達我”,其功能是結合RNA和蛋白質合成的過程。

如今,科學家使用的龐大基因組和蛋白質數據庫源於美國物理化學家瑪格麗特·德霍夫的工作,她也是生物信息學領域的先驅。20世紀60年代初,當生物學家試圖整理蛋白質的氨基酸序列時,德霍夫開始整理這些信息,以尋找不同物種之間進化關系的線索。1965年,她和三位合著者發表了蛋白質序列和結構圖譜,描述了當時已知的65種蛋白質的序列、結構和相似性。歷史學家布魯諾·斯特拉瑟(Bruno strasser)在2010中寫道,這是第壹個與特定研究問題無關的數據集。它將數據編碼在穿孔卡片中,這使得擴展數據庫和搜索成為可能。

其他“計算機化”的生物數據庫緊隨其後。蛋白質數據庫在1971投入使用,現在詳細記錄了17萬多個大分子結構。加州大學聖地亞哥分校的進化生物學家Russell doolittle在1981中創建了另壹個名為Newat的蛋白質數據庫。1982年,美國國立衛生研究院(NIH)與多家機構合作建立了GenBank數據庫,這是壹個開放訪問的DNA序列數據庫。

這些數據庫資源在7月1983證明了自己的存在價值。當時,由來自倫敦帝國癌癥研究基金會蛋白質的生物化學家邁克爾·沃特菲爾德(Michael Waterfield)領導的團隊和杜利特爾的團隊獨立報告了壹種特殊的人類生長因子序列和蛋白質(壹種導致猴子癌癥的病毒)之間的相似性。觀察結果顯示了壹種病毒誘導腫瘤的機制——通過模仿壹種生長因子,病毒可以誘導細胞不受控制的生長。美國國家生物技術信息中心(NCBI)前主任詹姆斯·奧斯特爾(James Austell)說:“這壹結果讓壹些對計算機和統計學不感興趣的生物學家靈光壹閃:我們可以通過比較序列來了解癌癥。”

奧斯特爾還表示,這壹發現標誌著“客觀生物學的到來”。除了設計實驗來驗證特定的假設,研究人員還可以挖掘公共數據集,以找到那些實際收集數據的人可能從未想到的聯系。當不同的數據集連接在壹起時,這種力量會急劇增加。比如NCBI程序員在1991通過Entrez實現了這壹點;Entrez是壹個允許研究人員自由搜索和比較DNA、蛋白質和文件的工具。

預報負責人:大氣環流模型(1969)

二戰末期,計算機先驅約翰·馮·諾依曼(john von neumann)開始將幾年前用於計算彈道軌跡和武器設計的計算機轉向天氣預測的問題。在此之前,“天氣預報只是經驗性的”,也就是用經驗和直覺來預測接下來會發生什麽。相比之下,馮·諾依曼的團隊“試圖根據物理定律進行數值天氣預測”。

位於新澤西州普林斯頓的美國國家海洋和大氣管理局(NOAA)地球物理流體動力學實驗室的建模系統部門負責人Venkatramani Balaji表示,幾十年來,人們已經熟悉了這些方程。但是早期的氣象學家實際上無法解決這些問題。要做到這壹點,妳需要輸入當前的條件,計算它們在短時間內將如何變化,並不斷重復。這個過程非常耗時,在天氣狀況真正出現之前,不可能完成數學運算。1922年,數學家Lewis Frye Richardson花了幾個月計算德國慕尼黑6小時預報。根據壹份歷史記錄,他的結果“極不準確”,包括“在任何已知的土地條件下都不可能”的預測。計算機使這個問題很容易解決。

20世紀40年代末,馮·諾依曼在普林斯頓高等研究院建立了壹個天氣預報小組。1955年,第二個團隊——地球物理流體動力學實驗室——開始了他所謂的“無限預測”,即氣候建模。

舒朗·真由在1958加入了氣候建模團隊,開始研究大氣模型。他的同事Kirk Bryan將這個模型應用於海洋研究。從65438到0969,他們成功地將兩者結合起來,並在2006年創造了《自然》雜誌所稱的科學計算的“裏程碑”。

今天的模型可以把地球表面分成25公裏和25公裏的正方形,把大氣層分成幾十層。相比之下,舒朗和布萊恩·馬科托(Bryan Makoto)的海洋-大氣聯合模型將該區域劃分為500平方公裏,並將大氣分為9個級別,僅覆蓋地球的六分之壹。盡管如此,Venkatramani Balaji表示,“這個模型非常好”,使研究團隊首次能夠通過計算機預測二氧化碳含量上升的影響。

數字計算器:BLAS(1979)

科學計算通常涉及使用向量和矩陣的相對簡單的數學運算,但是這樣的向量和矩陣太多了。然而,在20世紀70年代,沒有普遍認可的計算工具來執行這些操作。因此,從事科學工作的程序員會把時間花在設計高效的代碼來執行基本的數學運算,而不是專註於科學問題。

加利福尼亞州勞倫斯利弗莫爾國家實驗室的Cray-1超級計算機。在1979年BLAS編程工具問世之前,沒有線性代數標準可供研究人員在Cray-1超級計算機上工作。

編程世界需要壹個標準。1979年出現了這樣壹個標準:基礎線性代數子程序(BLAS)。這是壹個應用程序編程接口(API)標準,用於標準化基本線性代數運算(如向量或矩陣乘法)的數值庫的發布。標準已經發展到1990,為向量數學和後來的矩陣數學定義了幾十個基本例程。

田納西大學計算機科學家、BLAS開發團隊成員傑克·唐加拉(Jack Dongarra)表示,實際上,BLAS將矩陣和向量數學簡化成了像加減法壹樣的基本計算單元。

德克薩斯大學奧斯汀分校的計算機科學家羅伯特·範·德·蓋因(Robert van de Geijn)指出,BLAS“可能是為科學計算定義的最重要的接口”。除了為常用函數提供標準化名稱,研究人員還可以確保基於BLAS的代碼在任何計算機上都能以相同的方式工作。該標準還使計算機制造商能夠優化BLAS的安裝和激活,以在他們的硬件上實現快速操作。

40多年來,BLAS代表了科學計算棧的核心,也就是讓科學軟件運行的代碼。美國喬治·華盛頓大學的機械和航空航天工程師洛雷納·巴爾巴(Lorena Barba)稱之為“五層代碼中的機械”。傑克·唐加拉說,“它為我們的計算提供了基本結構。”

顯微鏡:NIH圖像(1987)

20世紀80年代初,程序員韋恩·拉斯班德(Wayne Rasband)在馬裏蘭州貝塞斯達的美國國立衛生研究院腦成像實驗室工作。實驗室有掃描儀,可以將x光數字化,但不能在電腦上顯示或分析。為此,拉斯班德寫了壹個程序。

這個程序是專門為價值15000美元的小型PDP-11計算機設計的。這臺電腦安裝在壹個架子上,顯然不適合個人使用。然後在1987年,蘋果發布了Macintosh II,這是壹個更加友好和實惠的選擇。拉斯班德說:“在我看來,這顯然是壹個更好的實驗室圖像分析系統。”他把軟件轉移到壹個新的平臺上,重新命名,建立了壹個圖像分析生態系統。

NIH Image及其後續版本使研究人員能夠在任何計算機上查看和量化幾乎任何圖像。軟件系列包括ImageJ,這是Rasband為Windows和Linux用戶編寫的基於Java的版本;以及Fiji,ImageJ的分布式版本,由德國德累斯頓馬克斯·普朗克分子細胞生物學和遺傳學研究所的Pavel Tomancak團隊開發,包括關鍵插件。“ImageJ無疑是我們擁有的最基本的工具,”布勞德研究所(由麻省理工學院和哈佛大學共同創立)成像平臺的計算生物學家貝絲·切米尼說。“我從未和壹位使用過顯微鏡,但從未使用過ImageJ或Fiji的生物學家交談過。”

拉斯班德說,部分原因可能是這些工具是免費的。但威斯康星大學麥迪遜分校的生物醫學工程師凱文·埃利塞利(Kevin Eliceiri)指出,另壹個原因是用戶可以根據自己的需求輕松定制工具。自從拉斯班德退休後,凱文·埃利塞利(Kevin Eliceiri)的團隊壹直在領導ImageJ的開發。ImageJ提供了壹個看似簡單極簡的用戶界面,自20世紀90年代以來基本保持不變。然而,由於其內置的宏記錄器(允許用戶通過記錄鼠標點擊和菜單選擇的序列來保存工作流)、廣泛的文件格式兼容性和靈活的插件架構,該工具具有無限的可擴展性。該團隊的編程總監柯蒂斯·魯登(Curtis Ruden)表示,“數百人”為ImageJ貢獻了插件。這些新添加的功能極大地擴展了研究人員的工具集,例如跟蹤視頻中的對象或自動識別細胞。

凱文·埃利塞利(Kevin Eliceiri)說:“這個程序的目的不是做所有事情或結束所有事情,而是服務於用戶的目標。與Photoshop和其他程序不同,ImageJ可以是妳想要的任何東西。"

序列搜索器:BLAST (1990)

也許沒有什麽比把軟件名變成動詞更能說明文化相關性了。說到搜索,妳會想到谷歌;說到遺傳學,研究人員馬上想到BLAST。

通過替換、刪除、缺失和重排,生物體將進化變化蝕刻成分子序列。找到序列之間的相似性——尤其是蛋白質之間的相似性——將使研究人員發現進化關系,並對基因功能有更深入的了解。在迅速膨脹的分子信息庫中,要做到快速準確並不容易。

瑪格麗特·德霍夫在1978中提供了關鍵進展。她設計了壹個“點接受突變”矩陣,使研究人員不僅可以根據它們的相似性,還可以根據它們的進化距離來評估兩個蛋白質序列的遺傳關系。

在1985中,弗吉尼亞大學的威廉·皮爾森和NCBI的大衛·利·普爾曼推出了FASTP,這是壹種結合了德霍夫矩陣和快速搜索能力的算法。

幾年後,Leapman與NCBI的Warren Kish和Stephen Atshur、賓夕法尼亞州立大學的Weber Miller和亞利桑那大學的Gene Myers壹起開發了壹種更強大的改進技術:blast(基本局部比對搜索工具)。BLAST發表於1990,結合了處理快速增長的數據庫所需的搜索速度和在進化中提取更遠距離匹配結果的能力。同時,該工具還可以計算這些匹配的概率。

Atshur說計算結果很快就出來了。"妳可以輸入搜索內容,喝壹口咖啡,搜索就完成了."但更重要的是,BLAST很好用。在壹個通過郵件更新數據庫的時代,沃倫·吉什建立了壹個電子郵件系統,後來又建立了壹個基於網絡的架構,允許用戶在NCBI的計算機上遠程運行搜索,從而確保搜索結果總是最新的。

哈佛大學計算生物學家肖恩·埃迪(Sean Eddie)表示,BLAST系統為當時處於起步階段的基因組生物學領域提供了壹個革命性的工具,即根據相關基因找出未知基因可能功能的方法。它也為全世界的測序實驗室提供了壹個新穎的動詞。“這是名詞變成動詞的許多例子之壹,”埃迪說。“妳會說妳要炸了妳的序列。”

預印本平臺:arXiv.org(1991年)

在20世紀80年代後期,高能物理學家經常將他們的論文和手稿的副本發給他們的同行征求意見——但只發給少數人。物理學家保羅·金斯伯格(Paul Kingspug)在2017中寫道:“處於食物鏈較低位置的人依賴於壹線研究人員的成就,而非精英機構中有抱負的研究人員往往處於特權圈之外。”

1991年,當時在新墨西哥州洛斯阿拉莫斯國家實驗室工作的金斯帕格編寫了壹個電子郵件自動回復程序,希望建立壹個公平的競爭環境。訂戶每天都會收到壹份預印本列表,每篇文章都與壹個文章標識符相關聯。只需壹封電子郵件,世界各地的用戶就可以從實驗室的計算機系統中提交或檢索論文,獲得新論文的列表,或者按作者或標題進行搜索。

金斯堡的計劃是把論文保留三個月,內容限定在高能物理領域。但是壹個同事勸他無限期保留這些文章。他說:“那壹刻,它從壹個公告欄變成了壹個檔案館。”於是,論文開始從各個領域潮水般湧來。1993年,金斯堡將這個系統移植到互聯網上,並在1998年將其命名為arXiv.org,沿用至今。

ArXiv成立近30年,預印本約654.38+0.8萬,全部免費提供,每月提交論文超過654.38+0.5萬篇,下載量3000萬次。10年前,《自然光子學》的編輯在評論arXiv成立20周年時寫道:“不難看出arXiv的服務為何如此受歡迎。這個系統允許研究人員快速方便地豎起旗幟展示他們的工作,同時避免了提交傳統同行評審期刊時的麻煩和時間成本。”

arXiv網站的成功也促進了生物學、醫學、社會學等學科類似預印本網站的繁榮。這種影響可以在今天已經出版的數萬份關於新冠肺炎的預印本中看到。“很高興看到壹種30年前在粒子物理學領域外被認為是異端的方法現在被普遍認為是平淡無奇和自然的,”金斯伯格說。"從這個意義上說,這就像壹個成功的研究項目."

數據瀏覽器:Ipython筆記本(年份2011)

2001年,費爾南多·佩雷斯(fernando peres)是壹名想“尋找拖延癥”的研究生,他決定采用Python的壹個核心組件。

Python是壹種解釋型語言,這意味著程序是逐行執行的。程序員可以使用壹種叫做“讀取-評估-打印循環”(簡稱REPL)的計算調用和響應工具,在裏面輸入代碼,然後解釋器執行代碼。REPL允許快速探索和叠代,但Perez指出Python的REPL不是為科學目的而建的。例如,它不允許用戶方便地預加載代碼模塊或打開數據可視化。因此,佩雷斯自己寫了另壹個版本。

結果是IPython的誕生,這是壹個“交互式”Python解釋器,由Perez於2006 5 4 38+0 6 5 4 38+2月推出。* *有259行代碼。10年後,佩雷斯與物理學家布萊恩·格蘭傑和數學家埃文·帕特森合作,將該工具遷移到網絡瀏覽器上,並推出了IPython Notebook,開啟了數據科學的壹場革命。

與其他計算筆記本壹樣,IPython Notebook將代碼、結果、圖形和文本合並到壹個文檔中。但與其他類似項目不同的是,IPython Notebook是開源的,並邀請了大量開發者社區參與。它支持Python,這是壹種科學家非常流行的語言。2014年,IPython演變為Jupyter,支持約100種語言,讓用戶可以像在自己的筆記本電腦上壹樣輕松地在遠程超級計算機上探索數據。

《自然》雜誌在2018中寫道:“對於數據科學家來說,Jupyter實際上已經成為壹種標準。”當時有250萬臺Jupyter筆記本;在GitHub代碼共享平臺上;如今,這個數字已經發展到10萬,在2016年發現引力波和2019年黑洞成像中發揮了重要作用。佩雷斯說:“我們為這些項目做出了小小的貢獻,這非常值得。”

快速學習者:AlexNet(2012)

人工智能有兩種類型。壹是利用編碼規則,二是通過模擬大腦的神經結構,讓計算機“學習”。加拿大多倫多大學計算機科學家傑弗裏?辛頓說,幾十年來,人工智能研究人員壹直認為後者是“無稽之談”。然而,2012年,他的研究生亞歷克斯·克雷塞和伊利亞·蘇茲克維證明事實並非如此。

在壹年壹度的ImageNet比賽中,研究人員被要求在包含654.38+0萬張日常物品圖像的數據庫中訓練人工智能,然後在單個圖像集上測試生成的算法。辛頓說,當時最好的算法對大約四分之壹的圖像進行了錯誤的分類。Creaser和Su Zikewei的AlexNet是基於神經網絡的“深度學習”算法,將錯誤率降低到16%。辛頓說:“我們基本上把錯誤率減半,或者說幾乎減半。”

Hinton還指出,該團隊在2012中的成功反映了足夠大的訓練數據集、優秀的編程以及新興圖形處理單元的強大能力的結合。圖形處理單元是壹種處理器,最初設計用於加速計算機視頻性能。“突然間,我們可以將(算法)速度提高30倍,”他說。“或者,我們可以學習多達30倍的數據。”

真正的算法突破其實發生在三年前,當時Hinton的實驗室創建了壹個神經網絡,它可以比改進了幾十年的傳統人工智能更準確地識別語音。“只是好壹點,”辛頓說,“但這已經表明了壹些東西。”

這些成功表明了深度學習在實驗室研究、臨床醫學和其他領域的興起。通過人工智能的深度學習,手機可以理解語音查詢,圖像分析工具可以輕松識別顯微照片中的細胞;這就是為什麽AlexNet會成為從根本上改變科學和世界的工具之壹。(任天)