comparison commons/launcher/tests/Test_F_LaunchPromer.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
comparison
equal deleted inserted replaced
30:5677346472b5 31:0ab839023fe4
1 import unittest
2 import os
3 from commons.core.utils.FileUtils import FileUtils
4 from commons.launcher.LaunchPromer import LaunchPromer
5
6
7 class Test_F_LaunchPromer(unittest.TestCase):
8
9 def setUp(self):
10 self._queryFastaFileName = "query.fa"
11 self._refFastaFileName = "ref.fa"
12 self._writeInputFastaFiles()
13 self._expDeltaFileName = "expPromer.delta"
14 self._writeExpDeltaFile()
15 self._obsDeltaFileName = "obsPromer.delta"
16 self._obsCoordFileName= "obsPromer.coords"
17 self._expCoordFileName= "expPromer.coords"
18
19 def tearDown(self):
20 try:
21 os.remove(self._queryFastaFileName)
22 except:pass
23 try:
24 os.remove(self._refFastaFileName)
25 except:pass
26 try:
27 os.remove(self._expDeltaFileName)
28 except:pass
29 try:
30 os.remove(self._obsDeltaFileName)
31 except:pass
32
33 def test_run(self):
34 ilauncher = LaunchPromer(self._refFastaFileName, self._queryFastaFileName,"obsPromer",verbosity=1)
35 ilauncher.run()
36 self.assertTrue(FileUtils.are2FilesIdentical(self._expDeltaFileName, self._obsDeltaFileName))
37
38 def test_run_as_script(self):
39 cmd = 'LaunchPromer.py --query %s --ref %s --prefix %s' % (self._refFastaFileName, self._queryFastaFileName, "obsPromer")
40 os.system(cmd)
41 self.assertTrue(FileUtils.are2FilesIdentical(self._expDeltaFileName, self._obsDeltaFileName))
42
43 def test_run_as_script_gencoords_output(self):
44 self._writeExpGenCoordsFile()
45 cmd = 'LaunchPromer.py --query %s --ref %s --prefix %s --gencoords' % (self._refFastaFileName, self._queryFastaFileName, "obsPromer")
46 os.system(cmd)
47 self.assertTrue(FileUtils.are2FilesIdentical(self._expCoordFileName, self._obsCoordFileName))
48 os.remove(self._obsCoordFileName)
49 os.remove(self._expCoordFileName)
50
51 def test_run_as_script_with_mincluster(self):
52 cmd = 'LaunchPromer.py --query %s --ref %s --prefix %s --mincluster 30' % (self._refFastaFileName, self._queryFastaFileName, "obsPromer")
53 os.system(cmd)
54 self.assertTrue(FileUtils.are2FilesIdentical(self._expDeltaFileName, self._obsDeltaFileName))
55
56 def test_run_as_script_showcoords_output(self):
57 self._writeExpShowCoordsFile()
58 cmd = 'LaunchPromer.py --query %s --ref %s --prefix %s --showcoords' % (self._refFastaFileName, self._queryFastaFileName, "obsPromer")
59 os.system(cmd)
60 self.assertTrue(FileUtils.are2FilesIdentical(self._expCoordFileName, self._obsCoordFileName))
61 os.remove(self._obsCoordFileName)
62 os.remove(self._expCoordFileName)
63
64 def _writeInputFastaFiles(self):
65 InputFile = open(self._queryFastaFileName, 'w')
66 InputFile.write('>Bovc-tA2:classI:SINE:SINE2/tRNA\n')
67 InputFile.write('GGGCTTCCCTGGTAGCTCAGCTGGTAAAGAATCCGCCTGCAATGCAGGAGACCCCGGTTC\n')
68 InputFile.write('GATTCCTGGGTCGGGAAGATCCCCTGGAGAAGGGATAGGCTACCCACTCCAGTATTCTTG\n')
69 InputFile.write('GGCTTCCCTGGTGGCTCAGACGGTAAAGAATCCGCCTGCAATGCGGGAGACCTGGGTTCG\n')
70 InputFile.write('ATCCCTGGGTTGGGAAGATCCCCTGGAGGAGGGCATGGCAACCCACTCCAGTATTCTTGC\n')
71 InputFile.write('CTGGAGAATCCCCATGGACAGAGGAGCCTGGCGGGCTACAGTCCATGGGGTCGCAAAGAG\n')
72 InputFile.write('TCGGACACGACTGAGCGACTAAGCACAGCACAG\n')
73 InputFile.write('>SUSINE2:classI:SINE:SINE2/tRNA\n')
74 InputFile.write('GGGAGTTCTCTGATGGCCTAGCGGGTTGAGGCTCCTGCGTTCTCACCGCTGTGGCTCTGG\n')
75 InputFile.write('TTGCTGCTGTGCGGCGTAGGTTCAATCCCTGGCCCAGGAATTCCCACATACTGCCTGTGT\n')
76 InputFile.write('GGCAAAAAAGAAAAAAAAAAAAAATACAAAAAAAAAAAAAACAAGAGAGAACCTGAAATA\n')
77 InputFile.write('AACGTTGCAACTCTCATTNAAAAAAAAAAA\n')
78 InputFile.write('>SINE1A_SS:classI:SINE:SINE2/tRNA\n')
79 InputFile.write('GGGAGTTCTCTTGTGGCACAGCAGGTTAAGGATCCAGCGTTGTCACTGCAGTGGCTTGGG\n')
80 InputFile.write('TCGCTGCTGTGGCACGGGTTCAATCCCTGGCCCAGGAACTTCCACATGCCACGGGCATGG\n')
81 InputFile.write('CCAAAAAAAAA\n')
82 InputFile.write('>SINE2-1_Pca:classI:SINE:SINE2/tRNA\n')
83 InputFile.write('GGGCAGTGGTGGTTCAGTGGTAGAATTCTTGCCTTCCATGCGGGAGACCCGGGTTCGATT\n')
84 InputFile.write('CCCGGCCAGTGCACCTCATGCGCAGCCACCACCCGTCTGTCAGTGGAGGCTTGCGTGTTG\n')
85 InputFile.write('CTGTGATGCTGAACAGGTTTCAGCGGAGCTTCCAGACTAAGACGGACTAGGAAGAAAGGC\n')
86 InputFile.write('CTGGCGATCTACTTCTGAAAATCAGCCAATGAAAACCCTGTGGATCACAGTGGTCTGATC\n')
87 InputFile.write('TGCAACTGATCATGGGGATGGCGCAGGACCGGGCAGCGTTTTGTTCTATTGTGCATGGGG\n')
88 InputFile.write('TCGCCATGAGTCGGGCCGACTCGATGGCAGCTAACAACAA\n')
89 InputFile.write('>SINE_FR2:classI:SINE:?\n')
90 InputFile.write('GGGCGGCACGGTGGTGTGGTGGTTAGCACTGTTGCCTCACAGCAAGAAGGCCCCGGGTTC\n')
91 InputFile.write('GATCCCCGGTTGGGACTGAGGCTGGGGACTTTCTGTGTGGAGTTTGCATGTTCTCCCTGT\n')
92 InputFile.write('GCCTGCGTGGGTTCTCTCCGGGTACTCCGGCTTCCTCCCACAGTCCAAAGACATGCATGA\n')
93 InputFile.write('TTGGGGATTAGGCTAATTGGAAACTCTAAAATTGCCCGTAGGTGTGAGTGTGAGAGAGAA\n')
94 InputFile.write('TGGTTGTTTGTCTATATGTGTTAGCCCTGCGATTGACTGGCGTCCAGTCCAGGGTGTACC\n')
95 InputFile.write('CTGCCTCCGCCCATTGTGCTGGGATAGGCTCCAGTCCCCCCGCGACCCTCAGTGGAGGAA\n')
96 InputFile.write('CAAGCGGTAGAAAGTGAGTGAGTGAGTGA\n')
97 InputFile.write('>SINEC1B2_CF:classI:SINE:?\n')
98 InputFile.write('GGGCAGCCTGGGTGGCTCAGCGGTTTAGCGCCTGCCTTTGGCCCAGGGCGTGATCCTGGA\n')
99 InputFile.write('GACCCGGGATCGAGTCCCACATCGGGCTCCCTGCATGGAGCCTGCTTCTCCCTCTGCCTG\n')
100 InputFile.write('TGTCTCTGCCTCTCTCTCTCTCTGTGTCTCTCATGAATAAATAA\n')
101 InputFile.write('>ALPINE1:classI:SINE:SINE2/tRNA\n')
102 InputFile.write('GGGGAGGGTATAGCTCAGTGGTAGAGCGCATGCTTAGCATGCACGAGGTCCTGGGTTCAA\n')
103 InputFile.write('TCCCCAGTACCTCCATTAAAAATAAATAAATAAATAAACCTAATTACCTCCCCCACCAAA\n')
104 InputFile.write('AAAAAAA\n')
105 InputFile.close()
106
107 InputFile = open(self._refFastaFileName, 'w')
108 InputFile.write('>SINE_FR2:classI:SINE:?\n')
109 InputFile.write('GGGCGGCACGGTGGTGTGGTGGTTAGCACTGTTGCCTCACAGCAAGAAGGCCCCGGGTTC\n')
110 InputFile.write('GATCCCCGGTTGGGACTGAGGCTGGGGACTTTCTGTGTGGAGTTTGCATGTTCTCCCTGT\n')
111 InputFile.write('GCCTGCGTGGGTTCTCTCCGGGTACTCCGGCTTCCTCCCACAGTCCAAAGACATGCATGA\n')
112 InputFile.write('TTGGGGATTAGGCTAATTGGAAACTCTAAAATTGCCCGTAGGTGTGAGTGTGAGAGAGAA\n')
113 InputFile.write('TGGTTGTTTGTCTATATGTGTTAGCCCTGCGATTGACTGGCGTCCAGTCCAGGGTGTACC\n')
114 InputFile.write('CTGCCTCCGCCCATTGTGCTGGGATAGGCTCCAGTCCCCCCG\n')
115 InputFile.write('CAAGCGGTAGAAAGTGAGTGAGTGAGTGA\n')
116 InputFile.write('>SINEC1B2_CF:classI:SINE:?\n')
117 InputFile.write('GGGCAGCCTGGGTGGCTCAGCGGTTTAGCGCCTGCCTTTGGCCCAGGGCGTGATCCTGGA\n')
118 InputFile.write('GACCCGGGATCGAGTCCCACATCGGGCTCCCTGCATGGAGCCTGCTTCTCCCTCTGCCTG\n')
119 InputFile.write('TGTCTCTGCCTCTCTCTCTCTCTGTGTCTCTCATGAATAAA\n')
120 InputFile.close()
121
122 def _writeExpDeltaFile(self):
123 with open(self._expDeltaFileName, 'w') as f:
124 f.write("%s %s\n" %(os.path.abspath(self._queryFastaFileName), os.path.abspath(self._refFastaFileName)))
125 f.write('PROMER\n')
126 f.write('>SINE_FR2:classI:SINE:? SINE_FR2:classI:SINE:? 389 371\n')
127 f.write('1 387 1 369 6 6 10\n')
128 f.write('115\n')
129 f.write('1\n')
130 f.write('1\n')
131 f.write('1\n')
132 f.write('1\n')
133 f.write('1\n')
134 f.write('0\n')
135 f.write('2 388 2 370 6 6 8\n')
136 f.write('115\n')
137 f.write('1\n')
138 f.write('1\n')
139 f.write('1\n')
140 f.write('1\n')
141 f.write('1\n')
142 f.write('0\n')
143 f.write('3 389 3 371 6 6 16\n')
144 f.write('115\n')
145 f.write('1\n')
146 f.write('1\n')
147 f.write('1\n')
148 f.write('1\n')
149 f.write('1\n')
150 f.write('0\n')
151 f.write('388 2 370 2 6 6 6\n')
152 f.write('10\n')
153 f.write('1\n')
154 f.write('1\n')
155 f.write('1\n')
156 f.write('1\n')
157 f.write('1\n')
158 f.write('0\n')
159 f.write('387 1 369 1 6 6 5\n')
160 f.write('10\n')
161 f.write('1\n')
162 f.write('1\n')
163 f.write('1\n')
164 f.write('1\n')
165 f.write('1\n')
166 f.write('0\n')
167 f.write('389 3 371 3 6 6 4\n')
168 f.write('11\n')
169 f.write('1\n')
170 f.write('1\n')
171 f.write('1\n')
172 f.write('1\n')
173 f.write('1\n')
174 f.write('0\n')
175 f.write('>SINEC1B2_CF:classI:SINE:? SINEC1B2_CF:classI:SINE:? 164 161\n')
176 f.write('1 159 1 159 0 0 2\n')
177 f.write('0\n')
178 f.write('3 161 3 161 0 0 2\n')
179 f.write('0\n')
180 f.write('161 3 161 3 0 0 0\n')
181 f.write('0\n')
182 f.write('160 2 160 2 0 0 2\n')
183 f.write('0\n')
184 f.write('159 1 159 1 0 0 4\n')
185 f.write('0\n')
186 f.write('2 160 2 160 0 0 4\n')
187 f.write('0\n')
188
189
190
191
192 def _writeExpGenCoordsFile(self):
193 with open(self._expCoordFileName, 'w') as f:
194 f.write("%s %s\n" %(os.path.abspath(self._queryFastaFileName), os.path.abspath(self._refFastaFileName)))
195 f.write('PROMER\n\n')
196 f.write(' [S1] [E1] | [S2] [E2] | [LEN 1] [LEN 2] | [% IDY] [% SIM] [% STP] | [FRM] [TAGS]\n')
197 f.write('==============================================================================================================\n')
198 f.write(' 1 159 | 1 159 | 159 159 | 100.00 100.00 1.89 | 1 1 SINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
199 f.write(' 2 160 | 2 160 | 159 159 | 100.00 100.00 3.77 | 2 2 SINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
200 f.write(' 3 161 | 3 161 | 159 159 | 100.00 100.00 1.89 | 3 3 SINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
201 f.write(' 159 1 | 159 1 | 159 159 | 100.00 100.00 3.77 | -3 -3 SINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
202 f.write(' 160 2 | 160 2 | 159 159 | 100.00 100.00 1.89 | -2 -2 SINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
203 f.write(' 161 3 | 161 3 | 159 159 | 100.00 100.00 0.00 | -1 -1 SINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
204 f.write(' 1 387 | 1 369 | 387 369 | 95.35 95.35 3.88 | 1 1 SINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
205 f.write(' 2 388 | 2 370 | 387 369 | 95.35 95.35 3.10 | 2 2 SINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
206 f.write(' 3 389 | 3 371 | 387 369 | 95.35 95.35 6.20 | 3 3 SINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
207 f.write(' 387 1 | 369 1 | 387 369 | 95.35 95.35 1.94 | -3 -3 SINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
208 f.write(' 388 2 | 370 2 | 387 369 | 95.35 95.35 2.33 | -2 -2 SINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
209 f.write(' 389 3 | 371 3 | 387 369 | 95.35 95.35 1.55 | -1 -1 SINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
210
211
212 def _writeExpShowCoordsFile(self):
213 with open(self._expCoordFileName, 'w') as f:
214 f.write("%s %s\n" %(os.path.abspath(self._queryFastaFileName), os.path.abspath(self._refFastaFileName)))
215 f.write('PROMER\n\n')
216 f.write('[S1]\t[E1]\t[S2]\t[E2]\t[LEN 1]\t[LEN 2]\t[% IDY]\t[% SIM]\t[% STP]\t[LEN R]\t[LEN Q]\t[COV R]\t[COV Q]\t[FRM]\t[TAGS]\n')
217 f.write('1\t159\t1\t159\t159\t159\t100.00\t100.00\t1.89\t164\t161\t96.95\t98.76\t1\t1\tSINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
218 f.write('2\t160\t2\t160\t159\t159\t100.00\t100.00\t3.77\t164\t161\t96.95\t98.76\t2\t2\tSINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
219 f.write('3\t161\t3\t161\t159\t159\t100.00\t100.00\t1.89\t164\t161\t96.95\t98.76\t3\t3\tSINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
220 f.write('159\t1\t159\t1\t159\t159\t100.00\t100.00\t3.77\t164\t161\t96.95\t98.76\t-3\t-3\tSINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
221 f.write('160\t2\t160\t2\t159\t159\t100.00\t100.00\t1.89\t164\t161\t96.95\t98.76\t-2\t-2\tSINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
222 f.write('161\t3\t161\t3\t159\t159\t100.00\t100.00\t0.00\t164\t161\t96.95\t98.76\t-1\t-1\tSINEC1B2_CF:classI:SINE:?\tSINEC1B2_CF:classI:SINE:?\n')
223 f.write('1\t387\t1\t369\t387\t369\t95.35\t95.35\t3.88\t389\t371\t99.49\t99.46\t1\t1\tSINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
224 f.write('2\t388\t2\t370\t387\t369\t95.35\t95.35\t3.10\t389\t371\t99.49\t99.46\t2\t2\tSINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
225 f.write('3\t389\t3\t371\t387\t369\t95.35\t95.35\t6.20\t389\t371\t99.49\t99.46\t3\t3\tSINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
226 f.write('387\t1\t369\t1\t387\t369\t95.35\t95.35\t1.94\t389\t371\t99.49\t99.46\t-3\t-3\tSINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
227 f.write('388\t2\t370\t2\t387\t369\t95.35\t95.35\t2.33\t389\t371\t99.49\t99.46\t-2\t-2\tSINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
228 f.write('389\t3\t371\t3\t387\t369\t95.35\t95.35\t1.55\t389\t371\t99.49\t99.46\t-1\t-1\tSINE_FR2:classI:SINE:?\tSINE_FR2:classI:SINE:?\n')
229
230 if __name__ == "__main__":
231 unittest.main()