想成為一位計算生物學家嗎?

So you want to be a computational biologist?

作者

Mick Watson 來自英國羅斯林研究所( The Roslin Institute), 前身本來是愛丁堡大學動物遺傳研究所,著名的複製羊polly便是從那邊來的,其也是愛丁堡生物資訊研究的領頭人,那是愛丁堡基因體學術研究機構,負責提供次世代定序的分析訓練(Head of Bioinformatics at Edinburgh Genomics (http://genomics.ed.ac.uk).可以追蹤他的推特@BioMickWatson或是部落http://biomickwatson.wordpress.com/.

Nick Loman來自英國伯明罕大學微生物與感染所的獨立研究員,可以追蹤他的推特 @pathogenomenick以及部落格http://pathogenomics.bham.ac.uk/blog.

計算生物學家這個詞代表了好幾種角色於其中,包括資料分析、資料收集、資料庫的建立、統計學家、數學建模、生物資訊、軟體開發、ontologist等等,可以確定的是電腦已是現代生物研究不可或缺的一員,科學家常常被要求學習新的計算生物學技能或是了解新的術語。不管你是學生、教授或是想要往學術界發展,以下這些建議假如你有興趣的領域需要越來越多的計算分析,那麼將對你很有用!

找尋你的目標並且挑選合適的方法
Understand your goals and choose appropriate methods

做好計算生物學研究的關鍵是挑選並且使用好的軟件。在你可以完美詮釋軟體分析的結果前,最好仔細去理解軟體背後的原理。就好像你不會在做PCR時,卻不理解他背後的原理一樣。所以在使用電腦軟體分析資料也是同樣的道理。去理解所使用計算機軟體背後分析的原理和演算法。但這不是要你去把軟體裡每一行程式碼都瞭解到一清二楚!同常分析軟體都會有固定的演算法針對某一種資料類型,舉例來說,在de novo assembly,Overlap-Layout-Consensus assembler演算法便是用來最佳化使得序列讀數可以長點,而Bruijn graph則是針對短read的運算。挑選適合的演算法和軟體會省掉你之後很大量的時間。

為你或是從別人那取得之程式碼設計一些“捕蟲器”
Set traps for your own and otehr people’s

你如何知道你的程式碼、軟體、分析流程到底有沒有問題呢?電腦會很開心地輸出結果來自任何怪異的輸入資料,並且沒有任何錯誤的訊息。建立一些小測試資料,這資料的分析結果是已知的,看看你自己的程式碼或是使用的軟體能不能作出一樣的答案。試者在你每個分析的資料都建立這樣的工作流程。double-check每一次的計算分析,並且思考是否是合理的結果。就像傳統生物實驗都會有positive和negative control.這在計算生物學裡的實驗室一樣的。

你是科學家,不是編程員
you’re a scientist, not a programmer

鑽牛角尖是成功的敵人。記住你是一位科學家,你研究水準來自於成果,而非程式碼的精美與否。即使你編碼的很完美、標注清楚且冗長,最後分析出錯誤的結論,這樣倒不如就使用基本的語法。必須說,一旦你確定你和新的演算法沒問題,再花時間使得程式碼的可讀性高一點。能多多活用生物知識,便要好好的把握住!

使用版本控制的軟體
Use verion control softward

版本控制可以幫助追蹤你修改的指令,同時維持不同版本的程式且可以跟別人一起分享。最使用版本控制的工具像是Git或是Subversion,也能讓你較快地發布新的編碼。另外,在編碼裡面寫好說明(README)檔案,這樣可以幫助未來的你回頭看看舊專案時比較了解你在做什麼。在你程序或是編碼腳本裡好好撰寫註解,這樣可以幫助你看懂自己在寫什麼。在發表研究時候,可以試試把分析使用的編碼也一起發表,這樣可以讓其他人能重複驗證你的分析結果。另外,維持一個數位實驗記錄簿在你分析任何資料的時候。像是程式碼儲存在Github中也是一個相當好的方式來維持你程式的雲端備份。

“指令管線炎”是一個嚴重的問題
Pipelineitis is a nasty disease

所謂的指令管線化(Pipeline)是指把一系列程序或是軟體的操作步驟以完整序列方式去執行。建立一套Pipeline是很棒的方式來執行很多重複的分析,和分享工作流程給他人。但這樣會強迫你把工作方式限縮成固定模式,有時候會降低你的創造性。所以最好不要太早把自己分析方式弄成Pipeline,當把這套分析方法確認是對的,才這麼做。同時要思考一下這工作流程需要弄成pipeline嗎?這真的能節省時間嗎?這樣的pipeline對於別人也有用嗎?假如這樣的分析方式只有你自己要用,那麼花費太多力氣整合成pipeline的意義就比較小,維持單純的程式碼腳本反而比較單純。

 

歐巴馬的思維架構
A
n obama frame of mind

沒錯!就是像歐巴馬一樣思考!身為一個計算生物學家,你必須要保持創造力,從現有的方法發展出全新的。保持冒險精神,隨時準備好失敗但不斷前進。另外,使用google來詢問同領域的其他人,可以幫助你更快地解決特定的問題。

幫助工作的利器
T
he right tool for the job

請適應UNIX/Linux環境下的指令操作(相對於我們傳統習慣的圖形介面)。他們是非常強大的工具,可以讓你對工具或是軟體的掌握更加全面,且能同步執行很多運算。大部分的生資軟體都設計成可以在comman line的環境下執行,另外,學習叢集電腦和如何同時執行不同共作。學習哪種語言不是最關鍵的問題,因為每種語言都有其強項,且大多數你都需要使用一種以上的語言來完成工作。

請記住使用流行的語言對你的幫助會比較大,因為其現有的小工具會很多,舉例來說,你可以去Bios* project看目前有哪些熱門專案(http://www.open-bio.org/wiki/Main_Page),像是微軟Excel除非很仔細地操作,否則不太適合作為生資的處理工具。使用test structured files或是SQL資料庫來儲存你的資料。最後請記得實時備份你的資料。

不管你遇到的問題多麼的艱難或是使用的方法多麼前端,世界上總是有人同時也想解決這樣的問題的,這邊有兩個很棒的網路資源可以多多使用像是BioStars(http://www.biostars.org/) 或是SEQanswer(http://www.biostars.org/) ,也可以追蹤特定計算生物學家的推特!
來個小小總結,有無數的網路資源可以學習,趕快提起勇氣安裝你第一個linux,你會發現這一切是很值得的!

翻譯自:Nature Biotechnology 31, 996–998 (2013) doi:10.1038/nbt.2740Published online 08 November 2013
(已取得翻譯授權碼:3738500240185)

對「想成為一位計算生物學家嗎?」的一則回應

  1. rental construction

    You really make it seem so easy along with your presentation however I in finding this matter to be actually
    one thing that I think I would by no means understand.
    It seems too complex and very large for me. I’m looking ahead
    to your next post, I’ll try to get the hold of it!

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s