Mercurial > repos > yufei-luo > s_mart
comparison commons/pyRepetUnit/blastnForClassifierStep1/tests/Test_RepbaseBLRnForClassifierStep1.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 import shutil | |
4 import ConfigParser | |
5 import sys | |
6 from commons.pyRepetUnit.blastnForClassifierStep1.RepbaseBLRnForClassifierStep1 import RepbaseBLRnForClassifierStep1 | |
7 from commons.core.utils.FileUtils import FileUtils | |
8 from commons.core.sql.DbFactory import DbFactory | |
9 from commons.core.sql.TablePathAdaptator import TablePathAdaptator | |
10 from commons.core.coord.Path import Path | |
11 import pyRepet.launcher.programLauncher | |
12 | |
13 if not os.environ.has_key( "REPET_PATH" ): | |
14 print "*** Error: no environment variable REPET_PATH" | |
15 sys.exit(1) | |
16 sys.path.append( os.environ["REPET_PATH"] ) | |
17 | |
18 NB_EXPECTED_LINES_IN_PATH_FILE = 10 | |
19 CURRENT_DIR = os.getcwd() | |
20 | |
21 | |
22 class Test_RepbaseBLRnForClassifierStep1( unittest.TestCase ): | |
23 | |
24 | |
25 def setUp( self ): | |
26 os.chdir(CURRENT_DIR) | |
27 self._inFileName = "dummyFileName" | |
28 self._launch_1 = "log = os.system( \"" | |
29 self._launch_2 = "\" )\n" | |
30 self._launch_2 += "if log != 0:\n" | |
31 self._launch_2 += "\tsys.exit(1)\n" | |
32 self._cDir = "/home/user/dummy_cdir" | |
33 self._tmpDir = "/home/user/dummy_tmpDir" | |
34 self._configFileName = "configFile" | |
35 self._repbaseName = "dummyRepbase_nt.fa" | |
36 f = open(self._configFileName, "w") | |
37 f.write("[repet_env]\n") | |
38 f.write("repet_host: %s\n" % os.environ["REPET_HOST"]) | |
39 f.write("repet_user: %s\n" % os.environ["REPET_USER"]) | |
40 f.write("repet_pw: %s\n" % os.environ["REPET_PW"]) | |
41 f.write("repet_db: %s\n" % os.environ["REPET_DB"]) | |
42 f.write("repet_port: %s\n" % os.environ["REPET_PORT"]) | |
43 f.write("[detect_features]\n") | |
44 f.write("TE_BLRn: yes\n") | |
45 f.write("TE_nucl_bank: %s\n" % self._repbaseName) | |
46 f.write("wublast: yes\n") | |
47 f.close() | |
48 self._verbose = 0 | |
49 self._config = ConfigParser.ConfigParser() | |
50 self._config.readfp( open(self._configFileName) ) | |
51 self._pL = pyRepet.launcher.programLauncher.programLauncher() | |
52 self._project = "dummyProject" | |
53 self._repbaseBLRn = RepbaseBLRnForClassifierStep1(self._inFileName, self._launch_1, self._launch_2, self._cDir, self._tmpDir, self._configFileName, self._verbose, self._pL, self._project) | |
54 self._expFileName = "expFile" | |
55 self._bank = self._config.get("detect_features","TE_nucl_bank") | |
56 self._db = DbFactory.createInstance() | |
57 | |
58 | |
59 def tearDown( self ): | |
60 self._db.dropTable("%s_TE_BLRn_path" % (self._project)) | |
61 os.chdir(CURRENT_DIR) | |
62 self._repbaseBLRn = None | |
63 os.remove(self._configFileName) | |
64 if os.path.isfile("%s_BLRn_%s.align.clean_match.path" % (self._project, self._bank)): | |
65 os.remove("%s_BLRn_%s.align.clean_match.path" % (self._project, self._bank)) | |
66 if os.path.isfile("%s_BLRn_%s.align.clean_match.path.tmp" % (self._project, self._bank)): | |
67 os.remove("%s_BLRn_%s.align.clean_match.path.tmp" % (self._project, self._bank)) | |
68 if os.path.isfile("batch_1.fa_BLRn_%s.*" % (self._bank)): | |
69 os.remove("batch_1.fa_BLRn_%s.*" % (self._bank)) | |
70 if os.path.isfile("batch_2.fa_BLRn_%s.*" % (self._bank)): | |
71 os.remove("batch_2.fa_BLRn_%s.*" % (self._bank)) | |
72 if os.path.isfile("batch_1.fa_BLRn_%s.align.clean_match.path" % (self._bank)): | |
73 os.remove("batch_1.fa_BLRn_%s.align.clean_match.path" % (self._bank)) | |
74 if os.path.isfile("batch_2.fa_BLRn_%s.align.clean_match.path" % (self._bank)): | |
75 os.remove("batch_2.fa_BLRn_%s.align.clean_match.path" % (self._bank)) | |
76 if os.path.isfile(self._repbaseName): | |
77 os.remove(self._repbaseName) | |
78 os.remove(self._repbaseName + "_cut") | |
79 os.remove(self._repbaseName + "_cut.xnd") | |
80 os.remove(self._repbaseName + "_cut.xns") | |
81 os.remove(self._repbaseName + "_cut.xnt") | |
82 os.remove(self._repbaseName + ".Nstretch.map") | |
83 os.remove("last_time_stamp.log") | |
84 if os.path.isdir( "TE_BLRn" ): | |
85 os.chdir( "TE_BLRn" ) | |
86 os.chdir(CURRENT_DIR) | |
87 shutil.rmtree("TE_BLRn") | |
88 if os.path.isfile(self._expFileName): | |
89 os.remove(self._expFileName) | |
90 | |
91 | |
92 def test_formatRepbase_ntIfNecessaryWithoutLog( self ): | |
93 f = open(self._repbaseName, "w") | |
94 f.write(">seq1\n") | |
95 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTGGCGTATGCGTGCAT\n") | |
96 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTTTTTTTGCGCGTGGCGTATGCGTGCAT\n") | |
97 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTAAAGTATGCGTGCAT\n") | |
98 f.write(">seq2\n") | |
99 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTGGCGTATGCGTGCAT\n") | |
100 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTTTTTTTGCGCGTGGCGTATGCGTGCAT\n") | |
101 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTAAAGTATGCGTGCAT\n") | |
102 f.close() | |
103 f = open(self._expFileName, "w") | |
104 f.write(">1 seq1 {Cut} 1..180\n") | |
105 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTGGCGTATGCGTGCAT\n") | |
106 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTTTTTTTGCGCGTGGCGTATGCGTGCAT\n") | |
107 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTAAAGTATGCGTGCAT\n") | |
108 f.write(">2 seq2 {Cut} 1..180\n") | |
109 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTGGCGTATGCGTGCAT\n") | |
110 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTTTTTTTGCGCGTGGCGTATGCGTGCAT\n") | |
111 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTAAAGTATGCGTGCAT\n") | |
112 f.close() | |
113 self._repbaseBLRn.formatRepbase_ntIfNecessary() | |
114 obsFileName = self._repbaseName + "_cut" | |
115 self.assertTrue(FileUtils.are2FilesIdentical(self._expFileName, obsFileName)) | |
116 | |
117 | |
118 def test_formatRepbase_ntIfNecessary_withLogFile( self ): | |
119 f = open(self._repbaseName, "w") | |
120 f.write(">seq1\n") | |
121 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTGGCGTATGCGTGCAT\n") | |
122 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTTTTTTTGCGCGTGGCGTATGCGTGCAT\n") | |
123 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTAAAGTATGCGTGCAT\n") | |
124 f.write(">seq2\n") | |
125 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTGGCGTATGCGTGCAT\n") | |
126 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTTTTTTTGCGCGTGGCGTATGCGTGCAT\n") | |
127 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTAAAGTATGCGTGCAT\n") | |
128 f.close() | |
129 f = open(self._expFileName, "w") | |
130 f.write(">1 seq1 {Cut} 1..180\n") | |
131 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTGGCGTATGCGTGCAT\n") | |
132 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTTTTTTTGCGCGTGGCGTATGCGTGCAT\n") | |
133 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTAAAGTATGCGTGCAT\n") | |
134 f.write(">2 seq2 {Cut} 1..180\n") | |
135 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTGGCGTATGCGTGCAT\n") | |
136 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTTTTTTTGCGCGTGGCGTATGCGTGCAT\n") | |
137 f.write("ATGCGTGCGTAAATGCGTAATGCGTAAATGCGTAAATTTGCGCGTAAAGTATGCGTGCAT\n") | |
138 f.close() | |
139 repbaseBLRnWithLog = RepbaseBLRnForClassifierStep1(self._inFileName, self._launch_1, self._launch_2, self._cDir, self._tmpDir, self._configFileName, self._verbose, self._pL, self._project) | |
140 repbaseBLRnWithLog.formatRepbase_ntIfNecessary() | |
141 obsFileName = self._repbaseName + "_cut" | |
142 self.assertTrue(FileUtils.are2FilesIdentical(self._expFileName, obsFileName)) | |
143 | |
144 | |
145 def test_createCmdToLaunch( self ): | |
146 bank = self._config.get("detect_features","TE_nucl_bank") | |
147 obsCmd = self._repbaseBLRn.createCmdToLaunch() | |
148 expCmd = self._launch_1 + os.environ["REPET_PATH"] + "/bin/blaster" | |
149 expCmd += " -q %s" % ( self._inFileName ) | |
150 expCmd += " -s %s/%s" % ( self._cDir, bank ) | |
151 expCmd += " -B %s_BLRn_%s" % ( self._inFileName, bank ) | |
152 expCmd += " -n blastn" | |
153 if self._config.get("detect_features","wublast") == "yes": | |
154 expCmd += " -W" | |
155 expCmd += " -r" | |
156 expCmd += " -v 1" | |
157 expCmd += self._launch_2 | |
158 expCmd += "if not os.path.exists( \"%s/%s_BLRn_%s.param\" ):\n" % ( self._cDir, self._inFileName, bank ) | |
159 expCmd += "\tos.system( \"mv %s_BLRn_%s.param %s\" )\n" % ( self._inFileName, bank, self._cDir ) | |
160 expCmd += "if os.path.exists( \"%s_cut\" ):\n" % ( self._inFileName ) | |
161 expCmd += "\tos.system( \"rm -f %s_cut*\" )\n" % ( self._inFileName ) | |
162 expCmd += "if os.path.exists( \"%s.Nstretch.map\" ):\n" % ( self._inFileName ) | |
163 expCmd += "\tos.remove( \"%s.Nstretch.map\" )\n" % ( self._inFileName ) | |
164 expCmd += "if os.path.exists( \"%s_BLRn_%s.raw\" ):\n" % ( self._inFileName, bank ) | |
165 expCmd += "\tos.remove( \"%s_BLRn_%s.raw\" )\n" % ( self._inFileName, bank ) | |
166 expCmd += "if os.path.exists( \"%s_BLRn_%s.seq_treated\" ):\n" % ( self._inFileName, bank ) | |
167 expCmd += "\tos.remove( \"%s_BLRn_%s.seq_treated\" )\n" % ( self._inFileName, bank ) | |
168 expCmd += self._launch_1 | |
169 expCmd += os.environ["REPET_PATH"] + "/bin/matcher" | |
170 expCmd += " -m %s_BLRn_%s.align" % ( self._inFileName, bank ) | |
171 expCmd += " -q %s" % ( self._inFileName ) | |
172 expCmd += " -s %s/%s" % ( self._cDir, bank ) | |
173 expCmd += " -j" | |
174 expCmd += " -v 1" | |
175 expCmd += self._launch_2 | |
176 expCmd += "if not os.path.exists( \"%s/%s_BLRn_%s.align.clean_match.path\" ):\n" % ( self._cDir, self._inFileName, bank ) | |
177 expCmd += "\tos.system( \"mv %s_BLRn_%s.align.clean_match.path %s\" )\n" % ( self._inFileName, bank, self._cDir ) | |
178 expCmd += "if not os.path.exists( \"%s/%s_BLRn_%s.align.clean_match.param\" ):\n" % ( self._cDir, self._inFileName, bank ) | |
179 expCmd += "\tos.system( \"mv %s_BLRn_%s.align.clean_match.param %s\" )\n" % ( self._inFileName, bank, self._cDir ) | |
180 expCmd += "if os.path.exists( \"%s_BLRn_%s.align\" ):\n" % ( self._inFileName, bank ) | |
181 expCmd += "\tos.remove( \"%s_BLRn_%s.align\" )\n" % ( self._inFileName, bank ) | |
182 expCmd += "if os.path.exists( \"%s_BLRn_%s.align.clean_match.fa\" ):\n" % ( self._inFileName, bank ) | |
183 expCmd += "\tos.remove( \"%s_BLRn_%s.align.clean_match.fa\" )\n" % ( self._inFileName, bank ) | |
184 expCmd += "if os.path.exists( \"%s_BLRn_%s.align.clean_match.map\" ):\n" % ( self._inFileName, bank ) | |
185 expCmd += "\tos.remove( \"%s_BLRn_%s.align.clean_match.map\" )\n" % ( self._inFileName, bank ) | |
186 expCmd += "if os.path.exists( \"%s_BLRn_%s.align.clean_match.tab\" ):\n" % ( self._inFileName, bank ) | |
187 expCmd += "\tos.remove( \"%s_BLRn_%s.align.clean_match.tab\" )\n" % ( self._inFileName, bank ) | |
188 if self._tmpDir != self._cDir: | |
189 expCmd += "if os.path.exists( \"%s\" ):\n" % ( bank ) | |
190 expCmd += "\tos.remove( \"%s\" )\n" % ( bank ) | |
191 self.assertEquals( expCmd, obsCmd ) | |
192 | |
193 | |
194 def test_concatPathFile( self ): | |
195 os.chdir(CURRENT_DIR) | |
196 if not FileUtils.isRessourceExists("TE_BLRn"): | |
197 os.mkdir( "TE_BLRn" ) | |
198 self._createPathFiles(self._bank) | |
199 os.chdir( "TE_BLRn" ) | |
200 f = open(self._expFileName, "w") | |
201 f.write("1\tQueryName1\t2\t250\tsubjectName1\t5\t255\t4.1e-39\t132\t88.2\n") | |
202 f.write("2\tQueryName1\t255\t550\tsubjectName2\t5\t255\t0.0002\t32\t78.2\n") | |
203 f.write("3\tQueryName2\t1\t150\tsubjectName1\t250\t400\t5.1e-59\t132\t98\n") | |
204 f.write("4\tQueryName3\t2\t250\tsubjectName3\t5\t255\t4.1e-39\t132\t88.2\n") | |
205 f.write("5\tQueryName1\t300\t450\tsubjectName1\t300\t450\t4.1e-39\t132\t80.2\n") | |
206 f.write("1\tQueryName4\t2\t250\tsubjectName1\t5\t255\t4.1e-39\t132\t88.2\n") | |
207 f.write("2\tQueryName4\t255\t550\tsubjectName2\t5\t255\t0.0002\t32\t78.2\n") | |
208 f.write("3\tQueryName5\t1\t150\tsubjectName1\t250\t400\t5.1e-59\t132\t98\n") | |
209 f.write("4\tQueryName6\t2\t250\tsubjectName3\t5\t255\t4.1e-39\t132\t88.2\n") | |
210 f.write("5\tQueryName7\t300\t450\tsubjectName1\t300\t450\t4.1e-39\t132\t80.2\n") | |
211 f.close() | |
212 FileUtils.sortFileContent(self._expFileName) | |
213 obsFileName = "%s_BLRn_%s.align.clean_match.path.tmp" % (self._project, self._bank) | |
214 self._repbaseBLRn._concatPathFile(self._bank) | |
215 FileUtils.sortFileContent(obsFileName) | |
216 self.assertTrue(FileUtils.are2FilesIdentical(self._expFileName, obsFileName)) | |
217 | |
218 | |
219 def test_adaptIDInPathFile( self ): | |
220 f = open("%s_BLRn_%s.align.clean_match.path.tmp" % (self._project, self._bank), "w") | |
221 f.write("1\tQueryName1\t2\t250\tsubjectName1\t5\t255\t4.1e-39\t132\t88.2\n") | |
222 f.write("2\tQueryName1\t255\t550\tsubjectName2\t5\t255\t0.0002\t32\t78.2\n") | |
223 f.write("3\tQueryName2\t1\t150\tsubjectName1\t250\t400\t5.1e-59\t132\t98\n") | |
224 f.write("4\tQueryName3\t2\t250\tsubjectName3\t5\t255\t4.1e-39\t132\t88.2\n") | |
225 f.write("5\tQueryName1\t300\t450\tsubjectName1\t300\t450\t4.1e-39\t132\t80.2\n") | |
226 f.write("1\tQueryName4\t2\t250\tsubjectName1\t5\t255\t4.1e-39\t132\t88.2\n") | |
227 f.write("2\tQueryName4\t255\t550\tsubjectName2\t5\t255\t0.0002\t32\t78.2\n") | |
228 f.write("3\tQueryName5\t1\t150\tsubjectName1\t250\t400\t5.1e-59\t132\t98\n") | |
229 f.write("4\tQueryName6\t2\t250\tsubjectName3\t5\t255\t4.1e-39\t132\t88.2\n") | |
230 f.write("5\tQueryName7\t300\t450\tsubjectName1\t300\t450\t4.1e-39\t132\t80.2\n") | |
231 f.close() | |
232 self._repbaseBLRn._adaptIDInPathFile(self._bank) | |
233 f = open(self._expFileName, "w") | |
234 f.write("1\tQueryName1\t2\t250\tsubjectName1\t5\t255\t4.1e-39\t132\t88.2\n") | |
235 f.write("2\tQueryName1\t255\t550\tsubjectName2\t5\t255\t0.0002\t32\t78.2\n") | |
236 f.write("3\tQueryName2\t1\t150\tsubjectName1\t250\t400\t5.1e-59\t132\t98\n") | |
237 f.write("4\tQueryName3\t2\t250\tsubjectName3\t5\t255\t4.1e-39\t132\t88.2\n") | |
238 f.write("5\tQueryName1\t300\t450\tsubjectName1\t300\t450\t4.1e-39\t132\t80.2\n") | |
239 f.write("6\tQueryName4\t2\t250\tsubjectName1\t5\t255\t4.1e-39\t132\t88.2\n") | |
240 f.write("7\tQueryName4\t255\t550\tsubjectName2\t5\t255\t0.0002\t32\t78.2\n") | |
241 f.write("8\tQueryName5\t1\t150\tsubjectName1\t250\t400\t5.1e-59\t132\t98\n") | |
242 f.write("9\tQueryName6\t2\t250\tsubjectName3\t5\t255\t4.1e-39\t132\t88.2\n") | |
243 f.write("10\tQueryName7\t300\t450\tsubjectName1\t300\t450\t4.1e-39\t132\t80.2\n") | |
244 f.close() | |
245 obsFileName = "%s_BLRn_%s.align.clean_match.path" % (self._project, self._bank) | |
246 self.assertTrue(FileUtils.are2FilesIdentical(self._expFileName, obsFileName)) | |
247 | |
248 | |
249 def test_loadPathFileInTable( self ): | |
250 os.chdir(CURRENT_DIR) | |
251 if not FileUtils.isRessourceExists("TE_BLRn"): | |
252 os.mkdir( "TE_BLRn" ) | |
253 self._createPathFiles(self._bank) | |
254 os.chdir( "TE_BLRn" ) | |
255 f = open("%s_BLRn_%s.align.clean_match.path" % (self._project, self._bank), "w") | |
256 f.write("1\tQueryName1\t2\t250\tsubjectName1\t5\t255\t4.1e-39\t132\t88.2\n") | |
257 f.write("2\tQueryName1\t255\t550\tsubjectName2\t5\t255\t0.0002\t32\t78.2\n") | |
258 f.write("3\tQueryName2\t1\t150\tsubjectName1\t250\t400\t5.1e-59\t132\t98\n") | |
259 f.write("4\tQueryName3\t2\t250\tsubjectName3\t5\t255\t4.1e-39\t132\t88.2\n") | |
260 f.write("5\tQueryName1\t300\t450\tsubjectName1\t300\t450\t4.1e-39\t132\t80.2\n") | |
261 f.write("6\tQueryName4\t2\t250\tsubjectName1\t5\t255\t4.1e-39\t132\t88.2\n") | |
262 f.write("7\tQueryName4\t255\t550\tsubjectName2\t5\t255\t0.0002\t32\t78.2\n") | |
263 f.write("8\tQueryName5\t1\t150\tsubjectName1\t250\t400\t5.1e-59\t132\t98\n") | |
264 f.write("9\tQueryName6\t2\t250\tsubjectName3\t5\t255\t4.1e-39\t132\t88.2\n") | |
265 f.write("10\tQueryName7\t300\t450\tsubjectName1\t300\t450\t4.1e-39\t132\t80.2\n") | |
266 f.close() | |
267 self._repbaseBLRn._loadPathFileInTable(self._bank) | |
268 resultFromFilePathList = self._readPathResultsFromFileAndFillList() | |
269 resultFromTablePathList = self._readPathResultsFromTableAndFillList() | |
270 self.assertEquals(resultFromFilePathList, resultFromTablePathList) | |
271 | |
272 | |
273 def test_findAndRemoveUselessFiles( self ): | |
274 self._createFile("%s_BLRn_%s.align.clean_match.path.tmp" % (self._project, self._bank)) | |
275 self._createFile("batch_1.fa_BLRn_%s.*" % (self._bank)) | |
276 self._createFile("batch_2.fa_BLRn_%s.*" % (self._bank)) | |
277 self._repbaseBLRn._findAndRemoveUselessFiles(self._bank) | |
278 self.assertFalse(FileUtils.isRessourceExists("%s_BLRn_%s.align.clean_match.path.tmp" % (self._project, self._bank))) | |
279 self.assertFalse(FileUtils.isRessourceExists("batch_1.fa_BLRn_%s.*" % (self._bank))) | |
280 self.assertFalse(FileUtils.isRessourceExists("batch_2.fa_BLRn_%s.*" % (self._bank))) | |
281 | |
282 | |
283 def test_collectRepbaseBLRn( self ): | |
284 os.chdir(CURRENT_DIR) | |
285 if not FileUtils.isRessourceExists("TE_BLRn"): | |
286 os.mkdir( "TE_BLRn" ) | |
287 self._createPathFiles(self._bank) | |
288 os.chdir( "TE_BLRn" ) | |
289 self._repbaseBLRn.collectRepbaseBLRn() | |
290 self.assertTrue(FileUtils.isRessourceExists("%s_BLRn_%s.align.clean_match.path" % ( self._project, self._bank ))) | |
291 self.assertEquals(NB_EXPECTED_LINES_IN_PATH_FILE, FileUtils.getNbLinesInSingleFile("%s_BLRn_%s.align.clean_match.path" % ( self._project, self._bank ))) | |
292 self.assertTrue(self._db.doesTableExist("%s_TE_BLRn_path" % (self._project))) | |
293 self._db.execute('select * from %s_TE_BLRn_path' % (self._project)) | |
294 self.assertEquals(NB_EXPECTED_LINES_IN_PATH_FILE, len(self._db.fetchall())) | |
295 self._db.dropTable("%s_TE_BLRn_path" % (self._project)) | |
296 | |
297 | |
298 def _createPathFiles( self, bankFull ): | |
299 bank = os.path.split(bankFull)[1] | |
300 fileName = "batch_1.fa_BLRn_" + bank + ".align.clean_match.path" | |
301 f = open(fileName, "w") | |
302 f.write("1\tQueryName1\t2\t250\tsubjectName1\t5\t255\t4.1e-39\t132\t88.2\n") | |
303 f.write("2\tQueryName1\t255\t550\tsubjectName2\t5\t255\t0.0002\t32\t78.2\n") | |
304 f.write("3\tQueryName2\t1\t150\tsubjectName1\t250\t400\t5.1e-59\t132\t98\n") | |
305 f.write("4\tQueryName3\t2\t250\tsubjectName3\t5\t255\t4.1e-39\t132\t88.2\n") | |
306 f.write("5\tQueryName1\t300\t450\tsubjectName1\t300\t450\t4.1e-39\t132\t80.2\n") | |
307 f.close() | |
308 fileName = "batch_2.fa_BLRn_" + bank + ".align.clean_match.path" | |
309 f = open(fileName, "w") | |
310 f.write("1\tQueryName4\t2\t250\tsubjectName1\t5\t255\t4.1e-39\t132\t88.2\n") | |
311 f.write("2\tQueryName4\t255\t550\tsubjectName2\t5\t255\t0.0002\t32\t78.2\n") | |
312 f.write("3\tQueryName5\t1\t150\tsubjectName1\t250\t400\t5.1e-59\t132\t98\n") | |
313 f.write("4\tQueryName6\t2\t250\tsubjectName3\t5\t255\t4.1e-39\t132\t88.2\n") | |
314 f.write("5\tQueryName7\t300\t450\tsubjectName1\t300\t450\t4.1e-39\t132\t80.2\n") | |
315 f.close() | |
316 | |
317 | |
318 def _readPathResultsFromTableAndFillList( self ): | |
319 tablePathAdaptatorInstance = TablePathAdaptator (self._db, "%s_TE_BLRn_path" % (self._project)) | |
320 pathList = tablePathAdaptatorInstance.getListOfAllPaths() | |
321 return pathList | |
322 | |
323 | |
324 def _readPathResultsFromFileAndFillList( self ): | |
325 pathInstance = Path() | |
326 pathList = [] | |
327 f = open( "%s_BLRn_%s.align.clean_match.path" % (self._project, self._bank) , "r") | |
328 while pathInstance.read( f ): | |
329 pathList.append(pathInstance) | |
330 pathInstance = Path() | |
331 f.close() | |
332 return pathList | |
333 | |
334 | |
335 def _createFile( self, nameFile ): | |
336 f = open(nameFile, "w") | |
337 f.close() | |
338 | |
339 | |
340 test_suite = unittest.TestSuite() | |
341 test_suite.addTest( unittest.makeSuite( Test_RepbaseBLRnForClassifierStep1 ) ) | |
342 if __name__ == "__main__": | |
343 unittest.TextTestRunner(verbosity=2).run( test_suite ) |