Mercurial > repos > yufei-luo > s_mart
comparison SMART/Java/Python/test/Test_F_getExons.py @ 18:94ab73e8a190
Uploaded
author | m-zytnicki |
---|---|
date | Mon, 29 Apr 2013 03:20:15 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
17:b0e8584489e6 | 18:94ab73e8a190 |
---|---|
1 import unittest | |
2 import os | |
3 from SMART.Java.Python.getExons import GetExons | |
4 from commons.core.parsing.GffParser import GffParser | |
5 | |
6 class Test_F_GetExons(unittest.TestCase): | |
7 | |
8 def setUp(self): | |
9 self._inputFileName = "inputFileTest.bed" | |
10 self._writeInputFile() | |
11 self._outputFileName = "output.gff3" | |
12 | |
13 def tearDown(self): | |
14 os.remove(self._inputFileName) | |
15 os.remove(self._outputFileName) | |
16 | |
17 def test_run_simple(self): | |
18 ge = GetExons(0) | |
19 ge.setInputFile(self._inputFileName, "bed") | |
20 ge.setOutputFile(self._outputFileName) | |
21 ge.run() | |
22 parser = GffParser(self._outputFileName, 0) | |
23 self.assertEqual(parser.getNbTranscripts(), 5) | |
24 for cpt, transcript in enumerate(parser.getIterator()): | |
25 self.assertEqual(transcript.getChromosome(), "arm_X") | |
26 self.assertEqual(transcript.getDirection(), 1) | |
27 self.assertEqual(transcript.getNbExons(), 1) | |
28 if cpt == 0: | |
29 self.assertEqual(transcript.getStart(), 10000001) | |
30 self.assertEqual(transcript.getEnd(), 10000100) | |
31 elif cpt == 1: | |
32 self.assertEqual(transcript.getStart(), 10000201) | |
33 self.assertEqual(transcript.getEnd(), 10000300) | |
34 elif cpt == 2: | |
35 self.assertEqual(transcript.getStart(), 10000401) | |
36 self.assertEqual(transcript.getEnd(), 10000500) | |
37 elif cpt == 3: | |
38 self.assertEqual(transcript.getStart(), 10000601) | |
39 self.assertEqual(transcript.getEnd(), 10000700) | |
40 elif cpt == 4: | |
41 self.assertEqual(transcript.getStart(), 10000801) | |
42 self.assertEqual(transcript.getEnd(), 10000900) | |
43 | |
44 def test_run_firstExon(self): | |
45 ge = GetExons(0) | |
46 ge.setInputFile(self._inputFileName, "bed") | |
47 ge.setOutputFile(self._outputFileName) | |
48 ge.setSelection("1") | |
49 ge.run() | |
50 parser = GffParser(self._outputFileName, 0) | |
51 self.assertEqual(parser.getNbTranscripts(), 1) | |
52 for cpt, transcript in enumerate(parser.getIterator()): | |
53 self.assertEqual(transcript.getChromosome(), "arm_X") | |
54 self.assertEqual(transcript.getDirection(), 1) | |
55 self.assertEqual(transcript.getNbExons(), 1) | |
56 self.assertEqual(transcript.getStart(), 10000001) | |
57 self.assertEqual(transcript.getEnd(), 10000100) | |
58 | |
59 def test_run_lastExon(self): | |
60 ge = GetExons(0) | |
61 ge.setInputFile(self._inputFileName, "bed") | |
62 ge.setOutputFile(self._outputFileName) | |
63 ge.setSelection("-1") | |
64 ge.run() | |
65 parser = GffParser(self._outputFileName, 0) | |
66 self.assertEqual(parser.getNbTranscripts(), 1) | |
67 for cpt, transcript in enumerate(parser.getIterator()): | |
68 self.assertEqual(transcript.getChromosome(), "arm_X") | |
69 self.assertEqual(transcript.getDirection(), 1) | |
70 self.assertEqual(transcript.getNbExons(), 1) | |
71 self.assertEqual(transcript.getStart(), 10000801) | |
72 self.assertEqual(transcript.getEnd(), 10000900) | |
73 | |
74 def test_run_first_lastExon(self): | |
75 ge = GetExons(0) | |
76 ge.setInputFile(self._inputFileName, "bed") | |
77 ge.setOutputFile(self._outputFileName) | |
78 ge.setSelection("1,-1") | |
79 ge.run() | |
80 parser = GffParser(self._outputFileName, 0) | |
81 self.assertEqual(parser.getNbTranscripts(), 2) | |
82 for cpt, transcript in enumerate(parser.getIterator()): | |
83 self.assertEqual(transcript.getChromosome(), "arm_X") | |
84 self.assertEqual(transcript.getDirection(), 1) | |
85 self.assertEqual(transcript.getNbExons(), 1) | |
86 if cpt == 0: | |
87 self.assertEqual(transcript.getStart(), 10000001) | |
88 self.assertEqual(transcript.getEnd(), 10000100) | |
89 elif cpt == 1: | |
90 self.assertEqual(transcript.getStart(), 10000801) | |
91 self.assertEqual(transcript.getEnd(), 10000900) | |
92 | |
93 def test_run_interval(self): | |
94 ge = GetExons(0) | |
95 ge.setInputFile(self._inputFileName, "bed") | |
96 ge.setOutputFile(self._outputFileName) | |
97 ge.setSelection("2..3") | |
98 ge.run() | |
99 parser = GffParser(self._outputFileName, 0) | |
100 self.assertEqual(parser.getNbTranscripts(), 2) | |
101 for cpt, transcript in enumerate(parser.getIterator()): | |
102 self.assertEqual(transcript.getChromosome(), "arm_X") | |
103 self.assertEqual(transcript.getDirection(), 1) | |
104 self.assertEqual(transcript.getNbExons(), 1) | |
105 if cpt == 0: | |
106 self.assertEqual(transcript.getStart(), 10000201) | |
107 self.assertEqual(transcript.getEnd(), 10000300) | |
108 elif cpt == 1: | |
109 self.assertEqual(transcript.getStart(), 10000401) | |
110 self.assertEqual(transcript.getEnd(), 10000500) | |
111 | |
112 def test_run_interval_element(self): | |
113 ge = GetExons(0) | |
114 ge.setInputFile(self._inputFileName, "bed") | |
115 ge.setOutputFile(self._outputFileName) | |
116 ge.setSelection("2..3,-1") | |
117 ge.run() | |
118 parser = GffParser(self._outputFileName, 0) | |
119 self.assertEqual(parser.getNbTranscripts(), 3) | |
120 for cpt, transcript in enumerate(parser.getIterator()): | |
121 self.assertEqual(transcript.getChromosome(), "arm_X") | |
122 self.assertEqual(transcript.getDirection(), 1) | |
123 self.assertEqual(transcript.getNbExons(), 1) | |
124 if cpt == 0: | |
125 self.assertEqual(transcript.getStart(), 10000201) | |
126 self.assertEqual(transcript.getEnd(), 10000300) | |
127 elif cpt == 1: | |
128 self.assertEqual(transcript.getStart(), 10000401) | |
129 self.assertEqual(transcript.getEnd(), 10000500) | |
130 elif cpt == 2: | |
131 self.assertEqual(transcript.getStart(), 10000801) | |
132 self.assertEqual(transcript.getEnd(), 10000900) | |
133 | |
134 | |
135 | |
136 def _writeInputFile(self): | |
137 f = open(self._inputFileName, "w") | |
138 f.write("arm_X\t10000001\t10000900\ttest1.1\t100\t+\t10000100\t10000200\t0\t5\t100,100,100,100,100,\t0,200,400,600,800,\n") | |
139 f.close() | |
140 | |
141 | |
142 | |
143 if __name__ == "__main__": | |
144 unittest.main() | |
145 |