有时候你可能希望改变序列或标志链的标志次序.例如你可能希望能删除或者插入或者重写DNA序列中的碱基.

Biojava标志链有一个edit(Edit e)方法,能够以Edit对象为参数编辑标志链.Edit对象需要编辑起始位置,编辑数量为参数来编辑序列.

需要注意的是:很多Biojava序列或标志链不允许编辑操作,因为这样会破坏序列的注释和特征.最好的策略是拷贝序列一个副本,然后对这个副本进行编辑操作.下面的程序体现了这点.

[code lang="java"] import org.biojava.bio.seq.*; import org.biojava.bio.symbol.*;

public class EditExamples { public static void main(String[] args) throws Exception { // 你不能真正的编辑这条序列 Sequence seq = DNATools.createDNASequence("atggct", "seq");

// 所以需要这条序列的一个拷贝,利用拷贝构造器 SimpleSymbolList syms = new SimpleSymbolList(seq);

// 将"cc"加到序列末尾,覆盖0个碱基 Edit e = new Edit(seq.length()+1, 0, DNATools.createDNA("cc"));

// 应用Edit对象 syms.edit(e);

// 现在序列是"ttatggctcc" System.out.println(sym.seqString());

// 将"aca"插入第四个位置,覆盖0个碱基 e = new Edit(4,0,DNATools.createDNA("aca")); syms.edit(e);

// 用"ggg"覆盖在第二个位置开始的三个碱基 e = new Edit(2,3,DNATools.createDNA("ggg")); syms.edit(e);

// 现在应该是"tgggcatggctcc" System.out.println(syms.seqString());

// 删除开始的五个碱基 e = new Edit(1,5, SymbolList.EMPTY_LIST); syms.edit(e);

// 现在应该是"atggctcc" System.out.println(syms.seqString());

// 一个更复杂的例子 // 用"aa"覆盖位置2,3的碱基然后插入"tt" e = new Edit(2,2,DNATools.createDNA("aatt")); syms.edit(e);

// 现在应该是"aaattgctcc" System.out.println(syms.seqString()); } } [/code]

Copyright © 2088 世界杯直播cctv5_世界杯阿根 - sunjianping.com All Rights Reserved.
友情链接
top