Merge branch 'feature/JAL-3187linkedFeatures' into feature/JAL-3251biotypedMappings
[jalview.git] / src / jalview / io / gff / ExonerateHelper.java
index 91add1a..303a5ac 100644 (file)
@@ -164,9 +164,8 @@ public class ExonerateHelper extends Gff2Helper
      */
     SequenceI mapFromSequence = seq;
     SequenceI mapToSequence = mappedSequence;
-    if ((type == MappingType.NucleotideToPeptide && featureIsOnTarget)
-            || (type == MappingType.PeptideToNucleotide
-                    && !featureIsOnTarget))
+    if ((MappingType.isDnaToPeptide(type) && featureIsOnTarget)
+            || (MappingType.isPeptideToDna(type) && !featureIsOnTarget))
     {
       mapFromSequence = mappedSequence;
       mapToSequence = seq;
@@ -299,7 +298,7 @@ public class ExonerateHelper extends Gff2Helper
   }
 
   /**
-   * Returns a MappingType depending on the exonerate 'model' value.
+   * Returns a MappingType depending on the exonerate 'model' value
    * 
    * @param model
    * @return
@@ -308,14 +307,25 @@ public class ExonerateHelper extends Gff2Helper
   {
     MappingType result = null;
 
-    if (model.contains(PROTEIN2DNA) || model.contains(PROTEIN2GENOME))
+    if (model.contains(PROTEIN2GENOME))
     {
-      result = MappingType.PeptideToNucleotide;
+      result = MappingType.PeptideToGenome;
     }
-    else if (model.contains(CODING2CODING) || model.contains(CODING2GENOME)
-            || model.contains(CDNA2GENOME) || model.contains(GENOME2GENOME))
+    else if (model.contains(PROTEIN2DNA))
     {
-      result = MappingType.NucleotideToNucleotide;
+      result = MappingType.PeptideToCds;
+    }
+    else if (model.contains(CODING2GENOME))
+    {
+      result = MappingType.CdsToGenome;
+    }
+    else if (model.contains(CDNA2GENOME))
+    {
+      result = MappingType.CdnaToGenome;
+    }
+    else if (model.contains(CODING2CODING) || model.contains(GENOME2GENOME))
+    {
+      result = MappingType.GenomeToCdna;
     }
     return result;
   }
@@ -353,12 +363,16 @@ public class ExonerateHelper extends Gff2Helper
     return false;
   }
 
+  /**
+   * An override to set feature group to "exonerate" instead of the default GFF
+   * source value (column 2)
+   */
   @Override
   protected SequenceFeature buildSequenceFeature(String[] gff,
           Map<String, List<String>> set)
   {
-    SequenceFeature sf = super.buildSequenceFeature(gff, set);
-    sf.setFeatureGroup("exonerate");
+    SequenceFeature sf = super.buildSequenceFeature(gff, TYPE_COL,
+            "exonerate", set);
 
     return sf;
   }