annotate commons/tools/tests/Test_F_LaunchBlasterInParallel.py @ 18:94ab73e8a190

Uploaded
author m-zytnicki
date Mon, 29 Apr 2013 03:20:15 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
1 from commons.core.utils.FileUtils import FileUtils
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
2 import unittest
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
3 import os
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
4 import shutil
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
5 from commons.tools.LaunchBlasterInParallel import LaunchBlasterInParallel
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
7 class Test_F_LaunchBlasterInParallel(unittest.TestCase):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
8
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
9 CLUSTER_HOST = "compute-2-46.local"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
10
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
11 def setUp(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
12 self._inFilePath = "%s/Tools/DmelChr4_chunks.fa" % os.environ["REPET_DATA"]
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
13 self._configFileName = "TE.cfg"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
14 self._outputFileName = "out.align.not_over"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
15
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
16 def tearDown(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
17 try:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
18 os.remove(self._outputFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
19 os.remove(self._configFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
20 except:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
21 pass
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
22
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
23 def test_run_as_script_1bank_1file_withoutABA(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
24 self._outputFileName = "out.align"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
25 os.mkdir("tmp")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
26 os.chdir("tmp")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
27 queryFileName = "chunks.fa"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
28 with open(queryFileName, "w") as f:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
29 f.write(">chunk1\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
30 f.write("GAATTCGCGTCCGCTTACCCATGTGCCTGTGGATGCCGAACAGGAGGCGCCGTTGACGGC\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
31 f.write("GAATGACTTACTCAAGGGAGTAGCCAATCTGTCGGATACGCCCGGATTGGAGCTGCCCAT\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
32 os.chdir("..")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
33 subjectFileName = "genome.fa"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
34 with open(subjectFileName, "w") as f:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
35 f.write(">chunk1\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
36 f.write("GAATTCGCGTCCGCTTACCCATGTGCCTGTGGATGCCGAACAGGAGGCGCCGTTGACGGC\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
37 f.write("GAATGACTTACTCAAGGGAGTAGCCAATCTGTCGGATACGCCCGGATTGGAGCTGCCCAT\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
38 f.write(">chunk2\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
39 f.write("GAATTCGCGTCCGCTTACCCATGTGCCTGTGGATGCCGAACAGGAGGCGCCGTTGACGGC\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
40 f.write("GAATGACTTACTCAAGGGAGTAGCCAATCTGTCGGATACGCCCGGATTGGAGCTGCCCAT\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
41 expFileName = "expected"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
42 with open(expFileName, "w") as f:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
43 f.write("chunk1\t1\t120\tchunk1\t1\t120\t4e-68\t238\t100\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
44 f.write("chunk1\t1\t120\tchunk2\t1\t120\t4e-68\t238\t100\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
45 self._writeConfig(0.1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
46
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
47 cmd = "LaunchBlasterInParallel.py -q %s/tmp -s %s/%s -C %s -o %s" % (os.getcwd(), os.getcwd(), subjectFileName, self._configFileName, self._outputFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
48 os.system(cmd)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
49
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
50 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, self._outputFileName))
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
51 FileUtils.removeFilesByPattern("*.param")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
52 shutil.rmtree("tmp")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
53 os.remove(subjectFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
54 os.remove(expFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
55
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
56 def test_run_as_script_1bank_2_batches(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
57 os.mkdir("tmp")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
58 os.chdir("tmp")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
59 os.symlink("%s/Tools/batches/batch_1.fa" % os.environ["REPET_DATA"], "batch_1.fa")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
60 os.symlink("%s/Tools/batches/batch_2.fa" % os.environ["REPET_DATA"], "batch_2.fa")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
61 os.chdir("..")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
62
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
63 expFileName = "%s/Tools/DmelChr4.align.not_over" % os.environ["REPET_DATA"]
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
64 self._writeConfig()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
65
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
66 cmd = "LaunchBlasterInParallel.py -q %s/tmp -s %s -a -o %s -C %s" % (os.getcwd(), self._inFilePath, self._outputFileName, self._configFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
67 os.system(cmd)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
68
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
69 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, self._outputFileName))
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
70 FileUtils.removeFilesByPattern("*.param")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
71 shutil.rmtree("tmp")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
72
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
73 def test_run_1bank_1bank_2_batches(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
74 os.mkdir("tmp")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
75 os.chdir("tmp")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
76 os.symlink("%s/Tools/batches/batch_1.fa" % os.environ["REPET_DATA"], "batch_1.fa")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
77 os.symlink("%s/Tools/batches/batch_2.fa" % os.environ["REPET_DATA"], "batch_2.fa")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
78 os.chdir("..")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
79
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
80 expFileName = "%s/Tools/DmelChr4.align.not_over" % os.environ["REPET_DATA"]
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
81 self._writeConfig()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
82
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
83 iLaunchBlaster = LaunchBlasterInParallel(configFileName = self._configFileName, outFileName = self._outputFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
84 iLaunchBlaster.setDoAllByall(True)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
85 iLaunchBlaster.setVerbosity(4)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
86 iLaunchBlaster.setQueryDirectory("%s/tmp" % os.getcwd())
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
87 iLaunchBlaster.setSubjectFilePath(self._inFilePath)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
88 iLaunchBlaster.run()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
89
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
90 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, self._outputFileName))
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
91 FileUtils.removeFilesByPattern("*.param")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
92 shutil.rmtree("tmp")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
93
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
94 def _writeConfig(self, eValue = 1e-300):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
95 with open(self._configFileName, "w") as fh:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
96 fh.write("[jobs]\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
97 if os.getenv("HOSTNAME") == self.CLUSTER_HOST:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
98 fh.write("resources: test\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
99 else:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
100 fh.write("resources:\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
101 fh.write("tmpDir:\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
102 fh.write("copy: no\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
103 fh.write("clean: yes\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
104 fh.write("\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
105 fh.write("[prepare_data]\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
106 fh.write("chunk_length: 200000\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
107 fh.write("chunk_overlap: 10000\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
108 fh.write("\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
109 fh.write("[alignment]\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
110 fh.write("blast: ncbi\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
111 fh.write("Evalue: %s\n" % eValue)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
112 fh.write("length: 100\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
113 fh.write("identity: 90\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
114
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
115 if __name__ == "__main__":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
116 unittest.main()