当你处理序列对象的时候可能希望能够删除一些特征。下面的例子由Keith James 提供,展示如何删除不需要的特征。
在这个例子中所有在正链上的特征都被删除。
[code lang="java"]
import java.io.*;
import java.util.*;
import org.biojava.bio.*;
import org.biojava.bio.seq.*;
import org.biojava.bio.seq.io.*;
public class RemoveFeatures {
public static void main(String[] args) throws Exception {
// 读取EMBL文件
BufferedReader br = new BufferedReader(new FileReader(args[0]));
SequenceIterator seqI = SeqIOTools.readEmbl(br);
while(seq.hasNext()){
Sequence seq = seqI.nextSequence();
// 获得所有在正链上的特征
FeatureHolder fh = seq.filter(new FeatureFilter.StrandFilter(StrandedFeature.POSITIVE));
// 遍历所有的特征
for ( Iterator i = fh.features();i.hasNext();){
// 删除每个特征
seq.removeFeature((Feature)i.next());
}
// 最后将编辑过的序列输出(EMBL format)
SeqIOTools.writeEmbl(System.out, seq);
}
}
}
[/code]