作者:徐銘鴻/有勁生物科技

 

今年大學指定考試志願選填在前幾周結束了。每到此時大家就開始討論就讀哪個科系CP值最低、哪個科系最沒用,而生科系總是於此話題榜上有名。其實生命科學範疇包羅萬象,許多科系之間似乎都有些親緣、裙帶或曖昧關係,五花八門反而常常讓學子在選擇未來出路時舉棋不定。本篇文章這次要來「解惑」的,是生物和資訊領域的愛情結晶─生物資訊。

 

生物資訊簡單的說,就是利用電腦程式來研究生物學的問題。這些問題包含DNA序列組裝、基因檢測、蛋白質結構預測……等等。研究這些問題的過程往往會產生大量資料,其中有些重要,有些卻會干擾實驗結果;而如何運用程式撈取需要的資料並拚湊出重要訊息,就是生物資訊的任務。以癌症研究為例:人類體細胞有46條染色體,染色體中包含上萬個基因,其中會造成癌症的基因缺失只佔一小部分;單靠傳統實驗方法及人腦運算是不可能短時間找出導致癌症的所有基因缺失的,唯有借助電腦的運算能力,才有機會盡快解決這些醫療上的問題。

 

接下來的幾個建議,希望能夠幫助對生物資訊有興趣的人在踏進這個大門之前做好準備。

 

1. 選擇程式語言

隨著科技的進步,許多程式語言被開發出來,常聽到的包括C、C++、Java、 Python、R、Perl等等。對於要跨足生物資訊的新手來說,最大的困擾應該都是─該學哪種語言最好?讓我們先從TIOBE公司做出的統計圖表來看看。

 

 

圖一、TIOBE Index for August 2017

170816_1.2.png

    圖一、TIOBE Index for August 2017 (圖片來源:https://www.tiobe.com/tiobe-index)

 

上圖顯示2002年到2017年7月的程式語言分數變化。這個分數是根據其在各搜尋引擎的被查詢次數來計算的。分數越高表示該程式語言作為關鍵字的被搜尋次數越多,此間接表示使用該程式語言的人數比較多。從圖看來,較受關注的JAVA、C近年人氣也快速下降。

 

現今社會對程式語言的喜好變化很大,很難找到永遠熱門的語言,因此到底該選哪種程式來入門沒有絕對的答案。不過,從解決問題的類型來看確實可以過濾掉一些選項,例如:想要撰寫製作美觀的網頁就選擇Javascript搭配HTML和CSS;面對大量需要存儲管理的資料,則MySQL是很好的選擇。以生物資訊領域來看,比較常碰到的是大量文字數據的處理,或是各種圖表製作與數據統計;因此對於想踏入生物資訊領域的人來說,Perl、Python、R都是比較具有優勢的選擇。其中Perl、Python都擅於處理文字檔案,且在資訊領域也有不錯的表現,可以應用在架設網頁、遙控車等等,對於未來進入純資訊領域也提供優勢。Python對初學者而言較容易上手,而現在也有不少別人寫好的程式碼可以現用;R語言則偏向美觀圖表的設計以及各種數據的統計,對數字運算及處理可提供不少幫助。

 

2. 會使用作業系統

除了程式語言,電腦作業系統也是不能忽略的重點。一般常聽到的作業系統有Windows, Mac 跟Linux,到底這三種系統的差別在哪裡呢?

 

圖二、Windows, Mac, or linux

170816_2.2.png

圖二、Windows, Mac, or linux (圖片來源:mineplex forum http://www.mineplex.com/forums/m/11929946/viewthread/15350704-windows-mac-or-linux/article/YouTube.com/page/5)

 

Linux作為開放源碼的作業系統,能夠取得大量免費的程式,方便量身打造自己需要的各式功能,但對於不會安裝及使用的人來說,只能望之興嘆。相較之下Windows和Mac雖然自由性低了些,許多程式都需要付費,不過操作上卻很簡單。然而進行分析時,有許多程式都需要在Linux系統下才能執行,且指令使用習慣後,很多時候電腦操作起來比用滑鼠還方便;因此Linux系統的使用便成為研究能否順利進行的一個重點。

 

3. 提升程式撰寫的技巧

開始寫程式之後,養成良好的程式寫作習慣是不可或缺的,這對未來和業界接軌也很有幫助。下面提出兩項能夠提升程式寫作效率的建議:

 

a.  程式排版

寫程式除了要讓電腦看的懂,也要讓寫程式的人看得懂才算是好的程式。要增加程式的可讀性,可以從縮排、分行、寫註解、變數命名這些部分下手,能夠快速讀懂的程式,才有利於後續程式碼的維護及新增。

 

b. 版本控制

寫程式的過程中,常常會面臨需要增刪的情況。無論是要精簡程式或增加功能,能夠追蹤自己程式的更新狀況可方便規劃未來的程式發展方向;更重要的是,有設定版本追蹤的程式在遭遇錯誤時可以很輕易的回溯到先前的版本,比起重新尋找要修改的錯誤要方便許多。如果是利用改檔名存檔的方式來追溯版本,時間一長很容易造成混亂,建議使用Git這類的分散式版本控制系統來協助程式開發。

 

其實要踏入生物資訊領域不困難,只要知道從哪裡起步,剩下的就是在處理資料實作中慢慢累積經驗。生物資訊能解決以往傳統生物研究方法沒辦法處理的問題,除了可拓展醫學、公衛、環保研究範疇,也有機會作為轉戰資訊領域的跳板。不過想要真正跳進資訊領域成為爆肝工程師,要學的資訊相關技能就需更深入,不在話下。

 

 

官網用CC創用_SA.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arrow
arrow

    Yourgene Health 發表在 痞客邦 留言(1) 人氣()