-
- /**
- * Tests loading exonerate GFF2 output, including 'similarity' alignment
- * feature, on to sequences
- */
- @Test(groups = { "Functional" })
- public void testExonerateImport()
- {
- FileLoader loader = new FileLoader(false);
- AlignFrame af = loader.LoadFileWaitTillLoaded(
- "examples/testdata/exonerateseqs.fa",
- FormatAdapter.FILE);
-
- af.loadJalviewDataFile("examples/testdata/exonerateoutput.gff",
- FormatAdapter.FILE, null, null);
-
- /*
- * verify one mapping to a dummy sequence, one to a real one
- */
- Set<AlignedCodonFrame> mappings = af
- .getViewport().getAlignment().getDataset().getCodonFrames();
- assertEquals(2, mappings.size());
- Iterator<AlignedCodonFrame> iter = mappings.iterator();
-
- // first mapping is to dummy sequence
- AlignedCodonFrame mapping = iter.next();
- Mapping[] mapList = mapping.getProtMappings();
- assertEquals(1, mapList.length);
- assertTrue(mapList[0].getTo() instanceof SequenceDummy);
- assertEquals("DDB_G0269124", mapList[0].getTo().getName());
-
- // second mapping is to a sequence in the alignment
- mapping = iter.next();
- mapList = mapping.getProtMappings();
- assertEquals(1, mapList.length);
- SequenceI proteinSeq = af.getViewport().getAlignment()
- .findName("DDB_G0280897");
- assertSame(proteinSeq.getDatasetSequence(), mapList[0].getTo());
- assertEquals(1, mapping.getdnaToProt().length);
-
- // 143 in protein should map to codon [11270, 11269, 11268] in dna
- int[] mappedRegion = mapList[0].getMap().locateInFrom(143, 143);
- assertArrayEquals(new int[] { 11270, 11268 }, mappedRegion);
-
- // 182 in protein should map to codon [11153, 11152, 11151] in dna
- mappedRegion = mapList[0].getMap().locateInFrom(182, 182);
- assertArrayEquals(new int[] { 11153, 11151 }, mappedRegion);
-
- // and the reverse mapping:
- mappedRegion = mapList[0].getMap().locateInTo(11151, 11153);
- assertArrayEquals(new int[] { 182, 182 }, mappedRegion);
-
- // 11150 in dna should _not_ map to protein
- mappedRegion = mapList[0].getMap().locateInTo(11150, 11150);
- assertNull(mappedRegion);
-
- // similarly 183 in protein should _not_ map to dna
- mappedRegion = mapList[0].getMap().locateInFrom(183, 183);
- assertNull(mappedRegion);
- }