comparison commons/core/parsing/test/Test_PslParser.py @ 6:769e306b7933

Change the repository level.
author yufei-luo
date Fri, 18 Jan 2013 04:54:14 -0500
parents
children
comparison
equal deleted inserted replaced
5:ea3082881bf8 6:769e306b7933
1 from commons.core.parsing.PslParser import PslParser
2 import unittest, os
3
4
5 class Test_PslParser(unittest.TestCase):
6
7 def test_forward(self):
8 fileName = "tmpFile.psl"
9 handle = open(fileName, "w")
10 handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\T\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n158\t0\t0\t0\t0\t0\t1\t158\t+\ttest\t158\t0\t158\tchr1\t1501\t237\t553\t2\t79,79,\t0,79,\t237,474,\n")
11 handle.close()
12
13 parser = PslParser(fileName, 0)
14 self.assertEquals(parser.getNbMappings(), 1)
15 for mapping in parser.getIterator():
16 transcript = mapping.getTranscript()
17 self.assertEquals(transcript.getName(), "test")
18 self.assertEquals(transcript.getChromosome(), "chr1")
19 self.assertEquals(transcript.getDirection(), 1)
20 self.assertEquals(transcript.getStart(), 238)
21 self.assertEquals(transcript.getEnd(), 553)
22 self.assertEquals(transcript.getNbExons(), 2)
23 for i, exon in enumerate(transcript.getExons()):
24 if i == 0:
25 self.assertEquals(exon.getStart(), 238)
26 self.assertEquals(exon.getEnd(), 316)
27 elif i == 1:
28 self.assertEquals(exon.getStart(), 475)
29 self.assertEquals(exon.getEnd(), 553)
30 os.remove(fileName)
31
32
33 def test_backward(self):
34 fileName = "tmpFile.psl"
35 handle = open(fileName, "w")
36 handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\tT\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n158\t0\t0\t0\t0\t0\t1\t158\t-\ttest\t158\t0\t158\tchr1\t1501\t237\t553\t2\t79,79,\t0,79,\t237,474,\n")
37
38 handle.close()
39
40 parser = PslParser(fileName, 0)
41 self.assertEquals(parser.getNbMappings(), 1)
42 for mapping in parser.getIterator():
43 transcript = mapping.getTranscript()
44 self.assertEquals(transcript.getName(), "test")
45 self.assertEquals(transcript.getChromosome(), "chr1")
46 self.assertEquals(transcript.getDirection(), -1)
47 self.assertEquals(transcript.getStart(), 238)
48 self.assertEquals(transcript.getEnd(), 553)
49 self.assertEquals(transcript.getNbExons(), 2)
50 for i, exon in enumerate(transcript.getExons()):
51 if i == 1:
52 self.assertEquals(exon.getStart(), 238)
53 self.assertEquals(exon.getEnd(), 316)
54 elif i == 0:
55 self.assertEquals(exon.getStart(), 475)
56 self.assertEquals(exon.getEnd(), 553)
57 os.remove(fileName)
58
59
60 def test_query_forward_target_forward(self):
61 fileName = "tmpFile.psl"
62 handle = open(fileName, "w")
63 handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\tT\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n241\t0\t0\t0\t0\t0\t1\t60\t++\tseq1\t255\t9\t250\tref\t2262\t59\t360\t2\t121,120,\t9,130,\t59,240,\n")
64 handle.close()
65
66 parser = PslParser(fileName, 0)
67 self.assertEquals(parser.getNbMappings(), 1)
68 for mapping in parser.getIterator():
69 transcript = mapping.getTranscript()
70 self.assertEquals(transcript.getName(), "seq1")
71 self.assertEquals(transcript.getChromosome(), "ref")
72 self.assertEquals(transcript.getDirection(), 1)
73 self.assertEquals(transcript.getStart(), 60)
74 self.assertEquals(transcript.getEnd(), 360)
75 self.assertEquals(transcript.getNbExons(), 2)
76 for i, exon in enumerate(transcript.getExons()):
77 if i == 0:
78 self.assertEquals(exon.getStart(), 60)
79 self.assertEquals(exon.getEnd(), 180)
80 elif i == 1:
81 self.assertEquals(exon.getStart(), 241)
82 self.assertEquals(exon.getEnd(), 360)
83 os.remove(fileName)
84
85 def test_query_backward_target_forward(self):
86 fileName = "tmpFile.psl"
87 handle = open(fileName, "w")
88 handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\tT\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n241\t0\t0\t0\t0\t0\t1\t60\t-+\tseq2\t255\t5\t246\tref\t2262\t59\t360\t2\t121,120,\t9,130,\t59,240,\n")
89 handle.close()
90
91 parser = PslParser(fileName, 0)
92 self.assertEquals(parser.getNbMappings(), 1)
93 for mapping in parser.getIterator():
94 transcript = mapping.getTranscript()
95 self.assertEquals(transcript.getName(), "seq2")
96 self.assertEquals(transcript.getChromosome(), "ref")
97 self.assertEquals(transcript.getDirection(), -1)
98 self.assertEquals(transcript.getStart(), 60)
99 self.assertEquals(transcript.getEnd(), 360)
100 self.assertEquals(transcript.getNbExons(), 2)
101 for i, exon in enumerate(transcript.getExons()):
102 if i == 1:
103 self.assertEquals(exon.getStart(), 60)
104 self.assertEquals(exon.getEnd(), 180)
105 elif i == 0:
106 self.assertEquals(exon.getStart(), 241)
107 self.assertEquals(exon.getEnd(), 360)
108 os.remove(fileName)
109
110 def test_query_backward_target_backward(self):
111 fileName = "tmpFile.psl"
112 handle = open(fileName, "w")
113 handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\tT\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n241\t1\t0\t0\t0\t0\t1\t60\t--\tseq1\t255\t8\t250\tref\t2262\t58\t360\t2\t120,122,\t5,125,\t1902,2082,\n")
114 handle.close()
115
116 parser = PslParser(fileName, 0)
117 self.assertEquals(parser.getNbMappings(), 1)
118 for mapping in parser.getIterator():
119 transcript = mapping.getTranscript()
120 self.assertEquals(transcript.getName(), "seq1")
121 self.assertEquals(transcript.getChromosome(), "ref")
122 self.assertEquals(transcript.getDirection(), 1)
123 self.assertEquals(transcript.getStart(), 59)
124 self.assertEquals(transcript.getEnd(), 360)
125 self.assertEquals(transcript.getNbExons(), 2)
126 for i, exon in enumerate(transcript.getExons()):
127 if i == 0:
128 self.assertEquals(exon.getStart(), 59)
129 self.assertEquals(exon.getEnd(), 180)
130 elif i == 1:
131 self.assertEquals(exon.getStart(), 241)
132 self.assertEquals(exon.getEnd(), 360)
133 os.remove(fileName)
134
135
136 def test_query_forward_target_backward(self):
137 fileName = "tmpFile.psl"
138 handle = open(fileName, "w")
139 handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\tT\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n241\t1\t0\t0\t0\t0\t1\t60\t+-\tseq2\t255\t5\t247\tref\t2262\t58\t360\t2\t120,122,\t5,125,\t1902,2082,\n")
140 handle.close()
141
142 parser = PslParser(fileName, 0)
143 self.assertEquals(parser.getNbMappings(), 1)
144 for mapping in parser.getIterator():
145 transcript = mapping.getTranscript()
146 self.assertEquals(transcript.getName(), "seq2")
147 self.assertEquals(transcript.getChromosome(), "ref")
148 self.assertEquals(transcript.getDirection(), -1)
149 self.assertEquals(transcript.getStart(), 59)
150 self.assertEquals(transcript.getEnd(), 360)
151 self.assertEquals(transcript.getNbExons(), 2)
152 for i, exon in enumerate(transcript.getExons()):
153 if i == 1:
154 self.assertEquals(exon.getStart(), 59)
155 self.assertEquals(exon.getEnd(), 180)
156 elif i == 0:
157 self.assertEquals(exon.getStart(), 241)
158 self.assertEquals(exon.getEnd(), 360)
159 os.remove(fileName)
160
161
162 if __name__ == "__main__":
163 unittest.main()
164
165