Merge branch 'features/JAL-653_JAL-1766_htslib_refseqsupport' into develop
[jalview.git] / src / jalview / ext / ensembl / EnsemblSequenceFetcher.java
index f1b96e2..9a4952e 100644 (file)
@@ -9,13 +9,20 @@ import com.stevesoft.pat.Regex;
  * A base class for Ensembl sequence fetchers
  * 
  * @author gmcarstairs
- *
  */
-public abstract class EnsemblSequenceFetcher extends DbSourceProxyImpl
+abstract class EnsemblSequenceFetcher extends DbSourceProxyImpl
 {
   /*
-   * possible values for the 'feature' parameter of the REST overlap endpoint
-   * @see 
+   * accepts ENSG/T/E/P with 11 digits
+   * or ENSMUSP or similar for other species
+   * or CCDSnnnnn.nn with at least 3 digits
+   */
+  private static final Regex ACCESSION_REGEX = new Regex(
+          "(ENS([A-Z]{3}|)[GTEP]{1}[0-9]{11}$)" + "|" + "(CCDS[0-9.]{3,}$)");
+
+  /*
+   * possible values for the 'feature' parameter of the /overlap REST service
+   * @see http://rest.ensembl.org/documentation/info/overlap_id
    */
   protected enum EnsemblFeatureType
   {
@@ -43,10 +50,16 @@ public abstract class EnsemblSequenceFetcher extends DbSourceProxyImpl
     return " ";
   }
 
+  /**
+   * Ensembl accession are ENST + 11 digits for human transcript, ENSG for human
+   * gene. Other species insert 3 letters e.g. ENSMUST..., ENSMUSG...
+   * 
+   * @see http://www.ensembl.org/Help/View?id=151
+   */
   @Override
   public Regex getAccessionValidator()
   {
-    return new Regex("((ENSP|ENST|ENSG|CCDS)[0-9.]{3,})");
+    return ACCESSION_REGEX;
   }
 
   @Override