diff commons/tools/tests/Test_F_LaunchBlaster.py @ 18:94ab73e8a190

Uploaded
author m-zytnicki
date Mon, 29 Apr 2013 03:20:15 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commons/tools/tests/Test_F_LaunchBlaster.py	Mon Apr 29 03:20:15 2013 -0400
@@ -0,0 +1,101 @@
+from commons.core.utils.FileUtils import FileUtils
+import unittest
+import os
+import glob
+from commons.tools.LaunchBlaster import LaunchBlaster
+
+class Test_F_LaunchBlaster(unittest.TestCase):
+
+    def setUp(self):
+        self._inFileName = "DmelChr4.fa"
+        inFilePath = "%s/Tools/%s" % (os.environ["REPET_DATA"], self._inFileName)
+        try:
+            os.remove(self._inFileName)
+        except:
+            pass
+        os.symlink(inFilePath, self._inFileName)
+        self._iLaunchBlaster = LaunchBlaster(self._inFileName)
+        self._iLaunchBlaster.setDoAllByall(True)
+        self._iLaunchBlaster.setVerbosity(4)
+
+    def tearDown(self):
+        try:
+            FileUtils.removeFilesByPattern("%s*" % self._inFileName)
+            os.remove("formatdb.log")
+        except:
+            pass
+
+    def test_run_as_class_1_file(self):
+        expFileName = "%s/Tools/DmelChr4.align" % os.environ["REPET_DATA"]
+        obsFileName = "%s.align" % self._inFileName
+        
+        self._iLaunchBlaster.run()
+        
+        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName))
+        
+    def test_run_as_class_1_file_changed_params(self):
+        expFileName = "DmelChr4.align"
+        with open(expFileName, "w") as fh:
+            fh.write("dmel_chr4\t691910\t692326\tdmel_chr4\t700019\t700435\t0\t827\t100\n")
+        obsFileName = "%s.align" % self._inFileName
+        
+        self._iLaunchBlaster.setIdentity(100)
+        self._iLaunchBlaster.setCPU(4)
+        self._iLaunchBlaster.setDoClean(True)
+        self._iLaunchBlaster.run()
+        
+        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName))
+        os.remove(expFileName)
+        self.assertTrue(glob.glob("*fa_cut*") == [])
+        self.assertTrue(glob.glob("*Nstretch*") == [])
+        self.assertTrue(glob.glob("*seq_treated*") == [])
+        self.assertTrue(glob.glob("*.log") == [])
+        
+    def test_run_as_script_1bank_1file(self):
+        inputFileName = "chunks.fa"
+        with open(inputFileName, "w") as f:
+            f.write(">chunk1\n")
+            f.write("GAATTCGCGTCCGCTTACCCATGTGCCTGTGGATGCCGAACAGGAGGCGCCGTTGACGGC\n")
+            f.write("GAATGACTTACTCAAGGGAGTAGCCAATCTGTCGGATACGCCCGGATTGGAGCTGCCCAT\n")
+        expFileName = "exp.align"
+        with open(expFileName, "w") as f:
+            f.write("chunk1\t1\t120\tdmel_chr4\t1\t120\t2e-64\t238\t100\n")
+        obsFileName = "%s.align" % inputFileName
+        
+        cmd = "LaunchBlaster.py -q %s -s %s -e 0.1 -a" % (inputFileName, self._inFileName)
+        os.system(cmd)
+        
+        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName))
+        FileUtils.removeFilesByPattern("%s*" % inputFileName)
+        os.remove(expFileName)
+        
+    def test_run_as_script_1bank_1file_withoutABA(self):
+        queryFileName = "chunks.fa"
+        with open(queryFileName, "w") as f:
+            f.write(">chunk1\n")
+            f.write("GAATTCGCGTCCGCTTACCCATGTGCCTGTGGATGCCGAACAGGAGGCGCCGTTGACGGC\n")
+            f.write("GAATGACTTACTCAAGGGAGTAGCCAATCTGTCGGATACGCCCGGATTGGAGCTGCCCAT\n")
+        subjectFileName = "genome.fa"
+        with open(subjectFileName, "w") as f:
+            f.write(">chunk1\n")
+            f.write("GAATTCGCGTCCGCTTACCCATGTGCCTGTGGATGCCGAACAGGAGGCGCCGTTGACGGC\n")
+            f.write("GAATGACTTACTCAAGGGAGTAGCCAATCTGTCGGATACGCCCGGATTGGAGCTGCCCAT\n")
+            f.write(">chunk2\n")
+            f.write("GAATTCGCGTCCGCTTACCCATGTGCCTGTGGATGCCGAACAGGAGGCGCCGTTGACGGC\n")
+            f.write("GAATGACTTACTCAAGGGAGTAGCCAATCTGTCGGATACGCCCGGATTGGAGCTGCCCAT\n")
+        expFileName = "exp.align"
+        with open(expFileName, "w") as f:
+            f.write("chunk1\t1\t120\tchunk1\t1\t120\t4e-68\t238\t100\n")
+            f.write("chunk1\t1\t120\tchunk2\t1\t120\t4e-68\t238\t100\n")
+        obsFileName = "%s.align" % queryFileName
+        
+        cmd = "LaunchBlaster.py -q %s -s %s -e 0.1" % (queryFileName, subjectFileName)
+        os.system(cmd)
+        
+        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName))
+        FileUtils.removeFilesByPattern("%s*" % queryFileName)
+        FileUtils.removeFilesByPattern("%s*" % subjectFileName)
+        os.remove(expFileName)
+
+if __name__ == "__main__":
+    unittest.main()
\ No newline at end of file