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