2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
21 package jalview.datamodel.xdb.embl;
23 import static org.testng.AssertJUnit.assertEquals;
24 import static org.testng.AssertJUnit.assertNull;
26 import jalview.datamodel.DBRefEntry;
28 import java.util.Vector;
30 import org.testng.annotations.Test;
32 public class EmblFileTest
35 @Test(groups = { "Functional" })
36 public void testGetEmblFile()
38 Vector<EmblEntry> entries = EmblTestHelper.getEmblFile().getEntries();
39 assertEquals(1, entries.size());
40 EmblEntry entry = entries.get(0);
42 assertEquals("X07547", entry.getAccession());
43 assertEquals("C. trachomatis plasmid", entry.getDescription());
44 assertEquals("STD", entry.getDataClass());
45 assertEquals("PRO", entry.getTaxonomicDivision());
46 assertEquals("1999-02-10", entry.getLastUpdatedDate());
47 assertEquals("58", entry.getLastUpdatedRelease());
48 assertEquals("1988-11-10", entry.getFirstPublicDate());
49 assertEquals("18", entry.getFirstPublicRelease());
50 assertEquals("genomic DNA", entry.getMoleculeType());
51 assertEquals("1", entry.getSequenceVersion());
52 assertEquals("8", entry.getEntryVersion());
53 assertEquals("linear", entry.getTopology());
54 assertEquals("7499", entry.getSequenceLength());
57 * FIXME these assertions fail - values are null - why?? Adding or removing
58 * attributes in the test XML modifies behaviour. eg. inserting an attribute
59 * _before_ lastUpdated results in a null value in this field.
61 assertEquals("1988-11-10", entry.getFirstPublicDate());
62 assertEquals("18", entry.getFirstPublicRelease());
64 assertEquals(2, entry.getKeywords().size());
65 assertEquals("plasmid", entry.getKeywords().get(0));
66 assertEquals("unidentified reading frame", entry.getKeywords().get(1));
71 assertEquals(2, entry.getDbRefs().size());
72 DBRefEntry dbref = entry.getDbRefs().get(0);
73 assertEquals("EuropePMC", dbref.getSource());
74 assertEquals("PMC107176", dbref.getAccessionId());
75 assertEquals("9573186", dbref.getVersion());
76 dbref = entry.getDbRefs().get(1);
77 assertEquals("MD5", dbref.getSource());
78 assertEquals("ac73317", dbref.getAccessionId());
79 // blank version has been converted to "0"
80 assertEquals("0", dbref.getVersion());
83 * three sequence features for CDS
85 assertEquals(3, entry.getFeatures().size());
89 EmblFeature ef = entry.getFeatures().get(0);
90 assertEquals("CDS", ef.getName());
91 assertEquals("complement(46..57)", ef.getLocation());
92 assertEquals(2, ef.getDbRefs().size());
93 dbref = ef.getDbRefs().get(0);
94 assertEquals("UniProtKB/Swiss-Prot", dbref.getSource());
95 assertEquals("B0BCM4", dbref.getAccessionId());
96 assertEquals("2.1", dbref.getVersion());
97 dbref = ef.getDbRefs().get(1);
98 assertEquals("UniProtKB/Swiss-Prot", dbref.getSource());
99 assertEquals("P0CE20", dbref.getAccessionId());
100 // blank version gets converted to "0":
101 assertEquals("0", dbref.getVersion());
102 // CDS feature qualifiers
103 assertEquals(3, ef.getQualifiers().size());
104 Qualifier q = ef.getQualifiers().get(0);
105 assertEquals("note", q.getName());
106 assertEquals(2, q.getValues().length);
107 assertEquals("ORF 8 (AA 1-330)", q.getValues()[0]);
108 assertEquals("pickle", q.getValues()[1]);
109 assertNull(q.getEvidence());
110 q = ef.getQualifiers().get(1);
111 assertEquals("protein_id", q.getName());
112 assertEquals(1, q.getValues().length);
113 assertEquals("CAA30420.1", q.getValues()[0]);
114 q = ef.getQualifiers().get(2);
115 assertEquals("translation", q.getName());
116 assertEquals(1, q.getValues().length);
117 assertEquals("MLCF", q.getValues()[0]);
118 assertEquals(1, q.getEvidence().length);
119 assertEquals("Keith", q.getEvidence()[0]);
124 ef = entry.getFeatures().get(1);
125 assertEquals("CDS", ef.getName());
126 assertEquals("4..15", ef.getLocation());
127 assertEquals(1, ef.getDbRefs().size());
128 dbref = ef.getDbRefs().get(0);
129 assertEquals("UniProtKB/Swiss-Prot", dbref.getSource());
130 assertEquals("B0BCM3", dbref.getAccessionId());
131 assertEquals("0", dbref.getVersion());
132 assertEquals(2, ef.getQualifiers().size());
133 q = ef.getQualifiers().get(0);
134 assertEquals("protein_id", q.getName());
135 assertEquals(1, q.getValues().length);
136 assertEquals("CAA30421.1", q.getValues()[0]);
137 q = ef.getQualifiers().get(1);
138 assertEquals("translation", q.getName());
139 assertEquals(1, q.getValues().length);
140 assertEquals("MSSS", q.getValues()[0]);
145 ef = entry.getFeatures().get(2);
146 assertEquals("CDS", ef.getName());
147 assertEquals("join(4..6,10..15)", ef.getLocation());
148 assertNull(ef.getDbRefs());
149 assertEquals(2, ef.getQualifiers().size());
150 q = ef.getQualifiers().get(0);
151 assertEquals("protein_id", q.getName());
152 assertEquals(1, q.getValues().length);
153 assertEquals("CAA12345.6", q.getValues()[0]);
154 q = ef.getQualifiers().get(1);
155 assertEquals("translation", q.getName());
156 assertEquals(1, q.getValues().length);
157 assertEquals("MSS", q.getValues()[0]);
160 * Sequence - verify newline not converted to space (JAL-2029)
162 EmblSequence seq = entry.getSequence();
164 "GGTATGTCCTCTAGTACAAACACCCCCAATATTGTGATATAATTAAAAACATAGCAT",
168 * getSequence() converts empty DBRefEntry.version to "0"
170 assertEquals("0", entry.getDbRefs().get(1).getVersion());
171 assertEquals("0", entry.getFeatures().get(0).getDbRefs().get(1)