import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertSame;
import static org.testng.AssertJUnit.assertTrue;
-import static org.testng.AssertJUnit.fail;
import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
import java.awt.Color;
import org.testng.annotations.Test;
import jalview.api.AlignViewportI;
-import jalview.bin.Cache;
+import jalview.bin.Console;
import jalview.commands.EditCommand;
import jalview.commands.EditCommand.Action;
import jalview.commands.EditCommand.Edit;
@BeforeClass(alwaysRun = true)
public void setUp()
{
- Cache.initLogger();
+ Console.initLogger();
}
-
+
@BeforeClass(alwaysRun = true)
public void setUpJvOptionPane()
{
.asList(new AlignedCodonFrame[]
{ acf });
- AlignViewportI theDnaView = new AlignViewport(cdna);
- AlignViewportI theProteinView = new AlignViewport(protein);
+ AlignViewportI dnaView = new AlignViewport(cdna);
+ AlignViewportI proteinView = new AlignViewport(protein);
protein.setCodonFrames(acfList);
/*
* Verify the mapped sequence group in dna
*/
SequenceGroup mappedGroup = MappingUtils.mapSequenceGroup(sg,
- theProteinView, theDnaView);
+ proteinView, dnaView);
assertTrue(mappedGroup.getColourText());
assertSame(sg.getIdColour(), mappedGroup.getIdColour());
assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour());
sg.addSequence(cdna.getSequenceAt(0), false);
sg.setStartRes(0);
sg.setEndRes(2);
- mappedGroup = MappingUtils.mapSequenceGroup(sg, theDnaView, theProteinView);
+ mappedGroup = MappingUtils.mapSequenceGroup(sg, dnaView, proteinView);
assertTrue(mappedGroup.getColourText());
assertSame(sg.getIdColour(), mappedGroup.getIdColour());
assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour());
.asList(new AlignedCodonFrame[]
{ acf });
- AlignViewportI theDnaView = new AlignViewport(cdna);
- AlignViewportI theProteinView = new AlignViewport(protein);
+ AlignViewportI dnaView = new AlignViewport(cdna);
+ AlignViewportI proteinView = new AlignViewport(protein);
protein.setCodonFrames(acfList);
/*
* Verify the mapped sequence group in dna
*/
SequenceGroup mappedGroup = MappingUtils.mapSequenceGroup(sg,
- theProteinView, theDnaView);
+ proteinView, dnaView);
assertTrue(mappedGroup.getColourText());
assertSame(sg.getIdColour(), mappedGroup.getIdColour());
assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour());
// select columns 2 and 3 in DNA which span protein columns 0 and 1
sg.setStartRes(2);
sg.setEndRes(3);
- mappedGroup = MappingUtils.mapSequenceGroup(sg, theDnaView, theProteinView);
+ mappedGroup = MappingUtils.mapSequenceGroup(sg, dnaView, proteinView);
assertTrue(mappedGroup.getColourText());
assertSame(sg.getIdColour(), mappedGroup.getIdColour());
assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour());
* viewport).
*/
AlignmentI cdna = loadAlignment(
- ">Cds11\nA-CG-GC--AT-CA\n>Cds2\n-TG-AC-AG-T-AT\n>Cds3\n-T--ACG-TAAT-G\n",
+ ">Seq1\nA-CG-GC--AT-CA\n>Seq2\n-TG-AC-AG-T-AT\n>Seq3\n-T--ACG-TAAT-G\n",
FileFormat.Fasta);
cdna.setDataset(null);
AlignmentI protein = loadAlignment(
- ">Pep1\n-KA-S\n>Pep2\n--L-QY\n>Pep3\nQ-V-M\n",
+ ">Seq1\n-KA-S\n>Seq2\n--L-QY\n>Seq3\nQ-V-M\n",
FileFormat.Fasta);
protein.setDataset(null);
AlignedCodonFrame acf = new AlignedCodonFrame();
.asList(new AlignedCodonFrame[]
{ acf });
- AlignViewportI theDnaView = new AlignViewport(cdna);
- AlignViewportI theProteinView = new AlignViewport(protein);
+ AlignViewportI dnaView = new AlignViewport(cdna);
+ AlignViewportI proteinView = new AlignViewport(protein);
protein.setCodonFrames(acfList);
/*
- * Select Pep1 and Pep2 in the protein, column 1 (K/-). Expect mapped
- * sequence group to cover Cds1, columns 0-3 (ACG). Although the selection
- * only includes a gap in Cds2, mapped Cds2 is included with 'no columns'
+ * Select Seq1 and Seq2 in the protein, column 1 (K/-). Expect mapped
+ * sequence group to cover Seq1, columns 0-3 (ACG). Because the selection
+ * only includes a gap in Seq2 there is no mappable selection region in the
+ * corresponding DNA.
*/
SequenceGroup sg = new SequenceGroup();
sg.setColourText(true);
* Verify the mapped sequence group in dna
*/
SequenceGroup mappedGroup = MappingUtils.mapSequenceGroup(sg,
- theProteinView, theDnaView);
+ proteinView, dnaView);
assertTrue(mappedGroup.getColourText());
assertSame(sg.getIdColour(), mappedGroup.getIdColour());
assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour());
- assertEquals(2, mappedGroup.getSequences().size());
+ assertEquals(1, mappedGroup.getSequences().size());
assertSame(cdna.getSequenceAt(0), mappedGroup.getSequences().get(0));
- assertSame(cdna.getSequenceAt(1), mappedGroup.getSequences().get(1));
- // Pep2 in protein has a gap in column 1 - doesn't map to any column
- // Pep1 has K which should map to columns 0-3 in Cds1
+ // Seq2 in protein has a gap in column 1 - ignored
+ // Seq1 has K which should map to columns 0-3 in Seq1
assertEquals(0, mappedGroup.getStartRes());
assertEquals(3, mappedGroup.getEndRes());
*/
sg.setStartRes(2);
sg.setEndRes(4);
- mappedGroup = MappingUtils.mapSequenceGroup(sg, theProteinView, theDnaView);
+ mappedGroup = MappingUtils.mapSequenceGroup(sg, proteinView, dnaView);
assertEquals(1, mappedGroup.getStartRes());
assertEquals(13, mappedGroup.getEndRes());
// select columns 4,5 - includes Seq1:codon2 (A) only
sg.setStartRes(4);
sg.setEndRes(5);
- mappedGroup = MappingUtils.mapSequenceGroup(sg, theDnaView, theProteinView);
+ mappedGroup = MappingUtils.mapSequenceGroup(sg, dnaView, proteinView);
assertEquals(2, mappedGroup.getStartRes());
assertEquals(2, mappedGroup.getEndRes());
// add Seq2 to dna selection cols 4-5 include codons 1 and 2 (LQ)
sg.addSequence(cdna.getSequenceAt(1), false);
- mappedGroup = MappingUtils.mapSequenceGroup(sg, theDnaView, theProteinView);
+ mappedGroup = MappingUtils.mapSequenceGroup(sg, dnaView, proteinView);
assertEquals(2, mappedGroup.getStartRes());
assertEquals(4, mappedGroup.getEndRes());
// add Seq3 to dna selection cols 4-5 include codon 1 (Q)
sg.addSequence(cdna.getSequenceAt(2), false);
- mappedGroup = MappingUtils.mapSequenceGroup(sg, theDnaView, theProteinView);
+ mappedGroup = MappingUtils.mapSequenceGroup(sg, dnaView, proteinView);
assertEquals(0, mappedGroup.getStartRes());
assertEquals(4, mappedGroup.getEndRes());
}
assertEquals(1, ranges.size());
assertEquals(9, ranges.get(0)[1]);
}
-
+
@Test(groups = "Functional")
- public void testListToArray()
+ public void testFindOverlap()
{
List<int[]> ranges = new ArrayList<>();
-
- int[] result = MappingUtils.listToArray(ranges);
- assertEquals(result.length, 0);
- ranges.add(new int[] {24, 12});
- result = MappingUtils.listToArray(ranges);
- assertEquals(result.length, 2);
- assertEquals(result[0], 24);
- assertEquals(result[1], 12);
- ranges.add(new int[] {-7, 30});
- result = MappingUtils.listToArray(ranges);
- assertEquals(result.length, 4);
- assertEquals(result[0], 24);
- assertEquals(result[1], 12);
- assertEquals(result[2], -7);
- assertEquals(result[3], 30);
- try
- {
- MappingUtils.listToArray(null);
- fail("Expected exception");
- } catch (NullPointerException e)
- {
- // expected
- }
+ ranges.add(new int[] { 4, 8 });
+ ranges.add(new int[] { 10, 12 });
+ ranges.add(new int[] { 16, 19 });
+
+ int[] overlap = MappingUtils.findOverlap(ranges, 5, 13);
+ assertArrayEquals(overlap, new int[] { 5, 12 });
+ overlap = MappingUtils.findOverlap(ranges, -100, 100);
+ assertArrayEquals(overlap, new int[] { 4, 19 });
+ overlap = MappingUtils.findOverlap(ranges, 7, 17);
+ assertArrayEquals(overlap, new int[] { 7, 17 });
+ overlap = MappingUtils.findOverlap(ranges, 13, 15);
+ assertNull(overlap);
}
/**
* Test mapping a sequence group where sequences in and outside the group
* share a dataset sequence (e.g. alternative CDS for the same gene)
* <p>
- * This scenario doesn't arise after JAL-3763 changes, but test left as still valid
+ * This scenario doesn't arise after JAL-3763 changes, but test left as still
+ * valid
+ *
* @throws IOException
*/
@Test(groups = { "Functional" })
assertEquals(0, mappedGroup.getStartRes());
assertEquals(1, mappedGroup.getEndRes()); // two columns
}
-
- @Test(groups = "Functional")
- public void testFindOverlap()
- {
- List<int[]> ranges = new ArrayList<>();
- ranges.add(new int[] {4, 8});
- ranges.add(new int[] {10, 12});
- ranges.add(new int[] {16, 19});
-
- int[] overlap = MappingUtils.findOverlap(ranges, 5, 13);
- assertArrayEquals(overlap, new int[] {5, 12});
- overlap = MappingUtils.findOverlap(ranges, -100, 100);
- assertArrayEquals(overlap, new int[] {4, 19});
- overlap = MappingUtils.findOverlap(ranges, 7, 17);
- assertArrayEquals(overlap, new int[] {7, 17});
- overlap = MappingUtils.findOverlap(ranges, 13, 15);
- assertNull(overlap);
- }
}