acd0bb9fec86ac942cfb4c40b268a71faa59fd16
[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          * @param gbf CDS feature data
14          * @param sequences ORIGIN data
15          * @return Nucleotid String (sequence) of CDS
16          */
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
20                         return null;
21                 }else{
22                         String range = gbf.getQualifier("range");
23                         if (range.startsWith("join")){
24                                 //TODO
25                                 //It's a composed sequence
26                         }else{
27                                 //It's a simple range
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);
33                         }
34                 }
35                 return null;
36                 
37         }
38         private static boolean isSequenceInRange(int initRange, int endRange, GenBankSequence gbs){             
39                 return ((initRange>=gbs.getId()) && (endRange>=gbs.getId()));
40         }
41         private static String getNucleotidesInRangeFromSequence(int initRange, int endRange, GenBankSequence gbs){
42                 return "";
43         }
44         public static String getNucleotidesFromSequenceVector(Vector<GenBankSequence> v){
45                 StringBuffer sb = new StringBuffer();
46                 for (GenBankSequence gbs:v){
47                         Vector<String> seqs = gbs.getSequences();
48                         for (String s:seqs)
49                                 sb.append(s);
50                 }
51                 return sb.toString();
52         }
53         /**
54          * @param args
55          */
56         public static void main(String[] args) {
57                 // TODO Auto-generated method stub
58
59         }
60
61 }