3 import jalview.io.xdb.genbank.GenBankFeature;
4 import jalview.io.xdb.genbank.GenBankSequence;
6 import java.util.ArrayList;
8 import java.util.Vector;
10 public class DnaUtils {
13 * @param gbf CDS feature data
14 * @param sequences ORIGIN data
15 * @return Nucleotid String (sequence) of CDS
17 public static String getSequence(GenBankFeature gbf, Vector<GenBankSequence> sequences){
18 if (!gbf.getType().equals(GenBankFeature.CDS)){
19 //If the feature is not a CDS, no sequence is returned
22 String range = gbf.getQualifier("range");
23 if (range.startsWith("join")){
25 //It's a composed sequence
28 String[] positions = range.split("..");
29 int initRange = Integer.parseInt(positions[0]);
30 int endRange = Integer.parseInt(positions[1]);
31 String sourceSequence = getNucleotidesFromSequenceVector(sequences);
32 return sourceSequence.substring(initRange, endRange);
38 private static boolean isSequenceInRange(int initRange, int endRange, GenBankSequence gbs){
39 return ((initRange>=gbs.getId()) && (endRange>=gbs.getId()));
41 private static String getNucleotidesInRangeFromSequence(int initRange, int endRange, GenBankSequence gbs){
44 public static String getNucleotidesFromSequenceVector(Vector<GenBankSequence> v){
45 StringBuffer sb = new StringBuffer();
46 for (GenBankSequence gbs:v){
47 Vector<String> seqs = gbs.getSequences();
56 public static void main(String[] args) {
57 // TODO Auto-generated method stub