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;
27 import jalview.gui.JvOptionPane;
29 import java.util.Vector;
31 import org.testng.annotations.BeforeClass;
32 import org.testng.annotations.Test;
34 public class EmblFileTest
37 @BeforeClass(alwaysRun = true)
38 public void setUpJvOptionPane()
40 JvOptionPane.setInteractiveMode(false);
41 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
44 @Test(groups = { "Functional" })
45 public void testGetEmblFile()
47 Vector<EmblEntry> entries = EmblTestHelper.getEmblFile().getEntries();
48 assertEquals(1, entries.size());
49 EmblEntry entry = entries.get(0);
51 assertEquals("X07547", entry.getAccession());
52 assertEquals("C. trachomatis plasmid", entry.getDescription());
53 assertEquals("STD", entry.getDataClass());
54 assertEquals("PRO", entry.getTaxonomicDivision());
55 assertEquals("1999-02-10", entry.getLastUpdatedDate());
56 assertEquals("58", entry.getLastUpdatedRelease());
57 assertEquals("1988-11-10", entry.getFirstPublicDate());
58 assertEquals("18", entry.getFirstPublicRelease());
59 assertEquals("genomic DNA", entry.getMoleculeType());
60 assertEquals("1", entry.getSequenceVersion());
61 assertEquals("8", entry.getEntryVersion());
62 assertEquals("linear", entry.getTopology());
63 assertEquals("7499", entry.getSequenceLength());
66 * FIXME these assertions fail - values are null - why?? Adding or removing
67 * attributes in the test XML modifies behaviour. eg. inserting an attribute
68 * _before_ lastUpdated results in a null value in this field.
70 assertEquals("1988-11-10", entry.getFirstPublicDate());
71 assertEquals("18", entry.getFirstPublicRelease());
73 assertEquals(2, entry.getKeywords().size());
74 assertEquals("plasmid", entry.getKeywords().get(0));
75 assertEquals("unidentified reading frame", entry.getKeywords().get(1));
80 assertEquals(2, entry.getDbRefs().size());
81 DBRefEntry dbref = entry.getDbRefs().get(0);
82 assertEquals("EuropePMC", dbref.getSource());
83 assertEquals("PMC107176", dbref.getAccessionId());
84 assertEquals("9573186", dbref.getVersion());
85 dbref = entry.getDbRefs().get(1);
86 assertEquals("MD5", dbref.getSource());
87 assertEquals("ac73317", dbref.getAccessionId());
88 // blank version has been converted to "0"
89 assertEquals("0", dbref.getVersion());
92 * three sequence features for CDS
94 assertEquals(3, entry.getFeatures().size());
98 EmblFeature ef = entry.getFeatures().get(0);
99 assertEquals("CDS", ef.getName());
100 assertEquals("complement(46..57)", ef.getLocation());
101 assertEquals(2, ef.getDbRefs().size());
102 dbref = ef.getDbRefs().get(0);
103 assertEquals("UniProtKB/Swiss-Prot", dbref.getSource());
104 assertEquals("B0BCM4", dbref.getAccessionId());
105 assertEquals("2.1", dbref.getVersion());
106 dbref = ef.getDbRefs().get(1);
107 assertEquals("UniProtKB/Swiss-Prot", dbref.getSource());
108 assertEquals("P0CE20", dbref.getAccessionId());
109 // blank version gets converted to "0":
110 assertEquals("0", dbref.getVersion());
111 // CDS feature qualifiers
112 assertEquals(3, ef.getQualifiers().size());
113 Qualifier q = ef.getQualifiers().get(0);
114 assertEquals("note", q.getName());
115 assertEquals(2, q.getValues().length);
116 assertEquals("ORF 8 (AA 1-330)", q.getValues()[0]);
117 assertEquals("pickle", q.getValues()[1]);
118 assertNull(q.getEvidence());
119 q = ef.getQualifiers().get(1);
120 assertEquals("protein_id", q.getName());
121 assertEquals(1, q.getValues().length);
122 assertEquals("CAA30420.1", q.getValues()[0]);
123 q = ef.getQualifiers().get(2);
124 assertEquals("translation", q.getName());
125 assertEquals(1, q.getValues().length);
126 assertEquals("MLCF", q.getValues()[0]);
127 assertEquals(1, q.getEvidence().length);
128 assertEquals("Keith", q.getEvidence()[0]);
133 ef = entry.getFeatures().get(1);
134 assertEquals("CDS", ef.getName());
135 assertEquals("4..15", ef.getLocation());
136 assertEquals(1, ef.getDbRefs().size());
137 dbref = ef.getDbRefs().get(0);
138 assertEquals("UniProtKB/Swiss-Prot", dbref.getSource());
139 assertEquals("B0BCM3", dbref.getAccessionId());
140 assertEquals("0", dbref.getVersion());
141 assertEquals(2, ef.getQualifiers().size());
142 q = ef.getQualifiers().get(0);
143 assertEquals("protein_id", q.getName());
144 assertEquals(1, q.getValues().length);
145 assertEquals("CAA30421.1", q.getValues()[0]);
146 q = ef.getQualifiers().get(1);
147 assertEquals("translation", q.getName());
148 assertEquals(1, q.getValues().length);
149 assertEquals("MSSS", q.getValues()[0]);
154 ef = entry.getFeatures().get(2);
155 assertEquals("CDS", ef.getName());
156 assertEquals("join(4..6,10..15)", ef.getLocation());
157 assertNull(ef.getDbRefs());
158 assertEquals(2, ef.getQualifiers().size());
159 q = ef.getQualifiers().get(0);
160 assertEquals("protein_id", q.getName());
161 assertEquals(1, q.getValues().length);
162 assertEquals("CAA12345.6", q.getValues()[0]);
163 q = ef.getQualifiers().get(1);
164 assertEquals("translation", q.getName());
165 assertEquals(1, q.getValues().length);
166 assertEquals("MSS", q.getValues()[0]);
169 * Sequence - verify newline not converted to space (JAL-2029)
171 EmblSequence seq = entry.getSequence();
173 "GGTATGTCCTCTAGTACAAACACCCCCAATATTGTGATATAATTAAAAACATAGCAT",
177 * getSequence() converts empty DBRefEntry.version to "0"
179 assertEquals("0", entry.getDbRefs().get(1).getVersion());
180 assertEquals("0", entry.getFeatures().get(0).getDbRefs().get(1)