X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fext%2Fensembl%2FEnsemblSeqProxyTest.java;h=f9c2c4b70e4b4e168c166cde07897d75af72115b;hb=6c52cc0b81ae3abdc3c5f6f88a23364a0246351a;hp=5d95a3cb41cea5da6b704ff58dddc9f0229bc095;hpb=b2cedc8371f6624859f107581e6d84e841d4114b;p=jalview.git diff --git a/test/jalview/ext/ensembl/EnsemblSeqProxyTest.java b/test/jalview/ext/ensembl/EnsemblSeqProxyTest.java index 5d95a3c..f9c2c4b 100644 --- a/test/jalview/ext/ensembl/EnsemblSeqProxyTest.java +++ b/test/jalview/ext/ensembl/EnsemblSeqProxyTest.java @@ -4,17 +4,15 @@ import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertTrue; +import jalview.analysis.AlignmentUtils; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; -import jalview.datamodel.Sequence; -import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.io.AppletFormatAdapter; import jalview.io.FastaFile; import jalview.io.FileParse; import jalview.io.gff.SequenceOntologyFactory; import jalview.io.gff.SequenceOntologyLite; -import jalview.util.MappingUtils; import java.lang.reflect.Method; import java.net.MalformedURLException; @@ -216,149 +214,12 @@ public class EnsemblSeqProxyTest : "DOWN or unreachable ******************* BAD!")); } - /** - * Tests for the method that computes all peptide variants given codon - * variants - */ - @Test(groups = "Functional") - public void testComputePeptideVariants() - { - String[][] codonVariants = new String[][] { { "A" }, { "G" }, { "T" } }; - - /* - * AGT codes for S - this is not included in the variants returned - */ - List variants = EnsemblSeqProxy.computePeptideVariants(codonVariants, "S"); - assertEquals("[]", variants.toString()); - - // S is reported if it differs from the current value (A): - variants = EnsemblSeqProxy.computePeptideVariants(codonVariants, "A"); - assertEquals("[S]", variants.toString()); - - /* - * synonymous variant is not reported - */ - codonVariants = new String[][] { { "A" }, { "G" }, { "C", "T" } }; - // AGC and AGT both code for S - variants = EnsemblSeqProxy.computePeptideVariants(codonVariants, "s"); - assertEquals("[]", variants.toString()); - - /* - * equivalent variants are only reported once - */ - codonVariants = new String[][] { { "C" }, { "T" }, - { "A", "C", "G", "T" } }; - // CTA CTC CTG CTT all code for L - variants = EnsemblSeqProxy.computePeptideVariants(codonVariants, "S"); - assertEquals("[L]", variants.toString()); - - /* - * vary codons 1 and 2; variant products are sorted and non-redundant - */ - codonVariants = new String[][] { { "a", "C" }, { "g", "T" }, { "A" } }; - // aga ata cga cta code for R, I, R, L - variants = EnsemblSeqProxy.computePeptideVariants(codonVariants, "S"); - assertEquals("[I, L, R]", variants.toString()); - - /* - * vary codons 2 and 3 - */ - codonVariants = new String[][] { { "a" }, { "g", "T" }, { "A", "c" } }; - // aga agc ata atc code for R, S, I, I - variants = EnsemblSeqProxy.computePeptideVariants(codonVariants, "S"); - assertEquals("[I, R]", variants.toString()); - - /* - * vary codons 1 and 3 - */ - codonVariants = new String[][] { { "a", "t" }, { "a" }, { "t", "g" } }; - // aat aag tat tag code for N, K, Y, STOP - STOP sorted to end - variants = EnsemblSeqProxy.computePeptideVariants(codonVariants, "S"); - assertEquals("[K, N, Y, STOP]", variants.toString()); - - /* - * vary codons 1, 2 and 3 - */ - codonVariants = new String[][] { { "a", "t" }, { "G", "C" }, - { "t", "g" } }; - // agt agg act acg tgt tgg tct tcg code for S, R, T, T, C, W, S, S - variants = EnsemblSeqProxy.computePeptideVariants(codonVariants, "S"); - assertEquals("[C, R, T, W]", variants.toString()); - } - - /** - * Tests for the method that maps the subset of a dna sequence that has CDS - * (or subtype) feature. - */ - @Test(groups = "Functional") - public void testGetCdsRanges() - { - EnsemblSeqProxy testee = new EnsemblSeqProxyAdapter(); - - SequenceI dnaSeq = new Sequence("dna", "aaaGGGcccAAATTTttt"); - dnaSeq.createDatasetSequence(); - SequenceI ds = dnaSeq.getDatasetSequence(); - - // CDS for dna 3-6 - SequenceFeature sf = new SequenceFeature("CDS", "", 4, 6, 0f, null); - ds.addSequenceFeature(sf); - // exon feature should be ignored here - sf = new SequenceFeature("exon", "", 7, 9, 0f, null); - ds.addSequenceFeature(sf); - // CDS for dna 10-12 - sf = new SequenceFeature("CDS_predicted", "", 10, 12, 0f, null); - ds.addSequenceFeature(sf); - - List ranges = testee.getCdsRanges(dnaSeq); - assertEquals(6, MappingUtils.getLength(ranges)); - assertEquals(2, ranges.size()); - assertEquals(4, ranges.get(0)[0]); - assertEquals(6, ranges.get(0)[1]); - assertEquals(10, ranges.get(1)[0]); - assertEquals(12, ranges.get(1)[1]); - - } - @Test(groups = "Functional") public void getGenomicRangesFromFeatures() { } - /** - * Tests for the method that maps the subset of a dna sequence that has CDS - * (or subtype) feature - case where the start codon is incomplete. - */ - @Test(groups = "Functional") - public void testGetCdsRanges_fivePrimeIncomplete() - { - EnsemblSeqProxy testee = new EnsemblSeqProxyAdapter(); - - SequenceI dnaSeq = new Sequence("dna", "aaagGGCCCaaaTTTttt"); - dnaSeq.createDatasetSequence(); - SequenceI ds = dnaSeq.getDatasetSequence(); - - // CDS for dna 5-6 (incomplete codon), 7-9 - SequenceFeature sf = new SequenceFeature("CDS", "", 5, 9, 0f, null); - sf.setPhase("2"); // skip 2 bases to start of next codon - ds.addSequenceFeature(sf); - // CDS for dna 13-15 - sf = new SequenceFeature("CDS_predicted", "", 13, 15, 0f, null); - ds.addSequenceFeature(sf); - - List ranges = testee.getCdsRanges(dnaSeq); - - /* - * check the mapping starts with the first complete codon - */ - assertEquals(6, MappingUtils.getLength(ranges)); - assertEquals(2, ranges.size()); - assertEquals(7, ranges.get(0)[0]); - assertEquals(9, ranges.get(0)[1]); - assertEquals(13, ranges.get(1)[0]); - assertEquals(15, ranges.get(1)[1]); - } - @Test(groups = "Functional") public void testIsTranscriptIdentifier() {