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的意義就比較小,維持單純的程式碼腳本反而比較單純。
歐巴馬的思維架構
An obama frame of mind
沒錯!就是像歐巴馬一樣思考!身為一個計算生物學家,你必須要保持創造力,從現有的方法發展出全新的。保持冒險精神,隨時準備好失敗但不斷前進。另外,使用google來詢問同領域的其他人,可以幫助你更快地解決特定的問題。
幫助工作的利器
The 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)