JAL-1260 source formatting according to utils/eclipse/JalviewCodeStyle.xml
[jalview.git] / src / jalview / io / DnaUtils.java
1 package jalview.io;
2
3 import jalview.io.xdb.genbank.GenBankFeature;
4 import jalview.io.xdb.genbank.GenBankSequence;
5
6 import java.util.ArrayList;
7 import java.util.List;
8 import java.util.Vector;
9
10 public class DnaUtils
11 {
12
13   /**
14    * @param gbf
15    *          CDS feature data
16    * @param sequences
17    *          ORIGIN data
18    * @return Nucleotid String (sequence) of CDS
19    */
20   public static String getSequence(GenBankFeature gbf,
21           Vector<GenBankSequence> sequences)
22   {
23     if (!gbf.getType().equals(GenBankFeature.CDS))
24     {
25       // If the feature is not a CDS, no sequence is returned
26       return null;
27     }
28     else
29     {
30       String range = gbf.getQualifier("range");
31       if (range.startsWith("join"))
32       {
33         // TODO
34         // It's a composed sequence
35       }
36       else
37       {
38         // It's a simple range
39         String[] positions = range.split("..");
40         int initRange = Integer.parseInt(positions[0]);
41         int endRange = Integer.parseInt(positions[1]);
42         String sourceSequence = getNucleotidesFromSequenceVector(sequences);
43         return sourceSequence.substring(initRange, endRange);
44       }
45     }
46     return null;
47
48   }
49
50   private static boolean isSequenceInRange(int initRange, int endRange,
51           GenBankSequence gbs)
52   {
53     return ((initRange >= gbs.getId()) && (endRange >= gbs.getId()));
54   }
55
56   private static String getNucleotidesInRangeFromSequence(int initRange,
57           int endRange, GenBankSequence gbs)
58   {
59     return "";
60   }
61
62   public static String getNucleotidesFromSequenceVector(
63           Vector<GenBankSequence> v)
64   {
65     StringBuffer sb = new StringBuffer();
66     for (GenBankSequence gbs : v)
67     {
68       Vector<String> seqs = gbs.getSequences();
69       for (String s : seqs)
70         sb.append(s);
71     }
72     return sb.toString();
73   }
74
75   /**
76    * @param args
77    */
78   public static void main(String[] args)
79   {
80     // TODO Auto-generated method stub
81
82   }
83
84 }