JAL-1796 parse ensembl genomic coordinates to set start position
[jalview.git] / src / jalview / io / AlignFile.java
index 7e0cabd..2b8f127 100755 (executable)
@@ -47,7 +47,8 @@ public abstract class AlignFile extends FileParse
   int maxLength = 0;
 
   /**
-   * Sequences to be added to form a new alignment.
+   * Sequences to be added to form a new alignment. TODO: remove vector in this
+   * class
    */
   protected Vector<SequenceI> seqs;
 
@@ -351,7 +352,27 @@ public abstract class AlignFile extends FileParse
     if (space > -1)
     {
       seq = new Sequence(id.substring(0, space), "");
-      seq.setDescription(id.substring(space + 1));
+      String desc = id.substring(space + 1);
+      seq.setDescription(desc);
+
+      if (desc.startsWith("chromosome"))
+      {
+        /*
+         * parse Ensembl style gene description e.g.
+         * chromosome:GRCh38:7:140696688:140721955:1
+         */
+        String[] tokens = desc.split(":");
+        if (tokens.length > 3)
+        {
+          try
+          {
+            seq.setStart(Integer.parseInt(tokens[3]));
+          } catch (NumberFormatException e)
+          {
+            // ignore
+          }
+        }
+      }
     }
     else
     {