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