annotate commons/pyRepetUnit/hmmer/profilsSearchInTEClassifier/tests/Test_ProfilesSearch.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
1 import unittest
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
2 import os
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
3 import ConfigParser
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
4 import shutil
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
5 from commons.pyRepetUnit.hmmer.profilsSearchInTEClassifier.ProfilesSearch import ProfilesSearch
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
7 class Test_ProfilesSearch(unittest.TestCase):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
8
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
9
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
10 def setUp(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
11 self._section = 'detect_features'
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
12 self._option1 = 'TE_HMM_profiles'
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
13 self._option2 = 'TE_HMMER_evalue'
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
14 self._config = ConfigParser.ConfigParser()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
15 self._config.add_section(self._section)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
16 self._config.set(self._section, self._option1, './datas/hmmbank_test')
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
17 self._config.set(self._section, self._option2, '10')
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
18 self._iProfilesSearch = ProfilesSearch()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
19 self._launch1 = 'First Command\n'
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
20 self._launch2 = '\nSecond Command\n'
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
21 self._cDir = '.'
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
22 self._profileBank = self._config.get(self._section, self._option1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
23 self._bank = os.path.basename(self._profileBank)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
24 shutil.copy(self._profileBank, self._cDir + "/" + self._bank)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
25
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
26 def tearDown(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
27 os.remove(self._cDir + "/" + self._bank)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
28
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
29 def test_prepareProfilesBank(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
30 hmmpressLaunched = False
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
31 self._iProfilesSearch.prepareProfilesBank( self._launch1, self._launch2, self._config, self._cDir )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
32 if ( os.path.exists(self._cDir + "/" + self._bank + ".h3m") \
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
33 and os.path.exists(self._cDir + "/" + self._bank + ".h3i") \
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
34 and os.path.exists(self._cDir + "/" + self._bank + ".h3f") \
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
35 and os.path.exists(self._cDir + "/" + self._bank + ".h3p")) :
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
36 hmmpressLaunched = True
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
37 os.remove(self._cDir + "/" + self._bank + ".h3m")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
38 os.remove(self._cDir + "/" + self._bank + ".h3i")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
39 os.remove(self._cDir + "/" + self._bank + ".h3f")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
40 os.remove(self._cDir + "/" + self._bank + ".h3p")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
41 self.assertTrue(hmmpressLaunched)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
42
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
43 def test_detectHmmProfiles(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
44 inputFileName = ' FileName'
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
45 dirTemp = 'Tempory directory'
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
46 eValueMax = self._config.get(self._section, self._option2)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
47
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
48 expCommand = self._launch1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
49 expCommand += os.environ["REPET_PATH"] + "/bin/translateAfastaFileInAllFrameAndReplaceStopsByX_script.py"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
50 expCommand += " -i %s" % ( inputFileName ) + " -o %s_translated" % ( inputFileName )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
51 expCommand += self._launch2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
52
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
53 expCommand += self._launch1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
54 expCommand += "hmmscan "
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
55 expCommand += " -o %s_tr.hmmScanOut" % ( inputFileName )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
56 expCommand += " --domtblout %s_tr.hmmScanOutTab" % ( inputFileName )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
57 expCommand += " --noali "
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
58 expCommand += "-E " + eValueMax
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
59 expCommand += " --cpu 1"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
60 expCommand += " " + self._cDir + "/" + self._bank + " " + "%s_translated" % ( inputFileName )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
61
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
62 expCommand += self._launch2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
63
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
64 expCommand += "if os.path.exists( \"%s_translated\" ):\n" % ( inputFileName )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
65 expCommand += "\tos.remove( \"%s_translated\" )\n" % ( inputFileName )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
66
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
67 expCommand += self._launch1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
68 expCommand += os.environ["REPET_PATH"] + "/bin/HmmOutput2alignAndTransformCoordInNtAndFilterScores_script.py"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
69 expCommand += " -i %s_tr.hmmScanOutTab" % ( inputFileName )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
70 expCommand += " -o %s_profiles_%s.align" % ( inputFileName, self._bank )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
71 expCommand += " -T %s" % ( inputFileName )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
72 expCommand += " -p hmmscan"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
73 expCommand += " -c"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
74 expCommand += self._launch2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
75
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
76 expCommand += self._launch1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
77 expCommand += os.environ["REPET_PATH"] + "/bin/matcher"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
78 expCommand += " -m %s_profiles_%s.align" % ( inputFileName, self._bank )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
79 expCommand += " -j"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
80 expCommand += " -E 10"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
81 expCommand += " -L 0"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
82 expCommand += " -v 1"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
83 expCommand += self._launch2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
84
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
85 expCommand += "if not os.path.exists( \"%s/%s_profiles_%s.align.clean_match.path\" ):\n" % ( self._cDir, inputFileName, self._bank )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
86 expCommand += "\tos.system( \"mv %s_profiles_%s.align.clean_match.path %s\" )\n" % ( inputFileName, self._bank, self._cDir )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
87 expCommand += "if not os.path.exists( \"%s/%s_profiles_%s.align.clean_match.param\" ):\n" % ( self._cDir, inputFileName, self._bank )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
88 expCommand += "\tos.system( \"mv %s_profiles_%s.align.clean_match.param %s\" )\n" % ( inputFileName, self._bank, self._cDir )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
89 expCommand += "if os.path.exists( \"%s_profiles_%s.align\" ):\n" % ( inputFileName, self._bank )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
90 expCommand += "\tos.remove( \"%s_profiles_%s.align\" )\n" % ( inputFileName, self._bank )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
91 expCommand += "if os.path.exists( \"%s_profiles_%s.align.clean_match.map\" ):\n" % ( inputFileName, self._bank )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
92 expCommand += "\tos.remove( \"%s_profiles_%s.align.clean_match.map\" )\n" % ( inputFileName, self._bank )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
93 expCommand += "if os.path.exists( \"%s_hmmScanOut\" ):\n" % ( inputFileName )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
94 expCommand += "\tos.remove( \"%s_hmmScanOut\" )\n" % ( inputFileName )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
95
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
96 if dirTemp != dir:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
97 expCommand += "if os.path.exists( \"%s\" ):\n" % ( self._bank )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
98 expCommand += "\tos.remove( \"%s\" )\n" % ( self._bank )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
99
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
100 obsCommand = self._iProfilesSearch.detectHmmProfiles( inputFileName, self._launch1, self._launch2, self._cDir, dirTemp, self._config )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
101 self.assertEquals(expCommand, obsCommand)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
102
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
103
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
104
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
105 if __name__ == "__main__":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
106 unittest.main()