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 ) |
