題:
如果在已發表的文獻中使用的生物信息學軟件包中發現了重大錯誤,將會發生什麼?
Nic Barker
2017-11-14 06:26:36 UTC
view on stackexchange narkive permalink

昨天,我在R中調試一些東西,試圖獲得流行的流式細胞術工具來處理我們的數據。在研究了幾個小時後,我發現我們的數據即將達到極限,在某些情況下,該算法似乎無法正常工作。

此錯誤不一定是最重要的問題,但我有信心它可能以更隱蔽和不太明顯的方式發生在我之前的其他用戶身上。

鑑於自該工具發布以來,已經有很多文獻使用它, 專業人士如何處理這些廣泛使用的程序包中的錯誤的發現?

我敢肯定,鑑於許多庫的零碎性質,這種情況正在發生在某個時候以更有意義的方式發生(即使大量已發布的結果無效)

在某些情況下,我是一名程序員,他從事軟件開發的其他各個部分,並且相當生物信息學的新手。

您是否已將錯誤報告給開發人員?該工具仍然維護嗎?確實,這取決於開發人員如何處理錯誤。有時它將在下一個發行版中發布,有時將被確定為低風險和低概率事件,並且潛在的解決方案將帶來巨大的風險,因此它仍然是已知問題。
我認為這個問題可能會受益於更通用的標籤。這可能會以C ++,python,perl,S或任何其他語言出現在其他軟件包/庫中。好的標籤也許是[tag:software-quality]?
也可能是有關Academics.SE的相關問題
@WayneWerner有一個相關的[問題](https://academia.stackexchange.com/q/89599/18238)
我不確定我是否理解這個問題。 “在某些情況下,該算法似乎無法正常工作”-您是說該算法從生物學家的角度來看是不正確的,但在程序包中已正確實現,或者一般算法可以正確計算所有內容,但是它在特定程序包中的R實現不符合規範?
@Llopis我想創建一個新的常規標籤,不幸的是我當時沒有聲譽。我會考慮一下,如果可以的話,請重新標記。
@Bioathlete是的,我可能應該更加清楚-我已經報告並修復了該錯誤,但我一直在想從更一般的意義上講對公共文學的更大影響。
@rumtscho該聲明的意思是,在某些情況下,它按預期運行,而在其他情況下,則沒有按預期運行。即對於某些數據集,結果將是錯誤的,但對於其他數據集,則可以正常工作。
-1
感謝您的技巧@Llopis,,我仍在努力尋找最佳實踐。
五 答案:
gringer
2017-11-14 08:13:27 UTC
view on stackexchange narkive permalink

我更喜歡以與實驗室設備類似的方式對待軟件工具和計算機,並且從某種意義上說,是生物學。生物學家習慣於在實驗中發生意想不到的事情,而且新發現改變人們看待事物的方式並不少見。事情崩潰了,細胞在星期三下午更快地死掉,結果不一致,並且第三位審稿人繼續做已經做過一百次的事情,而沒有發生任何令人驚訝的事情(這次不是這次 )。最好記錄盡可能多的可能影響實驗的記錄,對於包含任何輸入數據或命令行選項(尤其是軟件版本號)的軟件來說,這是一個好主意。

發現的軟件錯誤可被視為世界運作方式的新發現。如果發現是公開的,而其他人則認為它很重要,那麼有些人可能會重新研究舊的研究,看看它是否會改變事情。

當然,關於軟件的好處是,漏洞可以是報告給程序的創建者,並可能修復,從而在以後產生了軟件的改進版本。如果錯誤本身沒有引起人們的興趣,並且該程序仍然得到了修復,那麼人們會在不知不覺中使用較新的版本,並且可能會有更多的困惑和討論,說明為什麼結果與在軟件更改之前進行的類似研究不符。 p>

如果您想對主要軟件錯誤的生物學含義有所了解,請查看條形碼索引切換問題或細胞系污染 a>問題。

很好的答案(+1),除了在恕我直言的“角落”和“非角落”案例錯誤之間引入不必要的和令人困惑的區別外。代碼不像實驗室設備,因為您對工具的使用狀態空間沒有全面的了解(例如,您不需要用“此工具可能無法在外太空工作”來標記所有實驗室設備) )。換句話說,所有錯誤對於編寫代碼的人來說都是必然的情況。
一個人的錯誤可能是另一個人的(功能)[https://xkcd.com/1172/]。一個人不需要了解(並且經常不知道)有關軟件的所有知識就可以使用它,並且開發人員不需要修復每個已知的錯誤就可以使程序有用。
感謝這兩個鏈接@gringer,絕對是一本有趣的文章。
“人們在不知不覺中使用較新版本的情況,關於結果為何與軟件更改之前進行的類似研究不符的問題可能會有更多的困惑和討論。”這就是為什麼要注意出版物中使用的軟件版本的原因。無論您做多小巧,都要確保它在其中。
llrs
2017-11-14 14:15:18 UTC
view on stackexchange narkive permalink

雖然我同意 gringer的回答,但我將首先通過測試用例(如果可能)將錯誤報告給維護人員,以便更正錯誤。

該錯誤可能是在極端情況下或更常見的軟件使用情況下的錯誤實現。但是,這是一個很好的機會,可以通過引入測試(或擴展測試),通過使用其他工具重新評估現有技術水平或與依賴於該軟件的其他軟件的用戶進行交流來提高軟件的質量。

取決於該錯誤和一個人可以花費的時間,進行協作以使用該軟件在已發表的研究中研究此類錯誤的影響。

有時該錯誤影響不大,但有時會產生相當大的影響,可能難以估計。例如,我發現,由於映射不正確,reactome.db軟件包的註釋與可用的在線數據庫(版本1.58.0)不一樣。但是,我無法評估已發表文獻中這種錯誤的危害,因為基因集富集工具(通常)不會報告其所基於的數據,並且所用數據庫的版本通常未在文學。

不用擔心!這就是協作編輯網站的美!我作弊:我是母語人士:)
heathobrien
2017-11-14 18:39:55 UTC
view on stackexchange narkive permalink

如果您具有軟件開發背景,則可能知道有關提交錯誤報告的信息。您的問題似乎更多是關於如何更正受該錯誤影響的科學文獻。

完成此操作的傳統方式是撰寫一篇論文,解釋該錯誤並提供示例說明該錯誤可能如何影響已發布的結果(請參閱gringer的索引切換和HELA污染示例)。這樣,社區將意識到使用隱含方法的較早結果需要在建立之前進行驗證。不幸的是,人們對這些問題的認識並沒有始終如願地在整個社區中傳播開來,但它可能仍然是我們確保科學能夠自我糾正的最佳工具。

我想知道您是否可以純粹從錯誤查找中發表足夠的論文,以賺取通往學術界正常職業的道路;)
Nathaniel J. Smith
2017-11-15 18:05:24 UTC
view on stackexchange narkive permalink

在極端情況下,它可能會破壞職業生涯:

去年科學界最壯觀的熄火事件之一發生了。晶體學家Geoffrey Chang在2006年最後一期《科學》雜誌上發表的一封短信(幾乎不超過300個字)中撤回了3篇《科學》文章,《自然》雜誌,PNAS文章和JMB文章。顯然,由於數據處理程序中的單個符號錯誤,長達5年的工作被銷毀。 – 一個跡象,一個翻轉的結構和科學的史詩比例熄火

大多數情況並非如此。實際上,實際上,我會猜到大多數論文都存在某些類型的數據處理錯誤,但我們仍在混淆真相。這不是軟件所獨有的-科學中獨立復制的整個思想是,我們可能總是以我們未意識到的方式弄亂事情,因此我們需要重新做事,並希望錯誤是不同的這次。但是軟件不尋常,微小的錯誤會導致很大的影響,而且通常很難發現這些影響。如果將試管放在地板上,您可能會注意到。如果一個新軟件給出的結果不正確……好吧,我們不知道結果應該是什麼樣子,這就是科學的原因!您可以做一些事情來緩解這種情況,但是在某種程度上,這只是科學過程所固有的。

我仍然希望向新的研究生展示該博客文章,以期嚇他們參加寫作測試。我實際上認為,這是一個好習慣,每當您開始使用新軟件包時,都應為其編寫一些測試–這是檢查您的假設並了解其實際作用的好方法,即使它是受歡迎的軟件包,傑出的研究人員,有時仍然會對發現的結果感到震驚。

benn
2017-11-14 16:27:50 UTC
view on stackexchange narkive permalink

這也取決於可從何處獲得軟件包。我的意思是,如果它是來自 bioconductor,則作者和維護者有責任對bug報告做出回應。可以在支持站點上報告該錯誤,因此其他人也知道該錯誤。如果維護人員不修復它,則可能會失去在生物導體中的地位。但是,其他站點,例如CRAN或Sourgeforge可能不太嚴格。

我總是想知道“對錯誤報告的響應”是什麼意思,但這將用於生物導體郵件列表。我閱讀了它們,因為它們不需要進行糾正,而只是做出了(合理的)回應。而且AFAIK並沒有執行,我報告了幾個錯誤,維護者也沒有收到任何響應:(
我認為適當的回應將是一個錯誤修復。在支持站點上不僅有“謝謝,您會收到我們的答复”的回复。很遺憾聽到您甚至沒有回應,我認為生物導體對這些問題很嚴格。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...