Mercurial > repos > yufei-luo > s_mart
comparison commons/core/parsing/test/Test_BlatParser.py @ 31:0ab839023fe4
Uploaded
author | m-zytnicki |
---|---|
date | Tue, 30 Apr 2013 14:33:21 -0400 |
parents | 769e306b7933 |
children |
comparison
equal
deleted
inserted
replaced
30:5677346472b5 | 31:0ab839023fe4 |
---|---|
1 from commons.core.parsing.BlatParser import BlatParser | |
2 import unittest | |
3 | |
4 | |
5 class Test_BlatParser(unittest.TestCase): | |
6 | |
7 | |
8 def test_setAttributesFromString(self): | |
9 blatLine = "315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227," | |
10 | |
11 iBlatParser = BlatParser() | |
12 iBlatParser.setAttributesFromString(blatLine) | |
13 | |
14 obsmatch = iBlatParser.getMatch() | |
15 obsmismatch = iBlatParser.getMismatch() | |
16 obsrepMatch = iBlatParser.getRepMatch() | |
17 obsN = iBlatParser.getN() | |
18 obsQGapCount = iBlatParser.getQGapCount() | |
19 obsQGapBases = iBlatParser.getQGapBases() | |
20 obsTGapCount = iBlatParser.getTGapCount() | |
21 obsTGapBases = iBlatParser.getTGapBases() | |
22 obsstrand = iBlatParser.getStrand() | |
23 obsQName = iBlatParser.getQName() | |
24 obsQSize = iBlatParser.getQSize() | |
25 obsQStart = iBlatParser.getQStart() | |
26 obsQEnd = iBlatParser.getQEnd() | |
27 obsTName = iBlatParser.getTName() | |
28 obsTSize = iBlatParser.getTSize() | |
29 obsTStart = iBlatParser.getTStart() | |
30 obsTEnd = iBlatParser.getTEnd() | |
31 obsblockCount = iBlatParser.getBlockCount() | |
32 obsblockSizes = iBlatParser.getBlockSizes() | |
33 obsqStarts = iBlatParser.getQStarts() | |
34 obstStarts = iBlatParser.getTStarts() | |
35 | |
36 expmatch = "315" | |
37 expmismatch = "20" | |
38 exprepMatch = "0" | |
39 expN = "0" | |
40 expQGapCount = "3" | |
41 expQGapBases = "10" | |
42 expTGapCount = "2" | |
43 expTGapBases = "9" | |
44 expstrand = "+" | |
45 expQName = "MRRE1H001H13FM1" | |
46 expQSize = "378" | |
47 expQStart = "0" | |
48 expQEnd = "345" | |
49 expTName = "chr16" | |
50 expTSize = "22053297" | |
51 expTStart = "21686950" | |
52 expTEnd = "21687294" | |
53 expblockCount = "4" | |
54 expblockSizes = "76,185,7,67," | |
55 expqStarts = "0,77,263,278," | |
56 exptStarts = "21686950,21687026,21687213,21687227," | |
57 | |
58 self.assertEquals(expmatch, obsmatch) | |
59 self.assertEquals(expmismatch, obsmismatch) | |
60 self.assertEquals(exprepMatch, obsrepMatch) | |
61 self.assertEquals(expN, obsN) | |
62 self.assertEquals(expQGapCount, obsQGapCount) | |
63 self.assertEquals(expQGapBases, obsQGapBases) | |
64 self.assertEquals(expTGapCount, obsTGapCount) | |
65 self.assertEquals(expTGapBases, obsTGapBases) | |
66 self.assertEquals(expstrand, obsstrand) | |
67 self.assertEquals(expQName, obsQName) | |
68 self.assertEquals(expQSize, obsQSize) | |
69 self.assertEquals(expQStart, obsQStart) | |
70 self.assertEquals(expQEnd, obsQEnd) | |
71 self.assertEquals(expTName, obsTName) | |
72 self.assertEquals(expTSize, obsTSize) | |
73 self.assertEquals(expTStart, obsTStart) | |
74 self.assertEquals(expTEnd, obsTEnd) | |
75 self.assertEquals(expblockCount, obsblockCount) | |
76 self.assertEquals(expblockSizes, obsblockSizes) | |
77 self.assertEquals(expqStarts, obsqStarts) | |
78 self.assertEquals(exptStarts, obstStarts) | |
79 | |
80 def test_setAttributesFromString_empty_QName(self): | |
81 blatLine = "315\t20\t0\t0\t3\t10\t2\t9\t+\t\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227," | |
82 | |
83 iBlatParser = BlatParser() | |
84 iBlatParser.setAttributesFromString(blatLine) | |
85 | |
86 obsmatch = iBlatParser.getMatch() | |
87 obsmismatch = iBlatParser.getMismatch() | |
88 obsrepMatch = iBlatParser.getRepMatch() | |
89 obsN = iBlatParser.getN() | |
90 obsQGapCount = iBlatParser.getQGapCount() | |
91 obsQGapBases = iBlatParser.getQGapBases() | |
92 obsTGapCount = iBlatParser.getTGapCount() | |
93 obsTGapBases = iBlatParser.getTGapBases() | |
94 obsstrand = iBlatParser.getStrand() | |
95 obsQName = iBlatParser.getQName() | |
96 obsQSize = iBlatParser.getQSize() | |
97 obsQStart = iBlatParser.getQStart() | |
98 obsQEnd = iBlatParser.getQEnd() | |
99 obsTName = iBlatParser.getTName() | |
100 obsTSize = iBlatParser.getTSize() | |
101 obsTStart = iBlatParser.getTStart() | |
102 obsTEnd = iBlatParser.getTEnd() | |
103 obsblockCount = iBlatParser.getBlockCount() | |
104 obsblockSizes = iBlatParser.getBlockSizes() | |
105 obsqStarts = iBlatParser.getQStarts() | |
106 obstStarts = iBlatParser.getTStarts() | |
107 | |
108 expmatch = "" | |
109 expmismatch = "" | |
110 exprepMatch = "" | |
111 expN = "" | |
112 expQGapCount = "" | |
113 expQGapBases = "" | |
114 expTGapCount = "" | |
115 expTGapBases = "" | |
116 expstrand = "" | |
117 expQName = "" | |
118 expQSize = "" | |
119 expQStart = "" | |
120 expQEnd = "" | |
121 expTName = "" | |
122 expTSize = "" | |
123 expTStart = "" | |
124 expTEnd = "" | |
125 expblockCount = "" | |
126 expblockSizes = "" | |
127 expqStarts = "" | |
128 exptStarts = "" | |
129 | |
130 self.assertEquals(expmatch, obsmatch) | |
131 self.assertEquals(expmismatch, obsmismatch) | |
132 self.assertEquals(exprepMatch, obsrepMatch) | |
133 self.assertEquals(expN, obsN) | |
134 self.assertEquals(expQGapCount, obsQGapCount) | |
135 self.assertEquals(expQGapBases, obsQGapBases) | |
136 self.assertEquals(expTGapCount, obsTGapCount) | |
137 self.assertEquals(expTGapBases, obsTGapBases) | |
138 self.assertEquals(expstrand, obsstrand) | |
139 self.assertEquals(expQName, obsQName) | |
140 self.assertEquals(expQSize, obsQSize) | |
141 self.assertEquals(expQStart, obsQStart) | |
142 self.assertEquals(expQEnd, obsQEnd) | |
143 self.assertEquals(expTName, obsTName) | |
144 self.assertEquals(expTSize, obsTSize) | |
145 self.assertEquals(expTStart, obsTStart) | |
146 self.assertEquals(expTEnd, obsTEnd) | |
147 self.assertEquals(expblockCount, obsblockCount) | |
148 self.assertEquals(expblockSizes, obsblockSizes) | |
149 self.assertEquals(expqStarts, obsqStarts) | |
150 self.assertEquals(exptStarts, obstStarts) | |
151 | |
152 def test_setAttributesFromString_less_than_21_fields(self): | |
153 blatLine = "315\t20\t0\t0\t3\t10\t2\t9\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227," | |
154 | |
155 iBlatParser = BlatParser() | |
156 iBlatParser.setAttributesFromString(blatLine) | |
157 | |
158 obsmatch = iBlatParser.getMatch() | |
159 obsmismatch = iBlatParser.getMismatch() | |
160 obsrepMatch = iBlatParser.getRepMatch() | |
161 obsN = iBlatParser.getN() | |
162 obsQGapCount = iBlatParser.getQGapCount() | |
163 obsQGapBases = iBlatParser.getQGapBases() | |
164 obsTGapCount = iBlatParser.getTGapCount() | |
165 obsTGapBases = iBlatParser.getTGapBases() | |
166 obsstrand = iBlatParser.getStrand() | |
167 obsQName = iBlatParser.getQName() | |
168 obsQSize = iBlatParser.getQSize() | |
169 obsQStart = iBlatParser.getQStart() | |
170 obsQEnd = iBlatParser.getQEnd() | |
171 obsTName = iBlatParser.getTName() | |
172 obsTSize = iBlatParser.getTSize() | |
173 obsTStart = iBlatParser.getTStart() | |
174 obsTEnd = iBlatParser.getTEnd() | |
175 obsblockCount = iBlatParser.getBlockCount() | |
176 obsblockSizes = iBlatParser.getBlockSizes() | |
177 obsqStarts = iBlatParser.getQStarts() | |
178 obstStarts = iBlatParser.getTStarts() | |
179 | |
180 expmatch = "" | |
181 expmismatch = "" | |
182 exprepMatch = "" | |
183 expN = "" | |
184 expQGapCount = "" | |
185 expQGapBases = "" | |
186 expTGapCount = "" | |
187 expTGapBases = "" | |
188 expstrand = "" | |
189 expQName = "" | |
190 expQSize = "" | |
191 expQStart = "" | |
192 expQEnd = "" | |
193 expTName = "" | |
194 expTSize = "" | |
195 expTStart = "" | |
196 expTEnd = "" | |
197 expblockCount = "" | |
198 expblockSizes = "" | |
199 expqStarts = "" | |
200 exptStarts = "" | |
201 | |
202 self.assertEquals(expmatch, obsmatch) | |
203 self.assertEquals(expmismatch, obsmismatch) | |
204 self.assertEquals(exprepMatch, obsrepMatch) | |
205 self.assertEquals(expN, obsN) | |
206 self.assertEquals(expQGapCount, obsQGapCount) | |
207 self.assertEquals(expQGapBases, obsQGapBases) | |
208 self.assertEquals(expTGapCount, obsTGapCount) | |
209 self.assertEquals(expTGapBases, obsTGapBases) | |
210 self.assertEquals(expstrand, obsstrand) | |
211 self.assertEquals(expQName, obsQName) | |
212 self.assertEquals(expQSize, obsQSize) | |
213 self.assertEquals(expQStart, obsQStart) | |
214 self.assertEquals(expQEnd, obsQEnd) | |
215 self.assertEquals(expTName, obsTName) | |
216 self.assertEquals(expTSize, obsTSize) | |
217 self.assertEquals(expTStart, obsTStart) | |
218 self.assertEquals(expTEnd, obsTEnd) | |
219 self.assertEquals(expblockCount, obsblockCount) | |
220 self.assertEquals(expblockSizes, obsblockSizes) | |
221 self.assertEquals(expqStarts, obsqStarts) | |
222 self.assertEquals(exptStarts, obstStarts) | |
223 | |
224 def test_setAttributes(self): | |
225 lResults = ['315','20','0','0','3','10','2','9','+','MRRE1H001H13FM1','378','0','345','chr16','22053297','21686950','21687294','4','76,185,7,67,','0,77,263,278,','21686950,21687026,21687213,21687227,'] | |
226 lineNumber = 1 | |
227 | |
228 iBlatParser = BlatParser() | |
229 iBlatParser.setAttributes(lResults, lineNumber) | |
230 | |
231 obsmatch = iBlatParser.getMatch() | |
232 obsmismatch = iBlatParser.getMismatch() | |
233 obsrepMatch = iBlatParser.getRepMatch() | |
234 obsN = iBlatParser.getN() | |
235 obsQGapCount = iBlatParser.getQGapCount() | |
236 obsQGapBases = iBlatParser.getQGapBases() | |
237 obsTGapCount = iBlatParser.getTGapCount() | |
238 obsTGapBases = iBlatParser.getTGapBases() | |
239 obsstrand = iBlatParser.getStrand() | |
240 obsQName = iBlatParser.getQName() | |
241 obsQSize = iBlatParser.getQSize() | |
242 obsQStart = iBlatParser.getQStart() | |
243 obsQEnd = iBlatParser.getQEnd() | |
244 obsTName = iBlatParser.getTName() | |
245 obsTSize = iBlatParser.getTSize() | |
246 obsTStart = iBlatParser.getTStart() | |
247 obsTEnd = iBlatParser.getTEnd() | |
248 obsblockCount = iBlatParser.getBlockCount() | |
249 obsblockSizes = iBlatParser.getBlockSizes() | |
250 obsqStarts = iBlatParser.getQStarts() | |
251 obstStarts = iBlatParser.getTStarts() | |
252 | |
253 expmatch = "315" | |
254 expmismatch = "20" | |
255 exprepMatch = "0" | |
256 expN = "0" | |
257 expQGapCount = "3" | |
258 expQGapBases = "10" | |
259 expTGapCount = "2" | |
260 expTGapBases = "9" | |
261 expstrand = "+" | |
262 expQName = "MRRE1H001H13FM1" | |
263 expQSize = "378" | |
264 expQStart = "0" | |
265 expQEnd = "345" | |
266 expTName = "chr16" | |
267 expTSize = "22053297" | |
268 expTStart = "21686950" | |
269 expTEnd = "21687294" | |
270 expblockCount = "4" | |
271 expblockSizes = "76,185,7,67," | |
272 expqStarts = "0,77,263,278," | |
273 exptStarts = "21686950,21687026,21687213,21687227," | |
274 | |
275 self.assertEquals(expmatch, obsmatch) | |
276 self.assertEquals(expmismatch, obsmismatch) | |
277 self.assertEquals(exprepMatch, obsrepMatch) | |
278 self.assertEquals(expN, obsN) | |
279 self.assertEquals(expQGapCount, obsQGapCount) | |
280 self.assertEquals(expQGapBases, obsQGapBases) | |
281 self.assertEquals(expTGapCount, obsTGapCount) | |
282 self.assertEquals(expTGapBases, obsTGapBases) | |
283 self.assertEquals(expstrand, obsstrand) | |
284 self.assertEquals(expQName, obsQName) | |
285 self.assertEquals(expQSize, obsQSize) | |
286 self.assertEquals(expQStart, obsQStart) | |
287 self.assertEquals(expQEnd, obsQEnd) | |
288 self.assertEquals(expTName, obsTName) | |
289 self.assertEquals(expTSize, obsTSize) | |
290 self.assertEquals(expTStart, obsTStart) | |
291 self.assertEquals(expTEnd, obsTEnd) | |
292 self.assertEquals(expblockCount, obsblockCount) | |
293 self.assertEquals(expblockSizes, obsblockSizes) | |
294 self.assertEquals(expqStarts, obsqStarts) | |
295 self.assertEquals(exptStarts, obstStarts) | |
296 | |
297 def test_eq_Equals_case1(self): | |
298 BlatParser1 = BlatParser() | |
299 BlatParser1.setMatch("315") | |
300 BlatParser1.setMismatch("20") | |
301 BlatParser1.setRepMatch("0") | |
302 BlatParser1.setN("0") | |
303 BlatParser1.setQGapCount("3") | |
304 BlatParser1.setQGapBases("10") | |
305 BlatParser1.setTGapCount("2") | |
306 BlatParser1.setTGapBases("9") | |
307 BlatParser1.setStrand("+") | |
308 BlatParser1.setQName("MRRE1H001H13FM1") | |
309 BlatParser1.setQSize("378") | |
310 BlatParser1.setQStart("0") | |
311 BlatParser1.setQEnd("345") | |
312 BlatParser1.setTName("chr16") | |
313 BlatParser1.setTSize("22053297") | |
314 BlatParser1.setTStart("21686950") | |
315 BlatParser1.setTEnd("21687294") | |
316 BlatParser1.setBlockCount("4") | |
317 BlatParser1.setBlockSizes("76,185,7,67,") | |
318 BlatParser1.setQStarts("0,77,263,278,") | |
319 BlatParser1.setTStarts("21686950,21687026,21687213,21687227,") | |
320 | |
321 BlatParser2 = BlatParser() | |
322 BlatParser2.setMatch("315") | |
323 BlatParser2.setMismatch("20") | |
324 BlatParser2.setRepMatch("0") | |
325 BlatParser2.setN("0") | |
326 BlatParser2.setQGapCount("3") | |
327 BlatParser2.setQGapBases("10") | |
328 BlatParser2.setTGapCount("2") | |
329 BlatParser2.setTGapBases("9") | |
330 BlatParser2.setStrand("+") | |
331 BlatParser2.setQName("MRRE1H001H13FM1") | |
332 BlatParser2.setQSize("378") | |
333 BlatParser2.setQStart("0") | |
334 BlatParser2.setQEnd("345") | |
335 BlatParser2.setTName("chr16") | |
336 BlatParser2.setTSize("22053297") | |
337 BlatParser2.setTStart("21686950") | |
338 BlatParser2.setTEnd("21687294") | |
339 BlatParser2.setBlockCount("4") | |
340 BlatParser2.setBlockSizes("76,185,7,67,") | |
341 BlatParser2.setQStarts("0,77,263,278,") | |
342 BlatParser2.setTStarts("21686950,21687026,21687213,21687227,") | |
343 | |
344 self.assertTrue(BlatParser1 == BlatParser2) | |
345 | |
346 def test_eq_Equals_case2(self): | |
347 BlatParser1 = BlatParser() | |
348 BlatParser1.setMatch("315") | |
349 BlatParser1.setMismatch("20") | |
350 BlatParser1.setRepMatch("0") | |
351 BlatParser1.setN("0") | |
352 BlatParser1.setQGapCount("3") | |
353 BlatParser1.setQGapBases("10") | |
354 BlatParser1.setTGapCount("2") | |
355 BlatParser1.setTGapBases("9") | |
356 BlatParser1.setStrand("+") | |
357 BlatParser1.setQName("MRRE1H001H13FM1") | |
358 BlatParser1.setQSize("378") | |
359 BlatParser1.setQStart("0") | |
360 BlatParser1.setQEnd("345") | |
361 BlatParser1.setTName("chr16") | |
362 BlatParser1.setTSize("22053297") | |
363 BlatParser1.setTStart("21686950") | |
364 BlatParser1.setTEnd("21687294") | |
365 BlatParser1.setBlockCount("4") | |
366 BlatParser1.setBlockSizes("76,185,7,67,") | |
367 BlatParser1.setQStarts("0,77,263,278,") | |
368 BlatParser1.setTStarts("21686950,21687026,21687213,21687227,") | |
369 | |
370 BlatParser2 = BlatParser() | |
371 BlatParser2.setMatch("315") | |
372 BlatParser2.setMismatch("20") | |
373 BlatParser2.setRepMatch("0") | |
374 BlatParser2.setN("0") | |
375 BlatParser2.setQGapCount("3") | |
376 BlatParser2.setQGapBases("10") | |
377 BlatParser2.setTGapCount("2") | |
378 BlatParser2.setTGapBases("9") | |
379 BlatParser2.setStrand("+") | |
380 BlatParser2.setQName("TotoFM2") | |
381 BlatParser2.setQSize("378") | |
382 BlatParser2.setQStart("0") | |
383 BlatParser2.setQEnd("345") | |
384 BlatParser2.setTName("chr16") | |
385 BlatParser2.setTSize("22053297") | |
386 BlatParser2.setTStart("21686950") | |
387 BlatParser2.setTEnd("21687294") | |
388 BlatParser2.setBlockCount("4") | |
389 BlatParser2.setBlockSizes("76,185,7,67,") | |
390 BlatParser2.setQStarts("0,77,263,278,") | |
391 BlatParser2.setTStarts("21686950,21687026,21687213,21687227,") | |
392 | |
393 self.assertTrue(BlatParser1 == BlatParser2) | |
394 | |
395 def test_eq_notEquals(self): | |
396 BlatParser1 = BlatParser() | |
397 BlatParser1.setMatch("315") | |
398 BlatParser1.setMismatch("20") | |
399 BlatParser1.setRepMatch("0") | |
400 BlatParser1.setN("0") | |
401 BlatParser1.setQGapCount("3") | |
402 BlatParser1.setQGapBases("10") | |
403 BlatParser1.setTGapCount("2") | |
404 BlatParser1.setTGapBases("9") | |
405 BlatParser1.setStrand("+") | |
406 BlatParser1.setQName("MRRE1H001H13FM1") | |
407 BlatParser1.setQSize("378") | |
408 BlatParser1.setQStart("0") | |
409 BlatParser1.setQEnd("345") | |
410 BlatParser1.setTName("chr16") | |
411 BlatParser1.setTSize("22053297") | |
412 BlatParser1.setTStart("21686950") | |
413 BlatParser1.setTEnd("21687294") | |
414 BlatParser1.setBlockCount("4") | |
415 BlatParser1.setBlockSizes("76,185,7,67,") | |
416 BlatParser1.setQStarts("0,77,263,278,") | |
417 BlatParser1.setTStarts("21686950,21687026,21687213,21687227,") | |
418 | |
419 BlatParser2 = BlatParser() | |
420 BlatParser2.setMatch("315") | |
421 BlatParser2.setMismatch("20") | |
422 BlatParser2.setRepMatch("0") | |
423 BlatParser2.setN("0") | |
424 BlatParser2.setQGapCount("3") | |
425 BlatParser2.setQGapBases("10") | |
426 BlatParser2.setTGapCount("2") | |
427 BlatParser2.setTGapBases("9") | |
428 BlatParser2.setStrand("+") | |
429 BlatParser2.setQName("TotoFM2") | |
430 BlatParser2.setQSize("378") | |
431 BlatParser2.setQStart("0") | |
432 BlatParser2.setQEnd("345") | |
433 BlatParser2.setTName("chr8") | |
434 BlatParser2.setTSize("2205") | |
435 BlatParser2.setTStart("2124") | |
436 BlatParser2.setTEnd("2168") | |
437 BlatParser2.setBlockCount("4") | |
438 BlatParser2.setBlockSizes("76,185,7,67,") | |
439 BlatParser2.setQStarts("0,77,263,278,") | |
440 BlatParser2.setTStarts("21686950,21687026,21687213,21687227,") | |
441 | |
442 self.assertFalse(BlatParser1 == BlatParser2) | |
443 | |
444 if __name__ == "__main__": | |
445 unittest.main() |