From dc12bf83656ccdfcf0d7f6c2983c50a11bc50fb4 Mon Sep 17 00:00:00 2001 From: tcarver <tjc> Date: Fri, 13 Sep 2013 12:37:55 +0100 Subject: [PATCH] fix for splitting GFF genes and then undo-ing the split --- uk/ac/sanger/artemis/components/EditMenu.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/uk/ac/sanger/artemis/components/EditMenu.java b/uk/ac/sanger/artemis/components/EditMenu.java index 1b5546a6b..50d124a6d 100644 --- a/uk/ac/sanger/artemis/components/EditMenu.java +++ b/uk/ac/sanger/artemis/components/EditMenu.java @@ -1641,7 +1641,7 @@ public class EditMenu extends SelectionMenu * @param entry_group Used to get the ActionController for calling * startAction() and endAction(). **/ - private static void unmergeFeature(final JFrame frame, + protected static void unmergeFeature(final JFrame frame, final Selection selection, final EntryGroup entry_group) { @@ -1710,16 +1710,15 @@ public class EditMenu extends SelectionMenu { final FeatureVector chadoGenes = new FeatureVector(); chadoGenes.add(segment_feature); - final Vector duplicateGenes = duplicateGeneFeatures(frame, chadoGenes, entry_group); + final Vector<ChadoCanonicalGene> duplicateGenes = duplicateGeneFeatures(frame, chadoGenes, entry_group); // get the new duplicate spliced feature - ChadoCanonicalGene chado_gene = (ChadoCanonicalGene)duplicateGenes.get(0); + ChadoCanonicalGene chado_gene = duplicateGenes.get(0); // assumes single transcript - uk.ac.sanger.artemis.io.Feature transcript = - (uk.ac.sanger.artemis.io.Feature)chado_gene.getTranscripts().get(0); + uk.ac.sanger.artemis.io.Feature transcript = chado_gene.getTranscripts().get(0); // get the spliced feature with the same key as the segment // selected to unmerge - uk.ac.sanger.artemis.io.Feature spliced = (uk.ac.sanger.artemis.io.Feature) + uk.ac.sanger.artemis.io.Feature spliced = chado_gene.getSpliceSitesOfTranscript(GeneUtils.getUniqueName(transcript), first_segment.getFeature().getKey().getKeyString()).get(0); new_feature = (Feature)spliced.getUserData(); @@ -1733,11 +1732,8 @@ public class EditMenu extends SelectionMenu // segment_feature and delete the segments up to (and including) // index_of_first_segment from new_feature - for(int i = all_feature_segments.size() - 1; - i >= index_of_second_segment; --i) - { + for(int i = all_feature_segments.size() - 1; i >= index_of_second_segment; --i) segment_feature.getSegments ().elementAt (i).removeFromFeature (); - } // remove the first segment of new_feature index_of_first_segment times for (int i = 0; i <= index_of_first_segment; ++i) @@ -1747,15 +1743,15 @@ public class EditMenu extends SelectionMenu { final FeatureVector chadoGenes = new FeatureVector(); chadoGenes.add(segment_feature); - final Vector duplicateGenes = duplicateGeneFeatures(frame, chadoGenes, entry_group); + final Vector<ChadoCanonicalGene> duplicateGenes = duplicateGeneFeatures(frame, chadoGenes, entry_group); final GFFStreamFeature orig_feature = (GFFStreamFeature)segment_feature.getEmblFeature(); final ChadoCanonicalGene orig_chado_gene = orig_feature.getChadoGene(); final String prevId = GeneUtils.getUniqueName(orig_chado_gene.getGene()); GeneUtils.deleteAllFeature( - ((uk.ac.sanger.artemis.Feature)orig_chado_gene.getGene().getUserData()), orig_chado_gene); + ((uk.ac.sanger.artemis.Feature)orig_chado_gene.getGene().getUserData()), orig_chado_gene, false); - final ChadoCanonicalGene gene1 = (ChadoCanonicalGene)duplicateGenes.get(0); + final ChadoCanonicalGene gene1 = duplicateGenes.get(0); final ChadoCanonicalGene gene2 = ((GFFStreamFeature)new_feature.getEmblFeature()).getChadoGene(); if(!prevId.startsWith("DUP")) { @@ -2176,7 +2172,7 @@ public class EditMenu extends SelectionMenu } - protected static Vector duplicateGeneFeatures(final JFrame frame, + private static Vector<ChadoCanonicalGene> duplicateGeneFeatures(final JFrame frame, final FeatureVector features, final EntryGroup entry_group) { -- GitLab