X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Fdbsources%2FUniprotTest.java;fp=test%2Fjalview%2Fws%2Fdbsources%2FUniprotTest.java;h=e835724c69f316239f40b194fa09aa34b09a1f63;hb=4d64932654de3f6ffe07db11d18f2d21f558c6e6;hp=060c3032f2abf456765a2d516c359c59843773c8;hpb=382f5ff058a4c2fed1e9874bb712b40f16ec1a4e;p=jalview.git diff --git a/test/jalview/ws/dbsources/UniprotTest.java b/test/jalview/ws/dbsources/UniprotTest.java index 060c303..e835724 100644 --- a/test/jalview/ws/dbsources/UniprotTest.java +++ b/test/jalview/ws/dbsources/UniprotTest.java @@ -21,19 +21,23 @@ package jalview.ws.dbsources; import static org.testng.AssertJUnit.assertEquals; -import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertNull; +import static org.testng.AssertJUnit.assertTrue; -import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; -import jalview.datamodel.xdb.uniprot.UniprotEntry; -import jalview.datamodel.xdb.uniprot.UniprotFeature; import jalview.gui.JvOptionPane; - -import java.io.Reader; -import java.io.StringReader; -import java.util.Vector; +import jalview.xml.binding.uniprot.DbReferenceType; +import jalview.xml.binding.uniprot.Entry; +import jalview.xml.binding.uniprot.FeatureType; +import jalview.xml.binding.uniprot.LocationType; +import jalview.xml.binding.uniprot.PositionType; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.math.BigInteger; +import java.util.List; import org.testng.Assert; import org.testng.annotations.BeforeClass; @@ -51,13 +55,13 @@ public class UniprotTest // adapted from http://www.uniprot.org/uniprot/A9CKP4.xml private static final String UNIPROT_XML = "" - + "" + + "" + "" + "A9CKP4" + "A9CKP5" + "A9CKP4_AGRT5" + "A9CKP4_AGRT6" - + "Mitogen-activated protein kinase 13Henry" + + "Mitogen-activated protein kinase 13" + "" + "" + "" @@ -75,15 +79,17 @@ public class UniprotTest /** * Test the method that unmarshals XML to a Uniprot model + * + * @throws UnsupportedEncodingException */ @Test(groups = { "Functional" }) - public void testGetUniprotEntries() + public void testGetUniprotEntries() throws UnsupportedEncodingException { Uniprot u = new Uniprot(); - Reader reader = new StringReader(UNIPROT_XML); - Vector entries = u.getUniprotEntries(reader); + InputStream is = new ByteArrayInputStream(UNIPROT_XML.getBytes()); + List entries = u.getUniprotEntries(is); assertEquals(1, entries.size()); - UniprotEntry entry = entries.get(0); + Entry entry = entries.get(0); assertEquals(2, entry.getName().size()); assertEquals("A9CKP4_AGRT5", entry.getName().get(0)); assertEquals("A9CKP4_AGRT6", entry.getName().get(1)); @@ -91,82 +97,84 @@ public class UniprotTest assertEquals("A9CKP4", entry.getAccession().get(0)); assertEquals("A9CKP5", entry.getAccession().get(1)); - /* - * UniprotSequence drops any space characters - */ - assertEquals("MHAPLVSKDL", entry.getUniprotSequence().getContent()); + assertEquals("MHAPL VSKDL", entry.getSequence().getValue()); - assertEquals(2, entry.getProtein().getName().size()); assertEquals("Mitogen-activated protein kinase 13", entry.getProtein() - .getName().get(0)); - assertEquals("Henry", entry.getProtein().getName().get(1)); + .getRecommendedName().getFullName().getValue()); /* * Check sequence features */ - Vector features = entry.getFeature(); + List features = entry.getFeature(); assertEquals(9, features.size()); - UniprotFeature sf = features.get(0); + FeatureType sf = features.get(0); assertEquals("signal peptide", sf.getType()); assertNull(sf.getDescription()); assertNull(sf.getStatus()); - assertEquals(1, sf.getBegin()); - assertEquals(18, sf.getEnd()); + assertNull(sf.getLocation().getPosition()); + assertEquals(1, sf.getLocation().getBegin().getPosition().intValue()); + assertEquals(18, sf.getLocation().getEnd().getPosition().intValue()); sf = features.get(1); assertEquals("propeptide", sf.getType()); assertEquals("Activation peptide", sf.getDescription()); - assertEquals(19, sf.getPosition()); - assertEquals(19, sf.getBegin()); - assertEquals(20, sf.getEnd()); + assertNull(sf.getLocation().getPosition()); + assertEquals(19, sf.getLocation().getBegin().getPosition().intValue()); + assertEquals(20, sf.getLocation().getEnd().getPosition().intValue()); sf = features.get(2); assertEquals("chain", sf.getType()); assertEquals("Granzyme B", sf.getDescription()); - assertEquals(21, sf.getPosition()); - assertEquals(21, sf.getBegin()); - assertEquals(247, sf.getEnd()); + assertNull(sf.getLocation().getPosition()); + assertEquals(21, sf.getLocation().getBegin().getPosition().intValue()); + assertEquals(247, sf.getLocation().getEnd().getPosition().intValue()); sf = features.get(3); assertEquals("sequence variant", sf.getType()); assertNull(sf.getDescription()); - assertEquals(41, sf.getPosition()); - assertEquals(41, sf.getBegin()); - assertEquals(41, sf.getEnd()); + assertEquals(41, + sf.getLocation().getPosition().getPosition().intValue()); + assertNull(sf.getLocation().getBegin()); + assertNull(sf.getLocation().getEnd()); sf = features.get(4); assertEquals("sequence variant", sf.getType()); assertEquals("Pathogenic", sf.getDescription()); - assertEquals(41, sf.getPosition()); - assertEquals(41, sf.getBegin()); - assertEquals(41, sf.getEnd()); + assertEquals(41, + sf.getLocation().getPosition().getPosition().intValue()); + assertNull(sf.getLocation().getBegin()); + assertNull(sf.getLocation().getEnd()); sf = features.get(5); assertEquals("sequence variant", sf.getType()); assertEquals("Pathogenic", sf.getDescription()); - assertEquals(41, sf.getPosition()); - assertEquals(41, sf.getBegin()); - assertEquals(41, sf.getEnd()); + assertEquals(41, + sf.getLocation().getPosition().getPosition().intValue()); + assertNull(sf.getLocation().getBegin()); + assertNull(sf.getLocation().getEnd()); sf = features.get(6); assertEquals("sequence variant", sf.getType()); assertEquals("Foo", sf.getDescription()); - assertEquals(42, sf.getPosition()); - assertEquals(42, sf.getBegin()); - assertEquals(42, sf.getEnd()); + assertEquals(42, + sf.getLocation().getPosition().getPosition().intValue()); + assertNull(sf.getLocation().getBegin()); + assertNull(sf.getLocation().getEnd()); Assert.assertEquals(Uniprot.getDescription(sf), "p.Met42Leu" + "
  " + "p.Met42LeuMetVal Foo"); sf = features.get(7); - assertEquals(42, sf.getBegin()); - assertEquals(43, sf.getEnd()); + assertNull(sf.getLocation().getPosition()); + assertEquals(42, sf.getLocation().getBegin().getPosition().intValue()); + assertEquals(43, sf.getLocation().getEnd().getPosition().intValue()); Assert.assertEquals(Uniprot.getDescription(sf), "p.MetLeu42LeuLeu" + "
  " + "p.MetLeu42LeuMetVal Foo"); sf = features.get(8); - assertEquals(42, sf.getBegin()); - assertEquals(45, sf.getEnd()); + assertNull(sf.getLocation().getPosition()); + assertEquals(42, sf.getLocation().getBegin().getPosition().intValue()); + assertEquals(45, sf.getLocation().getEnd().getPosition().intValue()); Assert.assertEquals(Uniprot.getDescription(sf), "p.MLML42LeuLeu" + "
  " + "p.MLML42LMVK Foo Too"); @@ -174,33 +182,38 @@ public class UniprotTest /* * Check cross-references */ - Vector xrefs = entry.getDbReference(); + List xrefs = entry.getDbReference(); assertEquals(3, xrefs.size()); - PDBEntry xref = xrefs.get(0); + DbReferenceType xref = xrefs.get(0); assertEquals("2FSQ", xref.getId()); assertEquals("PDB", xref.getType()); - assertEquals("X-ray", xref.getProperty("method")); - assertEquals("1.40", xref.getProperty("resolution")); + assertEquals("X-ray", + Uniprot.getProperty(xref.getProperty(), "method")); + assertEquals("1.40", + Uniprot.getProperty(xref.getProperty(), "resolution")); xref = xrefs.get(1); assertEquals("2FSR", xref.getId()); assertEquals("PDBsum", xref.getType()); - assertFalse(xref.getProperties().hasMoreElements()); + assertTrue(xref.getProperty().isEmpty()); xref = xrefs.get(2); assertEquals("AE007869", xref.getId()); assertEquals("EMBL", xref.getType()); - assertEquals("AAK85932.1", xref.getProperty("protein sequence ID")); - assertEquals("Genomic_DNA", xref.getProperty("molecule type")); + assertEquals("AAK85932.1", + Uniprot.getProperty(xref.getProperty(), "protein sequence ID")); + assertEquals("Genomic_DNA", + Uniprot.getProperty(xref.getProperty(), "molecule type")); } @Test(groups = { "Functional" }) - public void testGetUniprotSequence() + public void testGetUniprotSequence() throws UnsupportedEncodingException { - UniprotEntry entry = new Uniprot().getUniprotEntries( - new StringReader(UNIPROT_XML)).get(0); - SequenceI seq = new Uniprot().uniprotEntryToSequenceI(entry); + InputStream is = new ByteArrayInputStream(UNIPROT_XML.getBytes()); + Entry entry = new Uniprot().getUniprotEntries( + is).get(0); + SequenceI seq = new Uniprot().uniprotEntryToSequence(entry); assertNotNull(seq); assertEquals(6, seq.getDBRefs().length); // 2*Uniprot, PDB, PDBsum, 2*EMBL @@ -208,12 +221,14 @@ public class UniprotTest /** * Test the method that formats the sequence id + * + * @throws UnsupportedEncodingException */ @Test(groups = { "Functional" }) - public void testGetUniprotEntryId() + public void testGetUniprotEntryId() throws UnsupportedEncodingException { - UniprotEntry entry = new Uniprot().getUniprotEntries( - new StringReader(UNIPROT_XML)).get(0); + InputStream is = new ByteArrayInputStream(UNIPROT_XML.getBytes()); + Entry entry = new Uniprot().getUniprotEntries(is).get(0); /* * name formatted with Uniprot Entry name @@ -225,67 +240,66 @@ public class UniprotTest /** * Test the method that formats the sequence description + * + * @throws UnsupportedEncodingException */ @Test(groups = { "Functional" }) public void testGetUniprotEntryDescription() + throws UnsupportedEncodingException { - UniprotEntry entry = new Uniprot().getUniprotEntries( - new StringReader(UNIPROT_XML)).get(0); + InputStream is = new ByteArrayInputStream(UNIPROT_XML.getBytes()); + Entry entry = new Uniprot().getUniprotEntries(is).get(0); - /* - * recommended names concatenated with space separator - */ - String expectedDescription = "Mitogen-activated protein kinase 13 Henry"; - assertEquals(expectedDescription, + assertEquals("Mitogen-activated protein kinase 13", Uniprot.getUniprotEntryDescription(entry)); } @Test(groups = { "Functional" }) public void testGetDescription() { - UniprotFeature uf = new UniprotFeature(); - assertEquals("", Uniprot.getDescription(uf)); + FeatureType ft = new FeatureType(); + assertEquals("", Uniprot.getDescription(ft)); - uf.setDescription("Hello"); - assertEquals("Hello", Uniprot.getDescription(uf)); + ft.setDescription("Hello"); + assertEquals("Hello", Uniprot.getDescription(ft)); - uf.setPosition(23); - uf.setOriginal("K"); - Vector vars = new Vector<>(); - vars.add("y"); - uf.setVariation(vars); - assertEquals("p.Lys23Tyr Hello", Uniprot.getDescription(uf)); + ft.setLocation(new LocationType()); + ft.getLocation().setPosition(new PositionType()); + ft.getLocation().getPosition().setPosition(BigInteger.valueOf(23)); + ft.setOriginal("K"); + ft.getVariation().add("y"); + assertEquals("p.Lys23Tyr Hello", Uniprot.getDescription(ft)); // multiple variants generate an html description over more than one line - vars.add("W"); + ft.getVariation().add("W"); assertEquals("p.Lys23Tyr
  p.Lys23Trp Hello", - Uniprot.getDescription(uf)); + Uniprot.getDescription(ft)); /* * indel cases * up to 3 bases (original or variant) are shown using 3 letter code */ - vars.clear(); - vars.add("KWE"); - uf.setOriginal("KLS"); + ft.getVariation().clear(); + ft.getVariation().add("KWE"); + ft.setOriginal("KLS"); assertEquals("p.LysLeuSer23LysTrpGlu Hello", - Uniprot.getDescription(uf)); + Uniprot.getDescription(ft)); // adding a fourth original base switches to single letter code - uf.setOriginal("KLST"); - assertEquals("p.KLST23LysTrpGlu Hello", Uniprot.getDescription(uf)); + ft.setOriginal("KLST"); + assertEquals("p.KLST23LysTrpGlu Hello", Uniprot.getDescription(ft)); // adding a fourth variant switches to single letter code - vars.clear(); - vars.add("KWES"); - assertEquals("p.KLST23KWES Hello", Uniprot.getDescription(uf)); + ft.getVariation().clear(); + ft.getVariation().add("KWES"); + assertEquals("p.KLST23KWES Hello", Uniprot.getDescription(ft)); - vars.clear(); - vars.add("z"); // unknown variant - fails gracefully - uf.setOriginal("K"); - assertEquals("p.Lys23z Hello", Uniprot.getDescription(uf)); + ft.getVariation().clear(); + ft.getVariation().add("z"); // unknown variant - fails gracefully + ft.setOriginal("K"); + assertEquals("p.Lys23z Hello", Uniprot.getDescription(ft)); - uf.setVariation(null); // variant missing - is ignored - assertEquals("Hello", Uniprot.getDescription(uf)); + ft.getVariation().clear(); // variant missing - is ignored + assertEquals("Hello", Uniprot.getDescription(ft)); } }