6
|
1 import unittest
|
|
2 from commons.core.parsing.BlatFileParser import BlatFileParser
|
|
3
|
|
4
|
|
5 class Test_BlatFileParser(unittest.TestCase):
|
|
6
|
|
7
|
|
8 def test_parseBlatFile(self):
|
|
9 fileName = "dummayBlat.psl"
|
|
10 self._writeBlatInputFile(fileName)
|
|
11 blatFileParser = BlatFileParser(fileName)
|
|
12 blatFileParser.parseBlatFile()
|
|
13 obsNbHits = len(blatFileParser.getListsOfHits())
|
|
14 self.assertTrue(obsNbHits == 10)
|
|
15 obsQueries = blatFileParser.getDictOfQueries()
|
|
16 expQueries = {'5:574_1:574_539_5:1:G/C': 1, '3:574_1:574_539_5:1:G/C': 1, '5:574_2:574_433_5:1:G/C': 1,"3:574_2:574_433_5:1:G/C":1, "5:574_5:574_607_5:1:G/C": 1, "3:574_5:574_607_5:1:G/C": 1}
|
|
17 self.assertEquals(expQueries, obsQueries)
|
|
18
|
|
19 def test_parseBlatFileByQueries(self):
|
|
20 fileName = "dummayBlat.psl"
|
|
21 self._writeBlatInputFile(fileName)
|
|
22 blatFileParser = BlatFileParser(fileName)
|
|
23 blatFileParser.parseBlatFileByQueries()
|
|
24 obsDict = blatFileParser.getDictOfBlatHitsByQueries()
|
|
25 obs1 = len(obsDict["5:574_1:574_539_5:1:G/C"])
|
|
26 obs2 = len(obsDict["3:574_1:574_539_5:1:G/C"])
|
|
27 obs3 = len(obsDict["5:574_2:574_433_5:1:G/C"])
|
|
28 obs4 = len(obsDict["3:574_2:574_433_5:1:G/C"])
|
|
29 obs5 = len(obsDict["5:574_5:574_607_5:1:G/C"])
|
|
30 obs6 = len(obsDict["3:574_5:574_607_5:1:G/C"])
|
|
31 self.assertTrue(obs1 == 1)
|
|
32 self.assertTrue(obs2 == 1)
|
|
33 self.assertTrue(obs3 == 1)
|
|
34 self.assertTrue(obs4 == 5)
|
|
35 self.assertTrue(obs5 == 1)
|
|
36 self.assertTrue(obs6 == 1)
|
|
37 obsQueries = blatFileParser.getDictOfQueries()
|
|
38 expQueries = {'5:574_1:574_539_5:1:G/C': 1, '3:574_1:574_539_5:1:G/C': 1, '5:574_2:574_433_5:1:G/C': 1,"3:574_2:574_433_5:1:G/C":1, "5:574_5:574_607_5:1:G/C": 1, "3:574_5:574_607_5:1:G/C": 1}
|
|
39 self.assertEquals(expQueries, obsQueries)
|
|
40
|
|
41 def _writeBlatInputFile(self, fileName):
|
|
42 file = open(fileName, "w")
|
|
43 file.write("psLayout version 3\n")
|
|
44 file.write("\n")
|
|
45 file.write("match\tmis- \trep. \tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ \tQ \tQ \tQ \tT \tT \tT \tT \tblock\tblockSizes \tqStarts\t tStarts\n")
|
|
46 file.write(" \tmatch\tmatch\t \tcount\tbases\tcount\tbases\t \tname \tsize\tstart\tend\tname \tsize\tstart\tend\tcount\n")
|
|
47 file.write("---------------------------------------------------------------------------------------------------------------------------------------------------------------\n")
|
|
48 file.write("246\t0\t0\t4\t0\t0\t0\t0\t-\t5:574_1:574_539_5:1:G/C\t250\t0\t250\ttaecs3B_RPH7\t3109948\t1065213\t1065463\t1\t250,\t0,\t1065213,\n")
|
|
49 file.write("247\t0\t0\t2\t0\t0\t0\t0\t-\t3:574_1:574_539_5:1:G/C\t250\t1\t250\ttaecs3B_RPH7\t3109948\t1064962\t1065211\t1\t249,\t0,\t1064962,\n")
|
|
50 file.write("249\t0\t0\t1\t0\t0\t0\t0\t-\t5:574_2:574_433_5:1:G/C\t250\t0\t250\ttaecs3B_RPH7\t3109948\t1065319\t1065569\t1\t250,\t0,\t1065319,\n")
|
|
51 file.write("245\t0\t0\t5\t0\t0\t0\t0\t-\t3:574_2:574_433_5:1:G/C\t250\t0\t250\ttaecs3B_RPH8\t3109948\t1065068\t1065318\t1\t250,\t0,\t1065068,\n")
|
|
52 file.write("247\t0\t0\t3\t0\t0\t0\t0\t-\t3:574_2:574_433_5:1:G/C\t250\t0\t250\ttaecs3B_RPH8\t3109948\t1065310\t1065560\t1\t250,\t0,\t1065310,\n")
|
|
53 file.write("247\t0\t0\t3\t0\t0\t0\t0\t-\t3:574_2:574_433_5:1:G/C\t250\t0\t250\ttaecs3B_RPH9\t3109948\t1065059\t1065309\t1\t250,\t0,\t1065059,\n")
|
|
54 file.write("247\t0\t0\t3\t0\t0\t0\t0\t-\t3:574_2:574_433_5:1:G/C\t250\t0\t250\ttaecs3B_RPH9\t3109948\t1064805\t1065055\t1\t250,\t0,\t1064805,\n")
|
|
55 file.write("68\t0\t0\t1\t0\t0\t0\t0\t-\t3:574_2:574_433_5:1:G/C\t69\t0\t69\ttaecs3B_RPH9\t3109948\t1064733\t1064802\t1\t69,\t0,\t1064733,\n")
|
|
56 file.write("245\t0\t0\t5\t0\t0\t0\t0\t-\t5:574_5:574_607_5:1:G/C\t250\t0\t250\ttaecs3B_RPH9\t3109948\t1065145\t1065395\t1\t250,\t0,\t1065145,\n")
|
|
57 file.write("247\t0\t0\t3\t0\t0\t0\t0\t-\t3:574_5:574_607_5:1:G/C\t250\t0\t250\ttaecs3B_RPH9\t3109948\t1064894\t1065144\t1\t250,\t0,\t1064894,\n")
|
|
58 file.close()
|
|
59
|
|
60 if __name__ == "__main__":
|
|
61 unittest.main() |