X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2Fxdb%2Fembl%2FEmblEntryTest.java;fp=test%2Fjalview%2Fdatamodel%2Fxdb%2Fembl%2FEmblEntryTest.java;h=e8760bd1f12692deccf3a0363f5f81ac559c55f6;hb=d734217a33aa6bfa39a4ac207592b4696ffdc48d;hp=c36b7d33d739df9626f576c1767788f8fe23066a;hpb=415f149083cc1a2112b922a18688adce0e1025d8;p=jalview.git diff --git a/test/jalview/datamodel/xdb/embl/EmblEntryTest.java b/test/jalview/datamodel/xdb/embl/EmblEntryTest.java index c36b7d3..e8760bd 100644 --- a/test/jalview/datamodel/xdb/embl/EmblEntryTest.java +++ b/test/jalview/datamodel/xdb/embl/EmblEntryTest.java @@ -1,7 +1,9 @@ package jalview.datamodel.xdb.embl; import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertSame; +import jalview.datamodel.DBRefEntry; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; @@ -36,17 +38,79 @@ public class EmblEntryTest SequenceI dna = new Sequence("J03321", "GGATCCGTAAGTTAGACGAAATT"); List peptides = new ArrayList(); EmblFile ef = EmblTestHelper.getEmblFile(); - EmblFeature feature = null; - for (EmblFeature feat : ef.getEntries().get(0).getFeatures()) + + /* + * parse two CDS features, one with two Uniprot cross-refs, + * the other with one + */ + EmblEntry testee = new EmblEntry(); + for (EmblFeature feature : ef.getEntries().get(0).getFeatures()) { - if ("CDS".equals(feat.getName())) + if ("CDS".equals(feature.getName())) { - feature = feat; - break; + testee.parseCodingFeature(feature, "EMBL", dna, peptides); } } - EmblEntry testee = new EmblEntry(); - testee.parseCodingFeature(feature, "EMBL", dna, peptides); + /* + * peptides should now have five entries: + * EMBL product and two Uniprot accessions for the first CDS / translation + * EMBL product and one Uniprot accession for the second CDS / translation + */ + assertEquals(5, peptides.size()); + assertEquals("CAA30420.1", peptides.get(0).getName()); + assertEquals("MLCF", peptides.get(0).getSequenceAsString()); + assertEquals("UNIPROT|B0BCM4", peptides.get(1).getName()); + assertEquals("MLCF", peptides.get(1).getSequenceAsString()); + assertEquals("UNIPROT|P0CE20", peptides.get(2).getName()); + assertEquals("MLCF", peptides.get(2).getSequenceAsString()); + assertEquals("CAA30421.1", peptides.get(3).getName()); + assertEquals("MSSS", peptides.get(3).getSequenceAsString()); + assertEquals("UNIPROT|B0BCM3", peptides.get(4).getName()); + assertEquals("MSSS", peptides.get(4).getSequenceAsString()); + + /* + * verify dna sequence has dbrefs with mappings to the peptide 'products' + */ + DBRefEntry[] dbrefs = dna.getDBRefs(); + assertEquals(3, dbrefs.length); + DBRefEntry dbRefEntry = dbrefs[0]; + assertEquals("UNIPROT", dbRefEntry.getSource()); + assertEquals("B0BCM4", dbRefEntry.getAccessionId()); + assertSame(peptides.get(1), dbRefEntry.getMap().getTo()); + List fromRanges = dbRefEntry.getMap().getMap().getFromRanges(); + assertEquals(1, fromRanges.size()); + assertEquals(57, fromRanges.get(0)[0]); + assertEquals(46, fromRanges.get(0)[1]); + List toRanges = dbRefEntry.getMap().getMap().getToRanges(); + assertEquals(1, toRanges.size()); + assertEquals(1, toRanges.get(0)[0]); + assertEquals(4, toRanges.get(0)[1]); + + dbRefEntry = dbrefs[1]; + assertEquals("UNIPROT", dbRefEntry.getSource()); + assertEquals("P0CE20", dbRefEntry.getAccessionId()); + assertSame(peptides.get(2), dbRefEntry.getMap().getTo()); + fromRanges = dbRefEntry.getMap().getMap().getFromRanges(); + assertEquals(1, fromRanges.size()); + assertEquals(57, fromRanges.get(0)[0]); + assertEquals(46, fromRanges.get(0)[1]); + toRanges = dbRefEntry.getMap().getMap().getToRanges(); + assertEquals(1, toRanges.size()); + assertEquals(1, toRanges.get(0)[0]); + assertEquals(4, toRanges.get(0)[1]); + + dbRefEntry = dbrefs[2]; + assertEquals("UNIPROT", dbRefEntry.getSource()); + assertEquals("B0BCM3", dbRefEntry.getAccessionId()); + assertSame(peptides.get(4), dbRefEntry.getMap().getTo()); + fromRanges = dbRefEntry.getMap().getMap().getFromRanges(); + assertEquals(1, fromRanges.size()); + assertEquals(4, fromRanges.get(0)[0]); + assertEquals(15, fromRanges.get(0)[1]); + toRanges = dbRefEntry.getMap().getMap().getToRanges(); + assertEquals(1, toRanges.size()); + assertEquals(1, toRanges.get(0)[0]); + assertEquals(4, toRanges.get(0)[1]); } }