在一般的翻译例子中我们使用RNATools中的方法translate()就能够很容易的进行翻译。这对于使用一般的通用翻译表来说非常合适。但有的时候,你可能使用一些诸如叶绿体翻译表等偏僻的翻译表。幸运的是,这在Biojava中不是难题。RNATools有一个静态的方法getGeneticCode(String name) 能够使你通过名字来获取翻译表。
以下就是Biojava提供的翻译表:
- FLATWORM_MITOCHONDRIAL
- YEAST_MITOCHONDRIAL
- ASCIDIAN_MITOCHONDRIAL
- EUPLOTID_NUCLEAR
- UNIVERSAL
- INVERTEBRATE_MITOCHONDRIAL
- BLEPHARISMA_MACRONUCLEAR
- ALTERNATIVE_YEAST_NUCLEAR
- BACTERIAL
- VERTEBRATE_MITOCHONDRIAL
- CLIATE_NUCLEAR
- MOLD_MITOCHONDRIAL
- ECHINODERM_MITOCHONDRIAL
这些都是有效的参数,可以被RNATools.getGeneticCode(String name)使用,这些翻译表也可以通过TranslationTools类
中的静态字串获得。
下面的例子使用Euplotid Nuclear 翻译表(UGA->Cys)。
[code lang="java"]
import org.biojava.bio.seq.*;
import org.biojava.bio.symbol.*;
public class AlternateTranslation {
public static void main(String[] args){
// 获得Euplotid Nuclear 翻译表
TranslationTable eup = RNATools.getGeneticCode(TranslationTable.EUPL_NUC);
try{
// 创建一条包含"tga"密码子的DNA序列
SymbolList seq = DNATools.createDNA("atgggcccatgaaaaggcttggagtaa");
// 转录成RNA
seq = RNATools.transcribe(seq);
// 在RNATools.translate()中,将RNA序列视为密码子序列
seq = SymbolListViews.windowedSymbolList(seq,3);
// 使用Euplotid Nuclear 翻译表进行翻译
SymbolList protein = SymbolListViews.translate(seq,eup);
// 输出蛋白质
System.out.println(protein.seqString());
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
[/code]