f1b96e2af6120ba5ffd4028c5375dd3ef6fde343
[jalview.git] / src / jalview / ext / ensembl / EnsemblSequenceFetcher.java
1 package jalview.ext.ensembl;
2
3 import jalview.datamodel.DBRefSource;
4 import jalview.ws.seqfetcher.DbSourceProxyImpl;
5
6 import com.stevesoft.pat.Regex;
7
8 /**
9  * A base class for Ensembl sequence fetchers
10  * 
11  * @author gmcarstairs
12  *
13  */
14 public abstract class EnsemblSequenceFetcher extends DbSourceProxyImpl
15 {
16   /*
17    * possible values for the 'feature' parameter of the REST overlap endpoint
18    * @see 
19    */
20   protected enum EnsemblFeatureType
21   {
22     gene, transcript, cds, exon, repeat, simple, misc, variation,
23     somatic_variation, structural_variation, somatic_structural_variation,
24     constrained, regulatory
25   }
26
27   @Override
28   public String getDbSource()
29   {
30     // NB ensure Uniprot xrefs are canonicalised from "Ensembl" to "ENSEMBL"
31     return DBRefSource.ENSEMBL; // "ENSEMBL"
32   }
33
34   @Override
35   public String getDbVersion()
36   {
37     return "0";
38   }
39
40   @Override
41   public String getAccessionSeparator()
42   {
43     return " ";
44   }
45
46   @Override
47   public Regex getAccessionValidator()
48   {
49     return new Regex("((ENSP|ENST|ENSG|CCDS)[0-9.]{3,})");
50   }
51
52   @Override
53   public boolean isValidReference(String accession)
54   {
55     return getAccessionValidator().search(accession);
56   }
57
58   @Override
59   public int getTier()
60   {
61     return 0;
62   }
63
64   /**
65    * Default test query is a transcript
66    */
67   @Override
68   public String getTestQuery()
69   {
70     // has CDS on reverse strand:
71     return "ENST00000288602";
72     // ENST00000461457 // forward strand
73   }
74
75   @Override
76   public boolean isDnaCoding()
77   {
78     return true;
79   }
80 }