From a8e485ec6c8ffd5c6fb44cc30d5420660bfb11f8 Mon Sep 17 00:00:00 2001 From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04> Date: Wed, 12 Mar 2008 20:57:24 +0000 Subject: [PATCH] fix for overlapping CDS in to create intergenic features git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@7225 ee4ac58c-ac51-4696-9907-e4b3aa274f04 --- uk/ac/sanger/artemis/components/AddMenu.java | 30 ++++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/uk/ac/sanger/artemis/components/AddMenu.java b/uk/ac/sanger/artemis/components/AddMenu.java index 6df327cd8..4e8da4c5c 100644 --- a/uk/ac/sanger/artemis/components/AddMenu.java +++ b/uk/ac/sanger/artemis/components/AddMenu.java @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/AddMenu.java,v 1.35 2008-02-06 12:17:53 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/AddMenu.java,v 1.36 2008-03-12 20:57:24 tjc Exp $ */ package uk.ac.sanger.artemis.components; @@ -73,7 +73,7 @@ import javax.swing.KeyStroke; * should have been called CreateMenu. * * @author Kim Rutherford - * @version $Id: AddMenu.java,v 1.35 2008-02-06 12:17:53 tjc Exp $ + * @version $Id: AddMenu.java,v 1.36 2008-03-12 20:57:24 tjc Exp $ **/ public class AddMenu extends SelectionMenu { @@ -898,6 +898,18 @@ public class AddMenu extends SelectionMenu if(i==0 && r.getStart()==1) { prevEnd = r.getEnd(); + + // check for overlapping CDS + if(i<cdsRanges.size()-1) + { + int next = i+1; + while(((Range)cdsRanges.get(next)).getStart() <= prevEnd) + { + prevEnd = ((Range)cdsRanges.get(next)).getEnd(); + i = next; + next++; + } + } continue; } @@ -917,7 +929,19 @@ public class AddMenu extends SelectionMenu location, qualifiers); prevEnd = r.getEnd(); - if(i==cdsRanges.size()-1) + // check for overlapping CDS + if(i<cdsRanges.size()-1) + { + int next = i+1; + while( next < cdsRanges.size() && + ((Range)cdsRanges.get(next)).getStart() <= prevEnd) + { + prevEnd = ((Range)cdsRanges.get(next)).getEnd(); + i = next; + next++; + } + } + else if(i==cdsRanges.size()-1) { if(entry_group.getSequenceLength() > r.getEnd()) { -- GitLab