JAL-1705 JAL-1191 SequenceOntologyLite added as hard-coded alternative
[jalview.git] / src / jalview / io / gff / Gff3Helper.java
index 1ffe27c..d29645b 100644 (file)
@@ -5,6 +5,7 @@ import jalview.datamodel.AlignmentI;
 import jalview.datamodel.MappingType;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
+import jalview.ext.ensembl.EnsemblSeqProxy;
 import jalview.util.MapList;
 import jalview.util.StringUtils;
 
@@ -69,12 +70,13 @@ public class Gff3Helper extends GffHelperBase
       String atts = gff[ATTRIBUTES_COL];
       Map<String, List<String>> attributes = parseNameValuePairs(atts);
 
-      if (SequenceOntology.getInstance().isProteinMatch(soTerm))
+      SequenceOntologyI so = SequenceOntologyFactory.getInstance();
+      if (so.isA(soTerm, SequenceOntologyI.PROTEIN_MATCH))
       {
-        sf = processProteinMatch(attributes, seq, gff, align,
-                newseqs, relaxedIdMatching);
+        sf = processProteinMatch(attributes, seq, gff, align, newseqs,
+                relaxedIdMatching);
       }
-      else if (SequenceOntology.getInstance().isNucleotideMatch(soTerm))
+      else if (so.isA(soTerm, SequenceOntologyI.NUCLEOTIDE_MATCH))
       {
         sf = processNucleotideMatch(attributes, seq, gff, align,
                 newseqs, relaxedIdMatching);
@@ -371,7 +373,9 @@ public class Gff3Helper extends GffHelperBase
       desc = target.split(" ")[0];
     }
 
-    if (SequenceOntology.getInstance().isSequenceVariant(sf.getType()))
+    SequenceOntologyI so = SequenceOntologyFactory.getInstance();
+    String type = sf.getType();
+    if (so.isA(type, SequenceOntologyI.SEQUENCE_VARIANT))
     {
       /*
        * Ensembl returns dna variants as 'alleles'
@@ -381,10 +385,11 @@ public class Gff3Helper extends GffHelperBase
     }
 
     /*
-     * Ensembl returns gene name as 'Name' for a transcript
+     * extract 'Name' for a transcript (to show gene name)
+     * or an exon (so 'colour by label' shows exon boundaries) 
      */
-    if (SequenceOntology.getInstance().isA(sf.getType(),
-            SequenceOntology.TRANSCRIPT))
+    if (EnsemblSeqProxy.isTranscript(type)
+            || so.isA(type, SequenceOntology.EXON))
     {
       desc = StringUtils.listToDelimitedString(attributes.get("Name"), ",");
     }