BioJava中如何使用非标准的密码子表

评论2,098

在一般的翻译例子中我们使用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]

发表评论

匿名网友