成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nature論文爆出千行Python代碼Bug,或影響百篇學術論文

新聞 前端
你的論文借鑒了 Nature 文章的代碼?對不起,論文可能要重新寫了。

你的論文借鑒了 Nature 文章的代碼?對不起,論文可能要重新寫了。

在 10 月 8 日發表于《ACS Publication》期刊的一篇論文中,來自夏威夷大學的 Jayanti Bhandari Neupane、Yuheng Luo、Rui Sun、Philip Williams 等研究者表示,他們發現了一個《Nature》論文中的 Python 腳本編程錯誤,這個錯誤可能會對 150 多篇已經發表的化學論文產生影響。

 Nature论文爆出千行Python代码Bug,或影响百篇学术论文

10 月 8 日發表于「ACS Publication」的論文。作者是來自夏威夷大學化學系的 Jayanti Bhandari Neupane、Yuheng Luo、Rui Sun、Philip Williams 等人。他們在這篇論文中指出了《Nature》論文中的 Python 腳本 bug。

論文地址:https://pubs.acs.org/doi/full/10.1021/acs.orglett.9b03216

論文中提到的腳本名為「Willoughby-Hoye」,用來計算核磁共振圖譜的化學位移值。夏威夷大學的研究者發現,在該腳本中,有一個模塊是根據文件的排序返回值,但 Python 并沒有定義查詢的文件順序。因此,該系統在不同的腳本上會有不同的返回值。

在運行這些腳本的時候,Luo 在不同的操作系統上得到了不同的結果。

他們在實驗中使用了相同的核磁共振數據,但結果卻出現了顯著差異。在 macOS Mavericks 和 Windows 10 上運行該腳本都能得到正確的結果(173.2),但在 macOS Mojave 和 Ubuntu 上運行時,結果卻出現了差異(分別是 172.4 和 172.7),與正確結果相差近 1 個百分點。雖然看起來相差不大,但在精確的科研世界里,這一差別就很嚴重了。

產生這種差異的原因是該腳本使用 Python 的 glob 模塊來查找符合特定規則的文件路徑名——基于 glob 的結果去生成讀取文件列表。但是 glob 的結果又取決于操作系統的文件返回值。于是腳本的計算結果會受到文件處理順序的影響。夏威夷大學的 Rui Sun 和 Phillip Williams 編寫了用來解決這個問題的排序較正代碼以保證結果的一致性,代碼量達到上千行。

在《Nature》論文中藏身五年的 Bug

2014 年,《Nature》子刊上發布了一篇名為《A guide to small-molecule structure assignment through computation of (1H and 13C) NMR chemical shifts》的化學論文,論文中包含了上文中提到的使用 Python 語言構建的腳本。

Nature论文爆出千行Python代码Bug,或影响百篇学术论文

2014 年發表于「Nature」的那篇論文。

論文地址:https://www.nature.com/articles/nprot.2014.042

論文中的 Python 腳本下載地址:https://media.nature.com/original/nature-assets/nprot/journal/v9/n3/extref/nprot.2014.042-S2.zip

現任美國里彭學院化學系助理教授的 Patrick Willoughby 認可了夏威夷大學研究者的發現,并且在推特上展示了該團隊對腳本所做的更正:

Nature论文爆出千行Python代码Bug,或影响百篇学术论文

他還提醒道,「如果你在做或依賴核磁共振化學位移方面的研究,那你一定要讀一下這篇論文?!?/p>

腳本的作者也在 twitter 上表示了對這一發現的贊賞,但他表示,當年寫代碼的時候,腳本是運行良好的。

Nature论文爆出千行Python代码Bug,或影响百篇学术论文

他說,「Rui 和 Williams 教授的發現真的非常棒。6 年前我寫這個腳本的時候,操作系統能夠處理排序問題。Rui 和 Williams 添加了必要的排序代碼和函數來確保計算排序一致,給他們點贊!」

這篇 2014 年的論文至今已經被瀏覽過 1900 多次。Williams 表示,可能有 150-160 項研究項目受到了該 bug 的影響。例如,如果 Williams 用這個腳本錯誤地計算了樣本中的成分,而化學家剛好要用這一結果合成新的分析來研發新藥,那他的研究可能從開始就是錯的。

雖然 Williams 等人及時發現了這個問題,避免了該 bug 對自己的研究造成的影響,但它可能對其他研究舉足輕重。他希望這篇論文能夠讓科學家們更加關注實驗的計算部分。由于已發表的論文中很少提及操作系統,所以這一 bug 產生的影響目前還很難得出定論。

「學術原型代碼」VS「工業級別代碼」

一般來說,代碼并不是一篇學術論文中最被關注的點。所以說,計算機學界及其他領域學界往往不會對代碼質量過分深究。這也導致,不管是學術研究者還是業界人士,都能感覺到「學術原型代碼」和「工業級別代碼」之間的巨大差異。

顯然,科研人員們暫時未能成為精于代碼的「程序員」。論文中的代碼往往存在易讀性差、注釋量不足等問題,在沒有對應技術手冊的情況下也常常讓讀者摸不著頭腦。

許多網友也對這一現象進行過討論:「發 paper 的代碼一般多是 quick and dirty, 如果說一個方法很好,希望把整個代碼做好做魯棒,一般要經歷哪些步驟?」

最多的回答是:「重寫。」

還有一種類似張無忌演習太極劍法的實現方式:「把 paper 看完然后丟在一邊,直到完全忘卻代碼,然后根據記憶,按照工業級標準重寫一遍?!?/p>

不過相比于工業界的代碼,學術論文中代碼 bug 的影響畢竟還是有限的。

新西蘭惠靈頓維多利亞大學化學系講師 Rob Keyzers 在今年的一項研究中引用了這篇論文,他表示自己當時確實并不知曉這個 bug。

Rob Keyzers 沒有太過擔心自己的成果,因為團隊在研究中沒有使用這項有 bug 的腳本。同時他也補充說:「我們會仔細檢查研究數據,以確保沒有得出任何不嚴謹的結論?!?/p>

「Nature Protocols」的發言人在一份聲明中回應道,他們正在調查夏威夷大學這項研究中所提出的問題,目前處于保密方面的考慮暫不發表評論。

 

責任編輯:張燕妮 來源: 機器之心
相關推薦

2025-04-25 10:57:39

2022-07-13 17:56:09

Bug率產品經理系數

2023-01-16 14:37:24

PyTorch論文

2022-11-21 16:40:29

融視

2018-05-07 09:12:17

Linuxgroff -me格式化

2024-01-03 07:11:58

2021-09-08 10:00:31

數據中心經濟電信

2020-03-31 14:53:02

華為全閃存AI

2024-08-13 14:40:00

AI科學家

2023-06-16 10:05:48

2022-08-29 15:01:58

5G數字經濟醫療

2025-02-24 08:20:00

AI代碼生成

2018-10-15 09:20:08

代碼軟件工程師

2020-06-02 16:30:58

華為
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩不卡视频在线 | 欧美一区二区三区大片 | 精品一级| 国产精品视频一二三区 | 日韩在线视频观看 | 亚洲国产精品视频 | 久久久成人网 | 免费看的av| 欧美一级片在线观看 | 瑞克和莫蒂第五季在线观看 | 91精品国产综合久久久久久蜜臀 | 久久久国产一区二区三区四区小说 | 成人免费在线 | 亚洲福利一区 | 日韩欧美国产精品一区二区 | 成人亚洲网站 | 性色av网站 | 亚洲欧美一区二区三区1000 | 国产高潮好爽受不了了夜夜做 | 日韩欧美中文 | 中文字幕视频在线观看 | 伊人久久综合 | 欧美成人a∨高清免费观看 欧美日韩中 | 高清免费av | 欧美精品一区在线发布 | 亚洲精品大全 | 欧美极品视频在线观看 | 国产精品成人一区二区三区夜夜夜 | 国产精品久久777777 | 99国内精品| 中文精品视频 | 99国产精品99久久久久久 | 日韩中文字幕在线播放 | 久草在线| 久久人 | 毛片a级| 成人二区| 国产黄色大片 | 啪啪网页 | 欧美mv日韩mv国产网站91进入 | 久久精品视频在线播放 |