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()