Mercurial > repos > yufei-luo > s_mart
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 |