1 package jalview.datamodel.xdb.embl;
3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertFalse;
5 import static org.testng.AssertJUnit.assertTrue;
6 import static org.testng.AssertJUnit.assertNull;
7 import org.testng.annotations.Test;
8 import java.io.StringReader;
9 import java.util.Vector;
11 import jalview.datamodel.DBRefEntry;
13 public class EmblFileTest
15 // adapted from http://www.ebi.ac.uk/Tools/dbfetch/dbfetch/embl/x53828/emblxml
16 private static final String TESTDATA =
17 "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
19 + "<entry accession=\"X53828\" version=\"3\" lastUpdated=\"2005-04-18\" releaseCreated=\"25\" releaseLastUpdated=\"83\">"
20 + "<description>Chicken LDH-A mRNA for lactate dehydrogenase A chain (EC 1.1.1.27)</description>"
21 + "<keyword>L-lactate dehydrogenase</keyword><keyword>chutney</keyword>"
22 + "<dbreference db=\"EuropePMC\" primary=\"PMC1460223\" secondary=\"9649548\" />"
23 + "<feature name=\"CDS\"><dbreference db=\"GOA\" primary=\"P00340\" secondary=\"2.1\" /><dbreference db=\"InterPro\" primary=\"IPR001236\" />"
24 + "<qualifier name=\"note\"><value>L-lactate dehydrogenase A-chain</value><value>pickle</value></qualifier>"
25 + "<qualifier name=\"translation\"><value>MSLKDHLIHN</value><evidence>Keith</evidence></qualifier>"
26 + "<location type=\"single\" complement=\"true\">"
27 + "<locationElement type=\"range\" accession=\"X53828\" version=\"1\" complement=\"false\">"
28 + "<basePosition type=\"simple\">60</basePosition><basePosition type=\"join\">1058</basePosition>"
29 + "</locationElement></location></feature>"
30 + "<sequence type=\"mRNA\" version=\"2\">GTGACG</sequence></entry></EMBL_Services>";
33 public void testGetEmblFile()
35 Vector<EmblEntry> entries = EmblFile.getEmblFile(
36 new StringReader(TESTDATA)).getEntries();
37 assertEquals(1, entries.size());
38 EmblEntry entry = entries.get(0);
40 assertEquals("X53828", entry.getAccession());
42 "Chicken LDH-A mRNA for lactate dehydrogenase A chain (EC 1.1.1.27)",
44 assertEquals("2005-04-18", entry.getLastUpdated());
47 * FIXME these assertions fail - values are null - why?? Adding or removing
48 * attributes in the test XML modifies behaviour. eg. inserting an attribute
49 * _before_ lastUpdated results in a null value in this field.
51 // assertEquals("25", entry.getRCreated());
52 // assertEquals("83", entry.getRLastUpdated());
54 assertEquals(2, entry.getKeywords().size());
55 assertEquals("L-lactate dehydrogenase", entry.getKeywords().get(0));
56 assertEquals("chutney", entry.getKeywords().get(1));
61 assertEquals(1, entry.getDbRefs().size());
62 DBRefEntry dbref = entry.getDbRefs().get(0);
63 assertEquals("EuropePMC", dbref.getSource());
64 assertEquals("PMC1460223", dbref.getAccessionId());
65 assertEquals("9649548", dbref.getVersion());
70 assertEquals(1, entry.getFeatures().size());
71 EmblFeature ef = entry.getFeatures().get(0);
72 assertEquals("CDS", ef.getName());
73 assertEquals(2, ef.getDbRefs().size());
74 dbref = ef.getDbRefs().get(0);
75 assertEquals("GOA", dbref.getSource());
76 assertEquals("P00340", dbref.getAccessionId());
77 assertEquals("2.1", dbref.getVersion());
78 dbref = ef.getDbRefs().get(1);
79 assertEquals("InterPro", dbref.getSource());
80 assertEquals("IPR001236", dbref.getAccessionId());
81 assertEquals("", dbref.getVersion());
82 assertEquals(2, ef.getQualifiers().size());
85 Qualifier q = ef.getQualifiers().get(0);
86 assertEquals("note", q.getName());
87 assertEquals(2, q.getValues().length);
88 assertEquals("L-lactate dehydrogenase A-chain", q.getValues()[0]);
89 assertEquals("pickle", q.getValues()[1]);
90 assertNull(q.getEvidence());
91 q = ef.getQualifiers().get(1);
92 assertEquals("translation", q.getName());
93 assertEquals(1, q.getValues().length);
94 assertEquals("MSLKDHLIHN", q.getValues()[0]);
95 assertEquals(1, q.getEvidence().length);
96 assertEquals("Keith", q.getEvidence()[0]);
99 assertEquals(1, ef.getLocations().size());
100 EmblFeatureLocations fl = ef.getLocations().get(0);
101 assertEquals("single", fl.getLocationType());
102 assertTrue(fl.isLocationComplement());
103 assertEquals(1, fl.getLocElements().size());
104 EmblFeatureLocElement le = fl.getLocElements().get(0);
105 assertEquals("range", le.getType());
106 assertEquals("X53828", le.getAccession());
107 assertEquals("1", le.getVersion());
108 assertFalse(le.isComplement());
109 assertEquals(2, le.getBasePositions().length);
110 BasePosition bp = le.getBasePositions()[0];
111 assertEquals("simple", bp.getType());
112 assertEquals("60", bp.getPos());
113 bp = le.getBasePositions()[1];
114 assertEquals("join", bp.getType());
115 assertEquals("1058", bp.getPos());
120 EmblSequence seq = entry.getSequence();
121 assertEquals("mRNA", seq.getType());
122 assertEquals("2", seq.getVersion());
123 assertEquals("GTGACG", seq.getSequence());