From 8b62506da19ac1487ee078481da07dcef8f65f0b Mon Sep 17 00:00:00 2001
From: tcarver <tjc>
Date: Thu, 1 Nov 2012 16:28:09 +0000
Subject: [PATCH] fix for setting fmin fmax partial so that this is not set for
 internal exons

---
 .../chado/ChadoTransactionManager.java        | 21 +++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
index 784265694..418c67d4d 100644
--- a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
+++ b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
@@ -2210,17 +2210,30 @@ public class ChadoTransactionManager
     }
     else
       featureloc.setPhase(null);
-    
-    if(gffFeature.getQualifierByName("isFminPartial") != null)
+
+    final RangeVector ranges = gffFeature.getLocation().getRanges();
+    boolean firstSeg = true;
+    boolean lastSeg  = true;
+    if(ranges.size() > 1) // define if first/last segment
+    {
+      firstSeg = false;
+      lastSeg  = false;
+      if(range_new.getStart() == gffFeature.getFirstBase())
+        firstSeg = true;
+      if(range_new.getEnd() == gffFeature.getLastBase())
+        lastSeg = true;
+    }
+
+    if(firstSeg && gffFeature.getQualifierByName("isFminPartial") != null)
       featureloc.setFminPartial(true);
     else
       featureloc.setFminPartial(false);
     
-    if(gffFeature.getQualifierByName("isFmaxPartial") != null)
+    if(lastSeg && gffFeature.getQualifierByName("isFmaxPartial") != null)
       featureloc.setFmaxPartial(true);
     else
       featureloc.setFmaxPartial(false);
-    
+
     return featureloc;
   }
   
-- 
GitLab