1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
package jalview.datamodel.xdb.embl; |
22 |
|
|
23 |
|
import static org.testng.AssertJUnit.assertEquals; |
24 |
|
import static org.testng.AssertJUnit.assertNull; |
25 |
|
import static org.testng.AssertJUnit.assertSame; |
26 |
|
|
27 |
|
import jalview.analysis.SequenceIdMatcher; |
28 |
|
import jalview.datamodel.DBRefEntry; |
29 |
|
import jalview.datamodel.DBRefSource; |
30 |
|
import jalview.datamodel.SequenceI; |
31 |
|
import jalview.gui.JvOptionPane; |
32 |
|
import jalview.util.MapList; |
33 |
|
|
34 |
|
import java.util.ArrayList; |
35 |
|
import java.util.Arrays; |
36 |
|
import java.util.List; |
37 |
|
|
38 |
|
import org.testng.annotations.BeforeClass; |
39 |
|
import org.testng.annotations.Test; |
40 |
|
|
|
|
| 99.3% |
Uncovered Elements: 1 (135) |
Complexity: 5 |
Complexity Density: 0.04 |
|
41 |
|
public class EmblEntryTest |
42 |
|
{ |
43 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
44 |
1 |
@BeforeClass(alwaysRun = true)... |
45 |
|
public void setUpJvOptionPane() |
46 |
|
{ |
47 |
1 |
JvOptionPane.setInteractiveMode(false); |
48 |
1 |
JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); |
49 |
|
} |
50 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (5) |
Complexity: 1 |
Complexity Density: 0.2 |
1PASS
|
|
51 |
1 |
@Test(groups = "Functional")... |
52 |
|
public void testGetCdsRanges() |
53 |
|
{ |
54 |
1 |
EmblEntry testee = new EmblEntry(); |
55 |
|
|
56 |
|
|
57 |
|
|
58 |
|
|
59 |
1 |
EmblFeature cds = new EmblFeature(); |
60 |
1 |
cds.setLocation("join(10..20,complement(30..40),50..60,70..80,complement(110..120))"); |
61 |
|
|
62 |
1 |
int[] exons = testee.getCdsRanges(cds); |
63 |
1 |
assertEquals("[10, 20, 40, 30, 50, 60, 70, 80, 120, 110]", |
64 |
|
Arrays.toString(exons)); |
65 |
|
} |
66 |
|
|
|
|
| 99.1% |
Uncovered Elements: 1 (112) |
Complexity: 2 |
Complexity Density: 0.02 |
1PASS
|
|
67 |
1 |
@Test(groups = "Functional")... |
68 |
|
public void testParseCodingFeature() |
69 |
|
{ |
70 |
|
|
71 |
1 |
List<SequenceI> peptides = new ArrayList<SequenceI>(); |
72 |
1 |
SequenceIdMatcher matcher = new SequenceIdMatcher(peptides); |
73 |
1 |
EmblFile ef = EmblTestHelper.getEmblFile(); |
74 |
1 |
assertEquals(1, ef.getEntries().size()); |
75 |
1 |
EmblEntry testee = ef.getEntries().get(0); |
76 |
1 |
String sourceDb = "EMBL"; |
77 |
1 |
SequenceI dna = testee.makeSequence(sourceDb); |
78 |
|
|
79 |
|
|
80 |
|
|
81 |
|
|
82 |
1 |
for (EmblFeature feature : ef.getEntries().get(0).getFeatures()) |
83 |
|
{ |
84 |
3 |
if ("CDS".equals(feature.getName())) |
85 |
|
{ |
86 |
3 |
testee.parseCodingFeature(feature, sourceDb, dna, peptides, matcher); |
87 |
|
} |
88 |
|
} |
89 |
|
|
90 |
|
|
91 |
|
|
92 |
|
|
93 |
|
|
94 |
|
|
95 |
|
|
96 |
1 |
assertEquals(6, peptides.size()); |
97 |
1 |
assertEquals("CAA30420.1", peptides.get(0).getName()); |
98 |
1 |
assertEquals("MLCF", peptides.get(0).getSequenceAsString()); |
99 |
1 |
assertEquals("UNIPROT|B0BCM4", peptides.get(1).getName()); |
100 |
1 |
assertEquals("MLCF", peptides.get(1).getSequenceAsString()); |
101 |
1 |
assertEquals("UNIPROT|P0CE20", peptides.get(2).getName()); |
102 |
1 |
assertEquals("MLCF", peptides.get(2).getSequenceAsString()); |
103 |
1 |
assertEquals("CAA30421.1", peptides.get(3).getName()); |
104 |
1 |
assertEquals("MSSS", peptides.get(3).getSequenceAsString()); |
105 |
1 |
assertEquals("UNIPROT|B0BCM3", peptides.get(4).getName()); |
106 |
1 |
assertEquals("MSSS", peptides.get(4).getSequenceAsString()); |
107 |
1 |
assertEquals("CAA12345.6", peptides.get(5).getName()); |
108 |
1 |
assertEquals("MSS", peptides.get(5).getSequenceAsString()); |
109 |
|
|
110 |
|
|
111 |
|
|
112 |
|
|
113 |
1 |
MapList cds1Map = new MapList(new int[] { 57, 46 }, new int[] { 1, 4 }, |
114 |
|
3, 1); |
115 |
1 |
MapList cds2Map = new MapList(new int[] { 4, 15 }, new int[] { 1, 4 }, |
116 |
|
3, 1); |
117 |
1 |
MapList cds3Map = new MapList(new int[] { 4, 6, 10, 15 }, new int[] { |
118 |
|
1, 3 }, 3, 1); |
119 |
1 |
DBRefEntry[] dbrefs = dna.getDBRefs(); |
120 |
1 |
assertEquals(4, dbrefs.length); |
121 |
1 |
DBRefEntry dbRefEntry = dbrefs[0]; |
122 |
1 |
assertEquals("UNIPROT", dbRefEntry.getSource()); |
123 |
1 |
assertEquals("B0BCM4", dbRefEntry.getAccessionId()); |
124 |
1 |
assertSame(peptides.get(1), dbRefEntry.getMap().getTo()); |
125 |
1 |
assertEquals(cds1Map, dbRefEntry.getMap().getMap()); |
126 |
|
|
127 |
1 |
dbRefEntry = dbrefs[1]; |
128 |
1 |
assertEquals("UNIPROT", dbRefEntry.getSource()); |
129 |
1 |
assertEquals("P0CE20", dbRefEntry.getAccessionId()); |
130 |
1 |
assertSame(peptides.get(2), dbRefEntry.getMap().getTo()); |
131 |
1 |
assertEquals(cds1Map, dbRefEntry.getMap().getMap()); |
132 |
|
|
133 |
1 |
dbRefEntry = dbrefs[2]; |
134 |
1 |
assertEquals("UNIPROT", dbRefEntry.getSource()); |
135 |
1 |
assertEquals("B0BCM3", dbRefEntry.getAccessionId()); |
136 |
1 |
assertSame(peptides.get(4), dbRefEntry.getMap().getTo()); |
137 |
1 |
assertEquals(cds2Map, dbRefEntry.getMap().getMap()); |
138 |
|
|
139 |
1 |
dbRefEntry = dbrefs[3]; |
140 |
1 |
assertEquals("EMBLCDSPROTEIN", dbRefEntry.getSource()); |
141 |
1 |
assertEquals("CAA12345.6", dbRefEntry.getAccessionId()); |
142 |
1 |
assertSame(peptides.get(5), dbRefEntry.getMap().getTo()); |
143 |
1 |
assertEquals(cds3Map, dbRefEntry.getMap().getMap()); |
144 |
|
|
145 |
|
|
146 |
|
|
147 |
|
|
148 |
|
|
149 |
|
|
150 |
|
|
151 |
1 |
MapList proteinToCdsMap1 = new MapList(new int[] { 1, 4 }, new int[] { |
152 |
|
1, 12 }, 1, 3); |
153 |
1 |
MapList proteinToCdsMap2 = new MapList(new int[] { 1, 3 }, new int[] { |
154 |
|
1, 9 }, 1, 3); |
155 |
|
|
156 |
|
|
157 |
1 |
dbrefs = peptides.get(0).getDBRefs(); |
158 |
1 |
assertEquals(5, dbrefs.length); |
159 |
1 |
assertEquals(DBRefSource.EMBL, dbrefs[0].getSource()); |
160 |
1 |
assertEquals("CAA30420.1", dbrefs[0].getAccessionId()); |
161 |
|
|
162 |
1 |
assertEquals(cds1Map.getInverse(), dbrefs[0].getMap().getMap()); |
163 |
1 |
assertEquals(DBRefSource.EMBLCDS, dbrefs[1].getSource()); |
164 |
1 |
assertEquals("CAA30420.1", dbrefs[1].getAccessionId()); |
165 |
1 |
assertEquals(proteinToCdsMap1, dbrefs[1].getMap().getMap()); |
166 |
1 |
assertEquals(DBRefSource.EMBLCDSProduct, dbrefs[2].getSource()); |
167 |
1 |
assertEquals("CAA30420.1", dbrefs[2].getAccessionId()); |
168 |
1 |
assertNull(dbrefs[2].getMap()); |
169 |
1 |
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "2.1", "B0BCM4"), |
170 |
|
dbrefs[3]); |
171 |
1 |
assertNull(dbrefs[3].getMap()); |
172 |
1 |
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "P0CE20"), |
173 |
|
dbrefs[4]); |
174 |
1 |
assertNull(dbrefs[4].getMap()); |
175 |
|
|
176 |
|
|
177 |
1 |
dbrefs = peptides.get(1).getDBRefs(); |
178 |
1 |
assertEquals(2, dbrefs.length); |
179 |
1 |
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "2.1", "B0BCM4"), |
180 |
|
dbrefs[0]); |
181 |
1 |
assertNull(dbrefs[0].getMap()); |
182 |
1 |
assertEquals(DBRefSource.EMBL, dbrefs[1].getSource()); |
183 |
1 |
assertEquals("X07547", dbrefs[1].getAccessionId()); |
184 |
1 |
assertEquals(cds1Map.getInverse(), dbrefs[1].getMap().getMap()); |
185 |
|
|
186 |
|
|
187 |
1 |
dbrefs = peptides.get(2).getDBRefs(); |
188 |
1 |
assertEquals(2, dbrefs.length); |
189 |
1 |
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "P0CE20"), |
190 |
|
dbrefs[0]); |
191 |
1 |
assertNull(dbrefs[0].getMap()); |
192 |
1 |
assertEquals(DBRefSource.EMBL, dbrefs[1].getSource()); |
193 |
1 |
assertEquals("X07547", dbrefs[1].getAccessionId()); |
194 |
1 |
assertEquals(cds1Map.getInverse(), dbrefs[1].getMap().getMap()); |
195 |
|
|
196 |
|
|
197 |
1 |
dbrefs = peptides.get(3).getDBRefs(); |
198 |
1 |
assertEquals(4, dbrefs.length); |
199 |
1 |
assertEquals(DBRefSource.EMBL, dbrefs[0].getSource()); |
200 |
1 |
assertEquals("CAA30421.1", dbrefs[0].getAccessionId()); |
201 |
1 |
assertEquals(cds2Map.getInverse(), dbrefs[0].getMap().getMap()); |
202 |
1 |
assertEquals(DBRefSource.EMBLCDS, dbrefs[1].getSource()); |
203 |
1 |
assertEquals("CAA30421.1", dbrefs[1].getAccessionId()); |
204 |
1 |
assertEquals(proteinToCdsMap1, dbrefs[1].getMap().getMap()); |
205 |
1 |
assertEquals(DBRefSource.EMBLCDSProduct, dbrefs[2].getSource()); |
206 |
1 |
assertEquals("CAA30421.1", dbrefs[2].getAccessionId()); |
207 |
1 |
assertNull(dbrefs[2].getMap()); |
208 |
1 |
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "B0BCM3"), |
209 |
|
dbrefs[3]); |
210 |
1 |
assertNull(dbrefs[3].getMap()); |
211 |
|
|
212 |
|
|
213 |
1 |
dbrefs = peptides.get(4).getDBRefs(); |
214 |
1 |
assertEquals(2, dbrefs.length); |
215 |
1 |
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "B0BCM3"), |
216 |
|
dbrefs[0]); |
217 |
1 |
assertNull(dbrefs[0].getMap()); |
218 |
1 |
assertEquals(DBRefSource.EMBL, dbrefs[1].getSource()); |
219 |
1 |
assertEquals("X07547", dbrefs[1].getAccessionId()); |
220 |
1 |
assertEquals(cds2Map.getInverse(), dbrefs[1].getMap().getMap()); |
221 |
|
|
222 |
|
|
223 |
1 |
dbrefs = peptides.get(5).getDBRefs(); |
224 |
1 |
assertEquals(3, dbrefs.length); |
225 |
1 |
assertEquals(DBRefSource.EMBL, dbrefs[0].getSource()); |
226 |
1 |
assertEquals("CAA12345.6", dbrefs[0].getAccessionId()); |
227 |
1 |
assertEquals(cds3Map.getInverse(), dbrefs[0].getMap().getMap()); |
228 |
1 |
assertEquals(DBRefSource.EMBLCDS, dbrefs[1].getSource()); |
229 |
1 |
assertEquals("CAA12345.6", dbrefs[1].getAccessionId()); |
230 |
1 |
assertEquals(proteinToCdsMap2, dbrefs[1].getMap().getMap()); |
231 |
1 |
assertEquals(DBRefSource.EMBLCDSProduct, dbrefs[2].getSource()); |
232 |
1 |
assertEquals("CAA12345.6", dbrefs[2].getAccessionId()); |
233 |
1 |
assertNull(dbrefs[2].getMap()); |
234 |
|
} |
235 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (12) |
Complexity: 1 |
Complexity Density: 0.08 |
1PASS
|
|
236 |
1 |
@Test(groups = "Functional")... |
237 |
|
public void testAdjustForProteinLength() |
238 |
|
{ |
239 |
1 |
int[] exons = new int[] { 11, 15, 21, 25, 31, 38 }; |
240 |
|
|
241 |
|
|
242 |
1 |
assertSame(exons, EmblEntry.adjustForProteinLength(6, exons)); |
243 |
|
|
244 |
|
|
245 |
1 |
assertSame(exons, EmblEntry.adjustForProteinLength(5, exons)); |
246 |
|
|
247 |
|
|
248 |
1 |
int[] truncated = EmblEntry.adjustForProteinLength(4, exons); |
249 |
1 |
assertEquals("[11, 15, 21, 25, 31, 32]", Arrays.toString(truncated)); |
250 |
|
|
251 |
|
|
252 |
1 |
truncated = EmblEntry.adjustForProteinLength(3, exons); |
253 |
1 |
assertEquals("[11, 15, 21, 24]", Arrays.toString(truncated)); |
254 |
|
|
255 |
|
|
256 |
1 |
exons = new int[] { 11, 15, 21, 27, 33, 38 }; |
257 |
1 |
truncated = EmblEntry.adjustForProteinLength(4, exons); |
258 |
1 |
assertEquals("[11, 15, 21, 27]", Arrays.toString(truncated)); |
259 |
|
|
260 |
|
|
261 |
1 |
truncated = EmblEntry.adjustForProteinLength(7, exons); |
262 |
1 |
assertSame(exons, truncated); |
263 |
|
} |
264 |
|
} |