在基因測序中為什麼要用到perl?


先說明一下,我用C/C++,Perl,R都比較多。

處理測序數據的時候,只是 Perl 用的比較多,但不是非得用 Perl 不可

Perl 用的比較多是因為

  • 歷史原因:測序技術剛發展起來的時候(人類基因組計劃完成之前),Perl 比較方便,而且人類基因組計劃也確實在perl的幫助下才得以順利完成(How Perl saved human genome)。當然這不代表非 Perl 不可,但人們選了 Perl,說明 Perl 至少是最方便的幾種語言之一吧。
  • BioPerl: 結果很快BioPerl就發展起來了,加上Ewan Birney等牛人的開發和推廣,迅速流行起來。BioPerl更完善了Perl作為膠水,粘合各種不同程序的功能(整理程序A的輸出,輸入到程序B……),特別是Bio::SeqIO,Bio::SearchIO, Bio::AlignIO這些模塊和bioperl-run包。

  • EnsEMBL:Ewan Birney後來又在 BioPerl 基礎上弄了 EnsEMBL (不只是那個資料庫,更重要的是EnsEMBL整個系統及其介面,可以套用到各種物種上:Ensembl Genomes),讓存儲和訪問基因組尺度數據的方便性又大大提高了。通用的基因組尺度的資料庫,其實UCSC才是先行者,但是EnsEMBL的數據組織和訪問比UCSC更系統和規範。而EnsEMBL提供的編程介面基本都是 Perl 的。類似的還有GBrowseBioMart
  • 個人經驗(歡迎指出錯誤):Perl 寫個小腳本檢驗點小東西很快,不會給你原來的思路太多干擾。R其實也行,只是處理字元串 R (BioStrings)有點慢。

我想說Perl其實一點都不out,最近只是Python比較流行。同實驗室用Python的同僚說,BioPython跟BioPerl實在差太遠,因此最後投奔Perl了……

"Do not reinvent the wheel"


歷史遺留問題,早期生物界,每建一個資料庫,就折騰出一個新格式(格式設計者又沒有任何正規的資料庫背景,考慮不到以後的更新與可擴展性),導致的後果就是,當年做生信的主要工作,就是在一大堆文本格式之間倒騰數據格式的轉換 ,這時候perl的優勢顯示出來了 (這種情況下用正則其實也是野路子一時爽,好點的做法是認真寫一個parser)。當然,現在還有不少用perl的,sanger研究所據說也還在招perl程序員的,這就和現在許多金融機構還在招COBOL程序員是一樣的。

新入行的,沒必要綁死在perl上,要選腳本語言的話,也是python更好些。但其實你真懂了一門語言以後,語言就不是障礙了。比如樓上 @popucui 提到的KEGG,其實KEGG提供了完善了SOAP以及RESTFUL API,會寫簡單爬蟲的話,隨隨便便就爬下來了。。。。(逃


首先明確一點, 基因測序是測序儀完成的, 測序儀做的,就是從你的樣品里把一個個AGCT讀出來,並且為每個鹼基標記一個可信值, 就是這個鹼基有可能被讀錯的可能性多大。 然後假設你想問的是, 在接下來的數據分析中,為什麼要用到perl。

perl在1987年出生的, 這時候還沒有python。有的時候,我們是沒得選的, 因為前人就是用的perl, 我們要想用別人寫的工具,只能也用perl。比如對大量基因進行KEGG注釋用的工具KAAS KEGG Automatic Annotation Server 就是perl寫的, 如果我想部署到本地, 只好學用perl


不一定用Perl。你用Python也可以。

問題應當是「為什麼要用一個腳本語言」?

可以用來:解析、處理結果,組織分析流程。


因為bioperl 實現得好


宇宙第一字元串處理神器吧,處理AGCT這種序列應該有優勢。


1. perl很多有軟體和庫,調用方便

2. 你可以用其他的,python,c++等

3. 我在用了python和c++後覺得他們寫多重hash(perl,c里是map)時,perl寫起來比較方便。


不用Perl也可以的,我就不愛用。只是Perl的正則表達式比較好用,適合字元串處理


因為Shell,C之流不適合,現在用Python的也不少

其實現在用perl已經out了


我覺得因為前人用perl,後人就跟著用perl而已。現在很多程序用C,python,都已經很多了。其實這些語言都是相通的,僅僅只是工具,重要的思路和分析方法


推薦閱讀:

學霸表面上不用功,是因為他們真的聰明絕頂還是私下裡用功程度超越常人?
進化論理論如何解釋開放式進化?
為什麼人類沒有進化出更高大上的排毒/排泄方式?
到達一定高度的醫學是不是在一定程度上阻礙了人類的進化?
宇宙中可能存在的生命形式都有哪些?

TAG:生物學 | DNA測序 | 基因組 |