Bioperl 是一組 Perl 模塊,它主要目的在于利用 Perl 解決生物學(xué)研究中的一些問(wèn)題,,主要是生物信息學(xué)中的各種實(shí)際問(wèn)題,如獲取分子生物學(xué)數(shù)據(jù),,分析序列文件,,序列間比對(duì),,大批量 BLAST ,數(shù)據(jù)挖掘,,等等,。
它主要的用途不在于直接提供可以使用的程序,而是提供大量可擴(kuò)展的模塊,,使得生物學(xué)家可以利用它們很方便的寫(xiě)出滿(mǎn)足自己需要的 Perl 腳本,,以完成多種多樣的任務(wù)。
誰(shuí)需要使用 Bioperl ?
Bioperl為生物信息學(xué)(bioinformatics)而設(shè)計(jì),,服務(wù)于研究生物學(xué)問(wèn)題的生物學(xué)家或計(jì)算機(jī)專(zhuān)家,。
perl.com上有 James D. Tisdall 寫(xiě)的幾篇關(guān)于bioinformatics的文章:
Beginning Bioinformatics http://www.perl.com/pub/a/2002/01/02/bioinf.html
Parsing Protein Domains with Perl http://www.perl.com/pub/a/2001/11/16/perlbio2.html
A Chromosome at a Time with Perl, Part 1 http://www.perl.com/pub/a/2003/09/10/bioinformatics.html
A Chromosome at a Time with Perl, Part 2 http://www.perl.com/pub/a/2003/10/15/bioinformatics.html
O’Reilly也已經(jīng)出版了兩本關(guān)于Perl和bioinformatics的書(shū):
Beginning Perl for Bioinformatics http://www.oreilly.com/catalog/begperlbio/
Mastering Perl for Bioinformatics http://www.oreilly.com/catalog/mperlbio/
關(guān)于 Bioperl 開(kāi)發(fā)項(xiàng)目
Bioperl 開(kāi)發(fā)項(xiàng)目正式開(kāi)始于1995年。它是一個(gè)開(kāi)源項(xiàng)目,,使用Perl語(yǔ)言開(kāi)發(fā),,由 OBF (Open Bioinformatics Foundation) 所支持。Bioperl的官方主頁(yè)是 http://bioperl.org
Bioperl 的開(kāi)發(fā)團(tuán)隊(duì)目前依然十分活躍,,它的最新版本是1.5.0(2005年1月29日發(fā)布),,目前的項(xiàng)目主持者是 Duke 大學(xué)的Jason Stajich http://www.duke.edu/~jes12/
Bioperl的簡(jiǎn)介
Bioperl 最近已經(jīng)到了1.0版,先說(shuō)bioperl.org,該組織正式成立于1995年,在此之前已經(jīng)作為非正式的團(tuán)體存在那很多年,現(xiàn)在他已經(jīng)形成了一個(gè)國(guó)際性的開(kāi)發(fā)者的協(xié)會(huì),這些開(kāi)發(fā)者開(kāi)發(fā)用于生物信息學(xué),基因組學(xué),和生命科學(xué)研究的開(kāi)放源碼的Perl 工具.
該組織的支持者和推動(dòng)者是Open Bioinformatics Foundation. 他們的伙伴還有biojava.org, biopython.org, DAS, bioruby.org, biocorba.org, ENSEMBL 和 EMBOSS.
Bioperl的服務(wù)器提供供下列服務(wù),用于生命科學(xué)的基于perl的模塊,腳本,web聯(lián)接的軟件.
Bioperl現(xiàn)在已發(fā)展成為一個(gè)令人矚目的國(guó)際性的自由軟件開(kāi)發(fā)計(jì)劃,bioperl在生物信息學(xué)的使用加速了生物信息學(xué),、基因組學(xué)以及其他生命科學(xué)研究的發(fā)展,。最近bioperl 1.0版本正式發(fā)布,這其間歷時(shí)七年,,成績(jī)斐然,。Bioperl 1.0 包括832個(gè)文件,93個(gè)Script,,功能豐富,,源碼全部開(kāi)放。它是生物信息學(xué)研究的利器,。詳細(xì)的內(nèi)容大家可以訪(fǎng)問(wèn)www.bioperl.org,。
Bioperl作為perl的擴(kuò)充的專(zhuān)門(mén)用于生物信息的工具與函數(shù)集,自然也繼承了perl的眾多優(yōu)點(diǎn).
第一. Perl強(qiáng)大的正則表示式(regular expression)比對(duì)以及字符串操作使這個(gè)工作變得簡(jiǎn)單而沒(méi)有其它語(yǔ)言能相比。Perl 非常擅長(zhǎng)于切割,,扭轉(zhuǎn),,絞,弄平,,總結(jié),,以及其它的操作文字文件。生物資料大部分是文字文件:物種名稱(chēng),種屬關(guān)系,,基因或序列的注解,,評(píng)住,目錄查閱, 甚至DNA序列也是類(lèi)文字的?,F(xiàn)在互相交換以以文字文件的形式存在的但是具有不兼容的資料格式生物信息資料是一個(gè)很頭疼的問(wèn)題,perl的這個(gè)方面的優(yōu)點(diǎn),可以在這一方面解決不少問(wèn)題.
第二. Perl 能容錯(cuò),。生物資料通常是不完全的,,錯(cuò)誤或者說(shuō)誤差從數(shù)據(jù)的產(chǎn)生時(shí)候可能就產(chǎn)生了.另外生物數(shù)據(jù)的某項(xiàng)值欄位可以被忽略 ,可能是空著的,或是某個(gè)欄位也就是某個(gè)值,被預(yù)期要出現(xiàn)好幾次(舉例來(lái)說(shuō),,一個(gè)實(shí)驗(yàn)可能被重復(fù)的操作),,或是資料以手動(dòng)輸入所以有錯(cuò)誤。Perl并不介意某個(gè)值是空的或是有奇怪的字符,。正規(guī)表示式能夠被寫(xiě)成取出并且更正錯(cuò)誤的一般錯(cuò)誤,。當(dāng)然這種彈性也可能是各壞處。
還有,Perl 是組件導(dǎo)向的,。Perl 鼓勵(lì)人們將他們的軟件寫(xiě)成小模組,,不論是用 Perl 函式庫(kù)模組或是正統(tǒng)的 Unix 工具導(dǎo)向的方式。外部程序能夠輕易的被整合進(jìn) Perl 程序,靠著管道(pipe),系統(tǒng)呼叫,或是插座(socket),。Perl5 引進(jìn)的動(dòng)態(tài)載入器允許人們使用 C 的函式,,或者讓整個(gè)編程過(guò)的函式庫(kù),被使用在 Perl 直譯器中,。最近的成果是世界各地的智能結(jié)晶都會(huì)收錄在一組模組里面,,稱(chēng)為”bioPerl”(請(qǐng)參考 Perl Journal)
Perl 很容易去寫(xiě)并且能很快開(kāi)發(fā)完。直譯器讓你不需要宣告你所有的函數(shù)型式以及資料型態(tài),,當(dāng)未定義的函式被呼叫時(shí)只會(huì)引起一個(gè)錯(cuò)誤,,除錯(cuò)器也能與Emacs很好的合作并且讓你能用令人舒服的交談式的開(kāi)發(fā)模式。
Perl 是良好的原型語(yǔ)言,。因?yàn)樗於遗K(quick and dirty),,用 Perl 建構(gòu)新演算的原型比直接寫(xiě)成一個(gè)快的需要編程過(guò)的語(yǔ)言來(lái)的有意義。有時(shí)候發(fā)現(xiàn)結(jié)果是Perl已經(jīng)夠快了,,所以程序變不需要移植;更多情形是某人可以用C寫(xiě)一個(gè)小的核心程序,,編程成動(dòng)態(tài)載入的模組或是外部的可執(zhí)行程序,然后其它的部分用Perl來(lái)完成,。這部分的例子可以參考 http://waldo.wi.mit.edu/ftp/distribution/software/rhmapper/,),。
有一點(diǎn)要強(qiáng)調(diào)的是, Perl 在寫(xiě)作網(wǎng)頁(yè) CGI 方面非常優(yōu)秀,而且重要性隨著各實(shí)驗(yàn)將資料發(fā)表在網(wǎng)絡(luò)上之后更是增加,。我在基因中心環(huán)境下使用 Perl 的經(jīng)驗(yàn)從頭到尾都是值得稱(chēng)贊的,。然而我發(fā)現(xiàn) Perl 也有它的問(wèn)題。它的松散的程序風(fēng)格導(dǎo)致許多錯(cuò)誤,,這些在其它嚴(yán)格的語(yǔ)言都會(huì)被抓到,。舉例來(lái)說(shuō),Perl 讓你在一個(gè)變數(shù)在被指定值之前就能使用,,這是個(gè)很有用的特性當(dāng)你需要的時(shí)候,,但是卻是一個(gè)災(zāi)難當(dāng)你單純的打錯(cuò)了辨識(shí)名稱(chēng)。同樣的,很容易忘記要宣告一個(gè)函式里面的區(qū)域變數(shù),,導(dǎo)致不小心地改到了全域變數(shù),。
最后,Perl 的不足之處在于建立圖形化的使用者接口,。雖然 Unix忠實(shí)信徒所有事情都能在命令模式下完成,大多數(shù)的終端使用者卻不同意,。視窗,,選單,彈跳的圖案已經(jīng)變成了必要的時(shí)尚,。
直到最近,,直到最近,Perl 的使用者界面(GUI)發(fā)展仍是不成熟的,。然而 Nick Ing-Simmons的努力使得 perlTK(pTK) 的整合使得以 Perl 驅(qū)動(dòng)的使用者接口在 X-window上面成為可能,。我的伙伴和我曾經(jīng)在 MIT 基因中心寫(xiě)過(guò)幾個(gè) pTK 為基礎(chǔ)的應(yīng)用程序供互連網(wǎng)使用者,而且從頭到尾都是一個(gè)令人滿(mǎn)意的經(jīng)驗(yàn),。其它的基因中心則更大規(guī)模的使用 pTK,,在某些地方已經(jīng)成為主要的生產(chǎn)力。