From daae26d77ca41f38972dfcada536e95bdfb5c753 Mon Sep 17 00:00:00 2001 From: gmungoc Date: Fri, 1 Mar 2019 09:23:11 +0000 Subject: [PATCH] JAL-3140 reduced coupling to intervalstore.jar --- .classpath | 2 +- lib/intervalstore-src-v0.4.jar | Bin 0 -> 21544 bytes ...tervalstore-v0.3.jar => intervalstore-v0.4.jar} | Bin 20714 -> 28303 bytes .../datamodel/features/SequenceFeatures.java | 30 ++------------------ test/jalview/datamodel/SequenceTest.java | 1 - test/jalview/ext/ensembl/EnsemblSeqProxyTest.java | 26 ----------------- 6 files changed, 3 insertions(+), 56 deletions(-) create mode 100644 lib/intervalstore-src-v0.4.jar rename lib/{intervalstore-v0.3.jar => intervalstore-v0.4.jar} (66%) diff --git a/.classpath b/.classpath index 141510b..71ea399 100644 --- a/.classpath +++ b/.classpath @@ -70,6 +70,6 @@ - + diff --git a/lib/intervalstore-src-v0.4.jar b/lib/intervalstore-src-v0.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..3feafbb3020d706e63e19219aa948246a9a3fd53 GIT binary patch literal 21544 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 literal 0 HcmV?d00001 diff --git a/lib/intervalstore-v0.3.jar b/lib/intervalstore-v0.4.jar similarity index 66% rename from lib/intervalstore-v0.3.jar rename to lib/intervalstore-v0.4.jar index 506fc93347fafb9275eeccfd73729866b9d5069a..4f6101ca65c250fb97cabb6929d979e3714079a8 100644 GIT binary patch delta 8336 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 P1cA_rm4RWBH;4xS4}D|1 diff --git a/src/jalview/datamodel/features/SequenceFeatures.java b/src/jalview/datamodel/features/SequenceFeatures.java index bd102f6..5390975 100644 --- a/src/jalview/datamodel/features/SequenceFeatures.java +++ b/src/jalview/datamodel/features/SequenceFeatures.java @@ -26,8 +26,6 @@ import jalview.io.gff.SequenceOntologyI; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -47,29 +45,6 @@ import intervalstore.api.IntervalI; */ public class SequenceFeatures implements SequenceFeaturesI { - /** - * a comparator for sorting features by start position ascending - */ - private static Comparator FORWARD_STRAND = new Comparator() - { - @Override - public int compare(IntervalI o1, IntervalI o2) - { - return Integer.compare(o1.getBegin(), o2.getBegin()); - } - }; - - /** - * a comparator for sorting features by end position descending - */ - private static Comparator REVERSE_STRAND = new Comparator() - { - @Override - public int compare(IntervalI o1, IntervalI o2) - { - return Integer.compare(o2.getEnd(), o1.getEnd()); - } - }; /* * map from feature type to structured store of features for that type @@ -436,11 +411,10 @@ public class SequenceFeatures implements SequenceFeaturesI * @param features * @param forwardStrand */ - public static void sortFeatures(List features, + public static void sortFeatures(List features, final boolean forwardStrand) { - Collections.sort(features, forwardStrand ? FORWARD_STRAND - : REVERSE_STRAND); + IntervalI.sortIntervals(features, forwardStrand); } /** diff --git a/test/jalview/datamodel/SequenceTest.java b/test/jalview/datamodel/SequenceTest.java index 787179b..216635d 100644 --- a/test/jalview/datamodel/SequenceTest.java +++ b/test/jalview/datamodel/SequenceTest.java @@ -48,7 +48,6 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import intervalstore.impl.Range; import junit.extensions.PA; public class SequenceTest diff --git a/test/jalview/ext/ensembl/EnsemblSeqProxyTest.java b/test/jalview/ext/ensembl/EnsemblSeqProxyTest.java index 69b2ad4..17e92c8 100644 --- a/test/jalview/ext/ensembl/EnsemblSeqProxyTest.java +++ b/test/jalview/ext/ensembl/EnsemblSeqProxyTest.java @@ -234,30 +234,4 @@ public class EnsemblSeqProxyTest // verify attributes string is updated with reverse complement assertEquals("x=y,z;alleles=" + revcomp + ";a=b,c", sf.getAttributes()); } - - @Test(groups = "Functional") - public void testSortFeatures() - { - SequenceFeature sf1 = new SequenceFeature("", "", 10, 15, 0f, null); - SequenceFeature sf2 = new SequenceFeature("", "", 8, 12, 0f, null); - SequenceFeature sf3 = new SequenceFeature("", "", 8, 13, 0f, null); - SequenceFeature sf4 = new SequenceFeature("", "", 11, 11, 0f, null); - List sfs = Arrays.asList(new SequenceFeature[] { sf1, - sf2, sf3, sf4 }); - - // sort by start position ascending (forward strand) - // sf2 and sf3 tie and should not be reordered by sorting - SequenceFeatures.sortFeatures(sfs, true); - assertSame(sfs.get(0), sf2); - assertSame(sfs.get(1), sf3); - assertSame(sfs.get(2), sf1); - assertSame(sfs.get(3), sf4); - - // sort by end position descending (reverse strand) - SequenceFeatures.sortFeatures(sfs, false); - assertSame(sfs.get(0), sf1); - assertSame(sfs.get(1), sf3); - assertSame(sfs.get(2), sf2); - assertSame(sfs.get(3), sf4); - } } -- 1.7.10.2