1 package jalview.datamodel;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNull;
5 import jalview.util.MapList;
7 import java.util.Arrays;
11 public class AlignedCodonFrameTest
15 * Test the method that locates the first aligned sequence that has a mapping.
18 public void testFindAlignedSequence()
20 AlignmentI cdna = new Alignment(new SequenceI[]
22 final Sequence seq1 = new Sequence("Seq1", "C-G-TA-GC");
23 seq1.createDatasetSequence();
24 cdna.addSequence(seq1);
25 final Sequence seq2 = new Sequence("Seq2", "-TA-GG-GG");
26 seq2.createDatasetSequence();
27 cdna.addSequence(seq2);
29 AlignmentI aa = new Alignment(new SequenceI[]
31 final Sequence aseq1 = new Sequence("Seq1", "-P-R");
32 aseq1.createDatasetSequence();
33 aa.addSequence(aseq1);
34 final Sequence aseq2 = new Sequence("Seq2", "-LY-");
35 aseq2.createDatasetSequence();
36 aa.addSequence(aseq2);
39 * Mapping from first DNA sequence to second AA sequence.
41 AlignedCodonFrame acf = new AlignedCodonFrame();
43 assertNull(acf.findAlignedSequence(seq1, aa));
45 MapList map = new MapList(new int[]
48 acf.addMap(seq1.getDatasetSequence(), aseq2.getDatasetSequence(), map);
51 * DNA seq1 maps to AA seq2
53 assertEquals(aa.getSequenceAt(1),
54 acf.findAlignedSequence(cdna
55 .getSequenceAt(0).getDatasetSequence(), aa));
57 assertEquals(cdna.getSequenceAt(0),
58 acf.findAlignedSequence(aa
59 .getSequenceAt(1).getDatasetSequence(), cdna));
63 * Test the method that locates the mapped codon for a protein position.
66 public void testGetMappedRegion()
69 final Sequence seq1 = new Sequence("Seq1", "c-G-TA-gC-gT-T");
70 seq1.createDatasetSequence();
71 final Sequence seq2 = new Sequence("Seq2", "-TA-gG-Gg-CG-a");
72 seq2.createDatasetSequence();
74 final Sequence aseq1 = new Sequence("Seq1", "-P-R");
75 aseq1.createDatasetSequence();
76 final Sequence aseq2 = new Sequence("Seq2", "-LY-");
77 aseq2.createDatasetSequence();
79 AlignedCodonFrame acf = new AlignedCodonFrame();
81 assertNull(acf.getMappedRegion(seq1, aseq1, 1));
83 MapList map = new MapList(new int[]
84 { 2, 4, 6, 6, 8, 9 }, new int[]
86 acf.addMap(seq1.getDatasetSequence(), aseq1.getDatasetSequence(), map);
87 map = new MapList(new int[]
88 { 1, 2, 4, 5, 7, 8 }, new int[]
90 acf.addMap(seq2.getDatasetSequence(), aseq2.getDatasetSequence(), map);
92 assertEquals("[2, 4]",
93 Arrays.toString(acf.getMappedRegion(seq1, aseq1, 1)));
94 assertEquals("[6, 6, 8, 9]",
95 Arrays.toString(acf.getMappedRegion(seq1, aseq1, 2)));
96 assertEquals("[1, 2, 4, 4]",
97 Arrays.toString(acf.getMappedRegion(seq2, aseq2, 1)));
98 assertEquals("[5, 5, 7, 8]",
99 Arrays.toString(acf.getMappedRegion(seq2, aseq2, 2)));
101 assertNull(acf.getMappedRegion(seq1, aseq2, 1));