Mercurial > repos > yufei-luo > s_mart
comparison smart_toolShed/SMART/Java/Python/ncList/test/Test_F_FindOverlaps_naif.py @ 0:e0f8dcca02ed
Uploaded S-MART tool. A toolbox manages RNA-Seq and ChIP-Seq data.
author | yufei-luo |
---|---|
date | Thu, 17 Jan 2013 10:52:14 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e0f8dcca02ed |
---|---|
1 import unittest | |
2 import os | |
3 from commons.core.utils.FileUtils import FileUtils | |
4 from SMART.Java.Python.misc import Utils | |
5 from SMART.Java.Python.ncList.FindOverlaps_naif import FindOverlaps_naif | |
6 from SMART.Java.Python.ncList.test.MockFindOverlapsWithSeveralIntervals import * | |
7 | |
8 class Test_F_FindOverlaps_naif(unittest.TestCase): | |
9 | |
10 def setUp(self): | |
11 self._inputRefGff3FileName = 'ref.gff3' | |
12 self._writeGFF3File(self._inputRefGff3FileName) | |
13 self._inputQueryGff3FileName = 'query.gff3' | |
14 self._writeQueryGff3File(self._inputQueryGff3FileName) | |
15 self._outputGff3FileName = 'output.gff3' | |
16 self._expOutputFileName = 'expOutGff3.gff3' | |
17 self._iFON = FindOverlaps_naif(self._inputRefGff3FileName, self._inputQueryGff3FileName) | |
18 self._iFON.setOutputGff3FileName(self._outputGff3FileName) | |
19 | |
20 def tearDown(self): | |
21 os.remove(self._inputRefGff3FileName) | |
22 os.remove(self._inputQueryGff3FileName) | |
23 os.remove(self._outputGff3FileName) | |
24 os.remove(self._expOutputFileName) | |
25 | |
26 def test_run_general(self): | |
27 self._iFON.run() | |
28 self._iFON.close() | |
29 self._writeExpOutFile_general(self._expOutputFileName) | |
30 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
31 | |
32 def test_run_general_asScript(self): | |
33 cmd = 'python ../FindOverlaps_naif.py -i %s -j %s -o %s' % (self._inputRefGff3FileName, self._inputQueryGff3FileName, self._outputGff3FileName) | |
34 os.system(cmd) | |
35 self._writeExpOutFile_general(self._expOutputFileName) | |
36 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
37 | |
38 def test_run_overlap_special_case(self): | |
39 inputQueryGff3FileName = 'query2.gff3' | |
40 self._writeQueryGff3File2(inputQueryGff3FileName) | |
41 iFON = FindOverlaps_naif(self._inputRefGff3FileName, inputQueryGff3FileName) | |
42 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
43 iFON.run() | |
44 iFON.close() | |
45 self._writeExpOutFile_special_case(self._expOutputFileName) | |
46 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
47 os.remove(inputQueryGff3FileName) | |
48 | |
49 def test_run_overlap_special_case_asScript(self): | |
50 inputQueryGff3FileName = 'query2.gff3' | |
51 self._writeQueryGff3File2(inputQueryGff3FileName) | |
52 cmd = 'python ../FindOverlaps_naif.py -i %s -j %s -o %s' % (self._inputRefGff3FileName, inputQueryGff3FileName, self._outputGff3FileName) | |
53 os.system(cmd) | |
54 self._writeExpOutFile_special_case(self._expOutputFileName) | |
55 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
56 os.remove(inputQueryGff3FileName) | |
57 | |
58 def test_case_2(self): | |
59 inputRefGff3FileName = 'ref_case2.gff3' | |
60 iMock = MockFindOverlapsWithServeralIntervals_case2() | |
61 iMock.write(inputRefGff3FileName) | |
62 inputQueryGff3FileName = 'query_case2.gff3' | |
63 self._writeQueryGff3File_case2(inputQueryGff3FileName) | |
64 iFON = FindOverlaps_naif(inputRefGff3FileName, inputQueryGff3FileName) | |
65 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
66 iFON.run() | |
67 iFON.close() | |
68 self._writeExpOutFile_case2(self._expOutputFileName) | |
69 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
70 os.remove(inputQueryGff3FileName) | |
71 os.remove(inputRefGff3FileName) | |
72 | |
73 def test_case_3(self): | |
74 inputRefGff3FileName = 'ref_case3.gff3' | |
75 iMock = MockFindOverlapsWithServeralIntervals_case3() | |
76 iMock.write(inputRefGff3FileName) | |
77 inputQueryGff3FileName = 'query_case3.gff3' | |
78 self._writeQueryGff3File_case3(inputQueryGff3FileName) | |
79 iFON = FindOverlaps_naif(inputRefGff3FileName, inputQueryGff3FileName) | |
80 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
81 iFON.run() | |
82 iFON.close() | |
83 self._writeExpOutFile_case3(self._expOutputFileName) | |
84 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
85 os.remove(inputQueryGff3FileName) | |
86 os.remove(inputRefGff3FileName) | |
87 | |
88 def test_case_4(self): | |
89 inputRefGff3FileName = 'ref_case4.gff3' | |
90 iMock = MockFindOverlapsWithServeralIntervals_case4_5() | |
91 iMock.write(inputRefGff3FileName) | |
92 inputQueryGff3FileName = 'query_case4.gff3' | |
93 self._writeQueryGff3File_case4(inputQueryGff3FileName) | |
94 iFON = FindOverlaps_naif(inputRefGff3FileName, inputQueryGff3FileName) | |
95 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
96 iFON.run() | |
97 iFON.close() | |
98 self._writeExpOutFile_case4(self._expOutputFileName) | |
99 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
100 os.remove(inputQueryGff3FileName) | |
101 os.remove(inputRefGff3FileName) | |
102 | |
103 def test_case_5(self): | |
104 inputRefGff3FileName = 'ref_case5.gff3' | |
105 iMock = MockFindOverlapsWithServeralIntervals_case4_5() | |
106 iMock.write(inputRefGff3FileName) | |
107 inputQueryGff3FileName = 'query_case5.gff3' | |
108 self._writeQueryGff3File_case5(inputQueryGff3FileName) | |
109 iFON = FindOverlaps_naif(inputRefGff3FileName, inputQueryGff3FileName) | |
110 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
111 iFON.run() | |
112 iFON.close() | |
113 self._writeExpOutFile_case5(self._expOutputFileName) | |
114 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
115 os.remove(inputQueryGff3FileName) | |
116 os.remove(inputRefGff3FileName) | |
117 | |
118 def test_case_6(self): | |
119 inputRefGff3FileName = 'ref_case6.gff3' | |
120 iMock = MockFindOverlapsWithServeralIntervals_case6_7() | |
121 iMock.write(inputRefGff3FileName) | |
122 inputQueryGff3FileName = 'query_case6.gff3' | |
123 self._writeQueryGff3File_case6(inputQueryGff3FileName) | |
124 iFON = FindOverlaps_naif(inputRefGff3FileName, inputQueryGff3FileName) | |
125 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
126 iFON.run() | |
127 iFON.close() | |
128 self._writeExpOutFile_case6(self._expOutputFileName) | |
129 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
130 os.remove(inputQueryGff3FileName) | |
131 os.remove(inputRefGff3FileName) | |
132 | |
133 def test_case_7(self): | |
134 inputRefGff3FileName = 'ref_case7.gff3' | |
135 iMock = MockFindOverlapsWithServeralIntervals_case6_7() | |
136 iMock.write(inputRefGff3FileName) | |
137 inputQueryGff3FileName = 'query_case7.gff3' | |
138 self._writeQueryGff3File_case7(inputQueryGff3FileName) | |
139 iFON = FindOverlaps_naif(inputRefGff3FileName, inputQueryGff3FileName) | |
140 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
141 iFON.run() | |
142 iFON.close() | |
143 self._writeExpOutFile_case7(self._expOutputFileName) | |
144 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
145 os.remove(inputQueryGff3FileName) | |
146 os.remove(inputRefGff3FileName) | |
147 | |
148 def test_case_8(self): | |
149 inputRefGff3FileName = 'ref_case8.gff3' | |
150 iMock = MockFindOverlapsWithServeralIntervals_case8() | |
151 iMock.write(inputRefGff3FileName) | |
152 inputQueryGff3FileName = 'query_case8.gff3' | |
153 self._writeQueryGff3File_case8(inputQueryGff3FileName) | |
154 iFON = FindOverlaps_naif(inputRefGff3FileName, inputQueryGff3FileName) | |
155 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
156 iFON.run() | |
157 iFON.close() | |
158 self._writeExpOutFile_case8(self._expOutputFileName) | |
159 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
160 os.remove(inputQueryGff3FileName) | |
161 os.remove(inputRefGff3FileName) | |
162 | |
163 def test_case_9(self): | |
164 inputRefGff3FileName = 'ref_case9.gff3' | |
165 iMock = MockFindOverlapsWithServeralIntervals_case9() | |
166 iMock.write(inputRefGff3FileName) | |
167 inputQueryGff3FileName = 'query_case9.gff3' | |
168 self._writeQueryGff3File_case9(inputQueryGff3FileName) | |
169 iFON = FindOverlaps_naif(inputRefGff3FileName, inputQueryGff3FileName) | |
170 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
171 iFON.run() | |
172 iFON.close() | |
173 self._writeExpOutFile_case9(self._expOutputFileName) | |
174 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
175 os.remove(inputQueryGff3FileName) | |
176 os.remove(inputRefGff3FileName) | |
177 | |
178 def test_case_10(self): | |
179 inputRefGff3FileName = 'ref_case10.gff3' | |
180 iMock = MockFindOverlapsWithServeralIntervals_case10() | |
181 iMock.write(inputRefGff3FileName) | |
182 inputQueryGff3FileName = 'query_case10.gff3' | |
183 self._writeQueryGff3File_case10(inputQueryGff3FileName) | |
184 iFON = FindOverlaps_naif(inputRefGff3FileName, inputQueryGff3FileName) | |
185 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
186 iFON.run() | |
187 iFON.close() | |
188 self._writeExpOutFile_case10(self._expOutputFileName) | |
189 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
190 os.remove(inputQueryGff3FileName) | |
191 os.remove(inputRefGff3FileName) | |
192 | |
193 def test_case_11(self): | |
194 inputRefGff3FileName = 'ref_case11.gff3' | |
195 iMock = MockFindOverlapsWithServeralIntervals_case11() | |
196 iMock.write(inputRefGff3FileName) | |
197 inputQueryGff3FileName = 'query_case11.gff3' | |
198 self._writeQueryGff3File_case11(inputQueryGff3FileName) | |
199 iFON = FindOverlaps_naif(inputRefGff3FileName, inputQueryGff3FileName) | |
200 iFON.setOutputGff3FileName(self._outputGff3FileName) | |
201 iFON.run() | |
202 iFON.close() | |
203 self._writeExpOutFile_case11(self._expOutputFileName) | |
204 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputGff3FileName)) | |
205 os.remove(inputQueryGff3FileName) | |
206 os.remove(inputRefGff3FileName) | |
207 | |
208 def _writeExpOutFile_special_case(self, fileName): | |
209 f = open(fileName, 'w') | |
210 f.write("chr1 S-MART test2 1250 1300 781 + . nbOverlaps=1;overlapsWith=test2.7;ID=query_2;Name=test1.2\n") | |
211 f.close() | |
212 | |
213 def _writeExpOutFile_general(self, fileName): | |
214 f = open(fileName, 'w') | |
215 f.write("""chr1 S-MART test1.1 25 150 126 + . nbOverlaps=3;overlapsWith=test2.1--test2.2--test2.3;ID=query_1;Name=test1.1 | |
216 chr1 S-MART test1.2 70 850 781 + . nbOverlaps=6;overlapsWith=test2.1--test2.2--test2.3--test2.4--test2.5--test2.6;ID=query_2;Name=test1.2 | |
217 chr1 S-MART test1.3 550 850 201 + . nbOverlaps=4;overlapsWith=test2.1--test2.3--test2.5--test2.6;ID=query_3;Name=test1.3 | |
218 chr1 S-MART test1.4 925 1025 101 + . nbOverlaps=2;overlapsWith=test2.1--test2.5;ID=query_4;Name=test1.4 | |
219 chr1 S-MART test1.5 1201 1210 10 + . nbOverlaps=1;overlapsWith=test2.7;ID=query_5;Name=test1.5 | |
220 """) | |
221 f.close() | |
222 | |
223 def _writeExpOutFile_cas_1(self, fileName): | |
224 f = open(fileName, 'w') | |
225 f.write("chr1\tS-MART\ttest2.1\t9\t1000\t1001\t+\t.\tOverlapWith=query_3;ID=test2.1;Name=test2.1\n") | |
226 f.write("chr1\tS-MART\ttest2.3\t100\t600\t501\t+\t.\tOverlapWith=query_3;ID=test2.3;Name=test2.3\n") | |
227 f.write("chr1\tS-MART\ttest2.5\t700\t950\t251\t+\t.\tOverlapWith=query_3;ID=test2.5;Name=test2.5\n") | |
228 f.write("chr1\tS-MART\ttest2.6\t800\t900\t101\t+\t.\tOverlapWith=query_3;ID=test2.6;Name=test2.6\n") | |
229 f.close() | |
230 | |
231 def _writeExpOutFile_cas_2(self, fileName): | |
232 f = open(fileName, 'w') | |
233 f.write("chr1\tS-MART\ttest2.1\t9\t1000\t1001\t+\t.\tOverlapWith=query_2;Name=test2.1\n") | |
234 f.write("chr1\tS-MART\ttest2.2\t50\t350\t301\t+\t.\tOverlapWith=query_2;Name=test2.2\n") | |
235 f.write("chr1\tS-MART\ttest2.3\t100\t600\t501\t+\t.\tOverlapWith=query_2;Name=test2.3\n") | |
236 f.write("chr1\tS-MART\ttest2.4\t200\t450\t251\t+\t.\tOverlapWith=query_2;Name=test2.4\n") | |
237 f.write("chr1\tS-MART\ttest2.5\t700\t950\t251\t+\t.\tOverlapWith=query_2;Name=test2.5\n") | |
238 f.write("chr1\tS-MART\ttest2.6\t800\t900\t101\t+\t.\tOverlapWith=query_2;Name=test2.6\n") | |
239 f.write("chr1\tS-MART\ttest2.1\t9\t1000\t1001\t+\t.\tOverlapWith=query_3;Name=test2.1\n") | |
240 f.write("chr1\tS-MART\ttest2.3\t100\t600\t501\t+\t.\tOverlapWith=query_3;Name=test2.3\n") | |
241 f.write("chr1\tS-MART\ttest2.5\t700\t950\t251\t+\t.\tOverlapWith=query_3;Name=test2.5\n") | |
242 f.write("chr1\tS-MART\ttest2.6\t800\t900\t101\t+\t.\tOverlapWith=query_3;Name=test2.6\n") | |
243 f.close() | |
244 | |
245 def _writeExpOutFile_all_overlap(self, fileName): | |
246 f = open(fileName, 'w') | |
247 f.write("chr1\tS-MART\ttest2.1\t9\t1000\t1001\t+\t.\tOverlapWith=query_2;ID=test2.1;Name=test2.1\n") | |
248 f.write("chr1\tS-MART\ttest2.2\t50\t350\t301\t+\t.\tOverlapWith=query_2;D=test2.2;Name=test2.2\n") | |
249 f.write("chr1\tS-MART\ttest2.3\t100\t600\t501\t+\t.\tOverlapWith=query_2;ID=test2.3;Name=test2.3\n") | |
250 f.write("chr1\tS-MART\ttest2.4\t200\t450\t251\t+\t.\tOverlapWith=query_2;ID=test2.4;Name=test2.4\n") | |
251 f.write("chr1\tS-MART\ttest2.5\t700\t950\t251\t+\t.\tOverlapWith=query_2;ID=test2.5;Name=test2.5\n") | |
252 f.write("chr1\tS-MART\ttest2.6\t800\t900\t101\t+\t.\tOverlapWith=query_2;ID=test2.6;Name=test2.6\n") | |
253 f.close() | |
254 | |
255 def _writeExpOutFile_overlap_to_children(self, fileName): | |
256 f = open(fileName, 'w') | |
257 f.write("chr1\tS-MART\ttest2.1\t9\t1000\t1001\t+\t.\tOverlapWith=query_3;ID=test2.1;Name=test2.1\n") | |
258 f.write("chr1\tS-MART\ttest2.3\t100\t600\t501\t+\t.\tOverlapWith=query_3;ID=test2.3;Name=test2.3\n") | |
259 f.write("chr1\tS-MART\ttest2.5\t700\t950\t251\t+\t.\tOverlapWith=query_3;ID=test2.5;Name=test2.5\n") | |
260 f.write("chr1\tS-MART\ttest2.6\t800\t900\t101\t+\t.\tOverlapWith=query_3;ID=test2.6;Name=test2.6\n") | |
261 f.close() | |
262 | |
263 def _writeExpOutFile_not_overlap_to_children(self, fileName): | |
264 f = open(fileName, 'w') | |
265 f.write("chr1\tS-MART\ttest2.1\t9\t1000\t1001\t+\t.\tOverlapWith=query_1;ID=test2.1;Name=test2.1\n") | |
266 f.write("chr1\tS-MART\ttest2.2\t50\t350\t301\t+\t.\tOverlapWith=query_1;ID=test2.2;Name=test2.2\n") | |
267 f.write("chr1\tS-MART\ttest2.3\t100\t600\t501\t+\t.\tOverlapWith=query_1;ID=test2.3;Name=test2.3\n") | |
268 f.write("chr1\tS-MART\ttest2.1\t9\t1000\t1001\t+\t.\tOverlapWith=query_4;ID=test2.1;Name=test2.1\n") | |
269 f.write("chr1\tS-MART\ttest2.5\t700\t950\t251\t+\t.\tOverlapWith=query_4;ID=test2.5;Name=test2.5\n") | |
270 f.close() | |
271 | |
272 def _writeExpOutFile_no_overlap_right(self, fileName): | |
273 f = open(fileName, 'w') | |
274 f.close() | |
275 | |
276 def _writeExpOutFile_one_overlap(self, fileName): | |
277 f = open(fileName, 'w') | |
278 f.write("chr1\tS-MART\ttest2.7\t1200\t1300\t101\t+\t.\tOverlapWith=query_5;ID=test2.7;Name=test2.7\n") | |
279 f.close() | |
280 | |
281 def _writeExpOutFile_case2(self, fileName): | |
282 f = open(fileName, 'w') | |
283 f.write("""chr1 S-MART test2.1 150 300 151 + . nbOverlaps=4;overlapsWith=test2.1--test2.2--test2.3--test2.4;ID=query_1;Name=test2.1 | |
284 chr1 S-MART test2.2 300 450 781 + . nbOverlaps=3;overlapsWith=test2.1--test2.2--test2.3;ID=query_2;Name=test2.2 | |
285 chr1 S-MART test2.3 480 800 321 + . nbOverlaps=1;overlapsWith=test2.1;ID=query_3;Name=test2.3 | |
286 chr1 S-MART test2.5 850 1000 151 + . nbOverlaps=1;overlapsWith=test2.5;ID=query_5;Name=test2.5 | |
287 """) | |
288 f.close() | |
289 | |
290 def _writeExpOutFile_case3(self, fileName): | |
291 f = open(fileName, 'w') | |
292 f.write("""chr1 S-MART test3.1 150 250 101 + . nbOverlaps=4;overlapsWith=test3.1--test3.2--test3.3--test3.4;ID=query_1;Name=test3.1 | |
293 chr1 S-MART test3.2 380 400 21 + . nbOverlaps=4;overlapsWith=test3.1--test3.2--test3.3--test3.5;ID=query_2;Name=test3.2 | |
294 chr1 S-MART test3.3 480 520 41 + . nbOverlaps=1;overlapsWith=test3.1;ID=query_3;Name=test3.3 | |
295 chr1 S-MART test3.5 900 950 51 + . nbOverlaps=1;overlapsWith=test3.6;ID=query_5;Name=test3.5 | |
296 """) | |
297 f.close() | |
298 | |
299 def _writeExpOutFile_case4(self, fileName): | |
300 f = open(fileName, 'w') | |
301 f.write("""chr1 S-MART test4.1 400 500 101 + . nbOverlaps=3;overlapsWith=test4.1--test4.2--test4.3;ID=query_1;Name=test4.1 | |
302 chr1 S-MART test4.2 450 600 151 + . nbOverlaps=3;overlapsWith=test4.1--test4.2--test4.3;ID=query_2;Name=test4.2 | |
303 chr1 S-MART test4.3 700 800 101 + . nbOverlaps=2;overlapsWith=test4.1--test4.2;ID=query_3;Name=test4.3 | |
304 """) | |
305 f.close() | |
306 | |
307 def _writeExpOutFile_case5(self, fileName): | |
308 f = open(fileName, 'w') | |
309 f.write("chr1 S-MART test5.1 850 950 101 + . nbOverlaps=1;overlapsWith=test4.1;ID=query_1;Name=test5.1\n") | |
310 f.close() | |
311 | |
312 def _writeExpOutFile_case6(self, fileName): | |
313 f = open(fileName, 'w') | |
314 f.write("""chr1 S-MART test6.1 200 300 101 + . nbOverlaps=2;overlapsWith=test6.1--test6.2;ID=query_1;Name=test6.1 | |
315 chr1 S-MART test6.2 800 900 101 + . nbOverlaps=2;overlapsWith=test6.1--test6.5;ID=query_2;Name=test6.2 | |
316 """) | |
317 f.close() | |
318 | |
319 def _writeExpOutFile_case7(self, fileName): | |
320 f = open(fileName, 'w') | |
321 f.write("""chr1 S-MART test7.1 530 550 21 + . nbOverlaps=1;overlapsWith=test6.1;ID=query_1;Name=test7.1 | |
322 chr1 S-MART test7.2 600 700 101 + . nbOverlaps=1;overlapsWith=test6.1;ID=query_2;Name=test7.2 | |
323 chr1 S-MART test7.3 650 900 251 + . nbOverlaps=2;overlapsWith=test6.1--test6.5;ID=query_3;Name=test7.3 | |
324 """) | |
325 f.close() | |
326 | |
327 def _writeExpOutFile_case8(self, fileName): | |
328 f = open(fileName, 'w') | |
329 f.write("""chr1 S-MART test8.1 500 600 101 + . nbOverlaps=1;overlapsWith=test8.1;ID=query_1;Name=test8.1 | |
330 chr1 S-MART test8.2 700 800 101 + . nbOverlaps=1;overlapsWith=test8.1;ID=query_2;Name=test8.2 | |
331 chr1 S-MART test8.3 900 1100 201 + . nbOverlaps=1;overlapsWith=test8.1;ID=query_3;Name=test8.3 | |
332 """) | |
333 f.close() | |
334 | |
335 def _writeExpOutFile_case9(self, fileName): | |
336 f = open(fileName, 'w') | |
337 f.write("""chr1 S-MART test9.1 400 500 101 + . nbOverlaps=1;overlapsWith=test9.1;ID=query_1;Name=test9.1 | |
338 chr1 S-MART test9.2 550 650 101 + . nbOverlaps=2;overlapsWith=test9.1--test9.2;ID=query_2;Name=test9.2 | |
339 """) | |
340 f.close() | |
341 | |
342 def _writeExpOutFile_case10(self, fileName): | |
343 f = open(fileName, 'w') | |
344 f.write("""chr1 S-MART test10.1 700 800 101 + . nbOverlaps=1;overlapsWith=test10.1;ID=query_1;Name=test10.1 | |
345 chr1 S-MART test10.2 900 1000 101 + . nbOverlaps=1;overlapsWith=test10.1;ID=query_2;Name=test10.2 | |
346 chr1 S-MART test10.3 1100 1300 201 + . nbOverlaps=1;overlapsWith=test10.5;ID=query_3;Name=test10.3 | |
347 """) | |
348 f.close() | |
349 | |
350 def _writeExpOutFile_case11(self, fileName): | |
351 f = open(fileName, 'w') | |
352 f.write("""chr1 S-MART test11.1 420 480 61 + . nbOverlaps=1;overlapsWith=test11.1;ID=query_1;Name=test11.1 | |
353 chr1 S-MART test11.2 450 715 266 + . nbOverlaps=3;overlapsWith=test11.1--test11.4--test11.5;ID=query_2;Name=test11.2 | |
354 """) | |
355 f.close() | |
356 | |
357 def _writeQueryGff3File2(self, fileName): | |
358 f = open(fileName, 'w') | |
359 f.write("chr1\tquery\ttest1\t1100\t1150\t126\t+\t.\tID=query_1;Name=test1.1\n") | |
360 f.write("chr1\tquery\ttest2\t1250\t1300\t781\t+\t.\tID=query_2;Name=test1.2\n") | |
361 f.close() | |
362 | |
363 def _writeQueryGff3File(self, fileName): | |
364 f = open(fileName, 'w') | |
365 f.write("chr1\tquery\ttest1.1\t25\t150\t126\t+\t.\tID=query_1;Name=test1.1\n") | |
366 f.write("chr1\tquery\ttest1.2\t70\t850\t781\t+\t.\tID=query_2;Name=test1.2\n") | |
367 f.write("chr1\tquery\ttest1.3\t550\t850\t201\t+\t.\tID=query_3;Name=test1.3\n") | |
368 f.write("chr1\tquery\ttest1.4\t925\t1025\t101\t+\t.\tID=query_4;Name=test1.4\n") | |
369 f.write("chr1\tquery\ttest1.5\t1201\t1210\t10\t+\t.\tID=query_5;Name=test1.5\n") | |
370 f.write("chr1\tquery\ttest1.6\t1500\t1600\t101\t+\t.\tID=query_6;Name=test1.6\n") | |
371 f.close() | |
372 | |
373 def _writeQueryGff3File_case2(self, fileName): | |
374 f = open(fileName, 'w') | |
375 f.write("chr1\tquery\ttest2.1\t150\t300\t151\t+\t.\tID=query_1;Name=test2.1\n") | |
376 f.write("chr1\tquery\ttest2.2\t300\t450\t781\t+\t.\tID=query_2;Name=test2.2\n") | |
377 f.write("chr1\tquery\ttest2.3\t480\t800\t321\t+\t.\tID=query_3;Name=test2.3\n") | |
378 f.write("chr1\tquery\ttest2.4\t560\t800\t241\t+\t.\tID=query_4;Name=test2.4\n") | |
379 f.write("chr1\tquery\ttest2.5\t850\t1000\t151\t+\t.\tID=query_5;Name=test2.5\n") | |
380 f.close() | |
381 | |
382 def _writeQueryGff3File_case3(self, fileName): | |
383 f = open(fileName, 'w') | |
384 f.write("chr1\tquery\ttest3.1\t150\t250\t101\t+\t.\tID=query_1;Name=test3.1\n") | |
385 f.write("chr1\tquery\ttest3.2\t380\t400\t21\t+\t.\tID=query_2;Name=test3.2\n") | |
386 f.write("chr1\tquery\ttest3.3\t480\t520\t41\t+\t.\tID=query_3;Name=test3.3\n") | |
387 f.write("chr1\tquery\ttest3.4\t510\t700\t191\t+\t.\tID=query_4;Name=test3.4\n") | |
388 f.write("chr1\tquery\ttest3.5\t900\t950\t51\t+\t.\tID=query_5;Name=test3.5\n") | |
389 f.close() | |
390 | |
391 def _writeQueryGff3File_case4(self, fileName): | |
392 f = open(fileName, 'w') | |
393 f.write("chr1\tquery\ttest4.1\t400\t500\t101\t+\t.\tID=query_1;Name=test4.1\n") | |
394 f.write("chr1\tquery\ttest4.2\t450\t600\t151\t+\t.\tID=query_2;Name=test4.2\n") | |
395 f.write("chr1\tquery\ttest4.3\t700\t800\t101\t+\t.\tID=query_3;Name=test4.3\n") | |
396 f.close() | |
397 | |
398 def _writeQueryGff3File_case5(self, fileName): | |
399 f = open(fileName, 'w') | |
400 f.write("chr1\tquery\ttest5.1\t850\t950\t101\t+\t.\tID=query_1;Name=test5.1\n") | |
401 f.close() | |
402 | |
403 def _writeQueryGff3File_case6(self, fileName): | |
404 f = open(fileName, 'w') | |
405 f.write("chr1\tquery\ttest6.1\t200\t300\t101\t+\t.\tID=query_1;Name=test6.1\n") | |
406 f.write("chr1\tquery\ttest6.2\t800\t900\t101\t+\t.\tID=query_2;Name=test6.2\n") | |
407 f.close() | |
408 | |
409 def _writeQueryGff3File_case7(self, fileName): | |
410 f = open(fileName, 'w') | |
411 f.write("chr1\tquery\ttest7.1\t530\t550\t21\t+\t.\tID=query_1;Name=test7.1\n") | |
412 f.write("chr1\tquery\ttest7.2\t600\t700\t101\t+\t.\tID=query_2;Name=test7.2\n") | |
413 f.write("chr1\tquery\ttest7.3\t650\t900\t251\t+\t.\tID=query_3;Name=test7.3\n") | |
414 f.close() | |
415 | |
416 def _writeQueryGff3File_case8(self, fileName): | |
417 f = open(fileName, 'w') | |
418 f.write("chr1\tquery\ttest8.1\t500\t600\t101\t+\t.\tID=query_1;Name=test8.1\n") | |
419 f.write("chr1\tquery\ttest8.2\t700\t800\t101\t+\t.\tID=query_2;Name=test8.2\n") | |
420 f.write("chr1\tquery\ttest8.3\t900\t1100\t201\t+\t.\tID=query_3;Name=test8.3\n") | |
421 f.write("chr1\tquery\ttest8.4\t1200\t1300\t101\t+\t.\tID=query_4;Name=test8.4\n") | |
422 f.close() | |
423 | |
424 def _writeQueryGff3File_case9(self, fileName): | |
425 f = open(fileName, 'w') | |
426 f.write("chr1\tquery\ttest9.1\t400\t500\t101\t+\t.\tID=query_1;Name=test9.1\n") | |
427 f.write("chr1\tquery\ttest9.2\t550\t650\t101\t+\t.\tID=query_2;Name=test9.2\n") | |
428 f.close() | |
429 | |
430 def _writeQueryGff3File_case10(self, fileName): | |
431 f = open(fileName, 'w') | |
432 f.write("chr1\tquery\ttest10.1\t700\t800\t101\t+\t.\tID=query_1;Name=test10.1\n") | |
433 f.write("chr1\tquery\ttest10.2\t900\t1000\t101\t+\t.\tID=query_2;Name=test10.2\n") | |
434 f.write("chr1\tquery\ttest10.3\t1100\t1300\t201\t+\t.\tID=query_3;Name=test10.3\n") | |
435 f.close() | |
436 | |
437 def _writeQueryGff3File_case11(self, fileName): | |
438 f = open(fileName, 'w') | |
439 f.write("chr1\tquery\ttest11.1\t420\t480\t61\t+\t.\tID=query_1;Name=test11.1\n") | |
440 f.write("chr1\tquery\ttest11.2\t450\t715\t266\t+\t.\tID=query_2;Name=test11.2\n") | |
441 f.close() | |
442 | |
443 def _writeGFF3File(self, fileName): | |
444 f = open(fileName, "w") | |
445 f.write("chr1\ttest\ttest2.1\t9\t1000\t1001\t+\t.\tID=test2.1;Name=test2.1\n") | |
446 f.write("chr1\ttest\ttest2.2\t50\t350\t301\t+\t.\tID=test2.2;Name=test2.2\n") | |
447 f.write("chr1\ttest\ttest2.3\t100\t600\t501\t+\t.\tID=test2.3;Name=test2.3\n") | |
448 f.write("chr1\ttest\ttest2.4\t200\t450\t251\t+\t.\tID=test2.4;Name=test2.4\n") | |
449 f.write("chr1\ttest\ttest2.5\t700\t950\t251\t+\t.\tID=test2.5;Name=test2.5\n") | |
450 f.write("chr1\ttest\ttest2.6\t800\t900\t101\t+\t.\tID=test2.6;Name=test2.6\n") | |
451 f.write("chr1\ttest\ttest2.7\t1200\t1300\t101\t+\t.\tID=test2.7;Name=test2.7\n") | |
452 f.close() | |
453 | |
454 if __name__ == "__main__": | |
455 unittest.main() |