和生物信息學沾邊的編程語言浩如煙海,Biophp、Biojava、BioPerl、BioPython、BioRuby等等……據Bioinformatics.org上最新的投票顯示(http://www.bioinformatics.org/poll/index.php?dispid=16):BioJava以17%的選擇率位列第三,僅次于Python和PERL。如果考慮到在其他領域的受歡迎程度和程序執行速度,則Java又大幅勝出。那么BioJava能做些什么呢?目前,其功能主要覆蓋以下幾個方面:基因組(序列轉換、基因注釋、BLAST&FASTA);蛋白質組(等電點計算、蛋白結構預測、序列比對)、一些常用算法(遺傳算法、HMM、動態規劃等)和BioSQL(生物學數據庫支持,包括一般的數據庫類型、序列數據庫和Ontology數據庫)。就我目前使用過的極為有限的編程工具而言,與R相比,優勢在于嵌入到Java程序更為方便,缺點是不容易上手(需要先熟悉Java);與Matlab相比優勢在于開源,與Perl相比執行效率更高。這里以簡單的DNA序列翻譯成RNA為例,介紹其安裝和初步的使用。
首先,到下面這個地址下載BioJava的發行包,目前版本為1.5,需要Java運行環境1.4.2以上。http://www.biojava.org/download/bj15/bin/BioJava1.5-bin.tar.gz
Java環境的配置這里就不再啰唆啦,有問題的可以參考某酷的“實踐分享之一”。
把上面的那個壓縮包放開到方便的目錄(我這里是C:/),在CLASSPATH環境變量中加上這些:
C:/biojava-1.5.jar;biojava的核心文件
C:/bytecode.jar;biojava運行的必須文件
C:/commons-cli.jar;僅在編譯和使用某些Demo時才會用到
下面這三個是僅涉及到BioSQL時才會用到的包
C:/commons-collections-2.1.jar;
C:/commons-dbcp-1.1.jar;
C:/commons-pool-1.1.jar
配置完畢后在C盤新建一個test.java文本文檔,輸入以下內容:
import org.biojava.bio.symbol.*;
import org.biojava.bio.seq.*;
public class test {
public static void main(String[] args) {
try {
//make a DNA SymbolList
SymbolList symL = DNATools.createDNA("atgccgaatcgtaa");
symL = DNATools.toRNA(symL);
//just to PRove it worked
System.out.println(symL.seqString());
}
catch (IllegalSymbolException ex) {
//this will happen if you try and make the DNA seq using non IUB symbols
ex.printStackTrace();
}catch (IllegalAlphabetException ex) {
//this will happen if you try and transcribe a non DNA SymbolList
ex.printStackTrace();
}
}
}
回到C盤根,如果上述過程一切順利,輸入javac test.java 和java test就能看到運行結果:
augccgaaucguaa
新聞熱點
疑難解答