Mercurial > repos > yufei-luo > s_mart
comparison commons/launcher/tests/Test_F_LaunchTallymer.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 from commons.core.utils.FileUtils import FileUtils | |
| 4 import shutil | |
| 5 from commons.launcher.LaunchTallymer import LaunchTallymer | |
| 6 | |
| 7 class Test_F_LaunchTallymer(unittest.TestCase): | |
| 8 | |
| 9 def setUp(self): | |
| 10 self._inFastaFileName = "%s/Tools/DmelChr4.fa" % os.environ["REPET_DATA"] | |
| 11 | |
| 12 def test_run_output_as_gff_cleaned(self): | |
| 13 iLaunchTallymer = LaunchTallymer(self._inFastaFileName, clean = True, verbosity=2) | |
| 14 iLaunchTallymer.run() | |
| 15 | |
| 16 expFileName = "%s/Tools/DmelChr4.fa.tallymer_k20.gff" % os.environ["REPET_DATA"] | |
| 17 obsFileName = "DmelChr4.tallymer.gff" | |
| 18 | |
| 19 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) | |
| 20 os.remove(obsFileName) | |
| 21 os.remove("DmelChr4.tallymer.stat") | |
| 22 | |
| 23 def test_run_with_remote_dir(self): | |
| 24 os.makedirs("sourceDir") | |
| 25 changedInFastaFileName = os.path.basename(self._inFastaFileName) | |
| 26 changedInFastaFilepath = os.path.join("sourceDir",changedInFastaFileName) | |
| 27 shutil.copy2(self._inFastaFileName, changedInFastaFilepath) | |
| 28 | |
| 29 iLaunchTallymer = LaunchTallymer(changedInFastaFilepath, clean = True, verbosity=2) | |
| 30 iLaunchTallymer.run() | |
| 31 | |
| 32 expFileName = "%s/Tools/DmelChr4.fa.tallymer_k20.gff" % os.environ["REPET_DATA"] | |
| 33 obsFileName = "DmelChr4.tallymer.gff" | |
| 34 | |
| 35 | |
| 36 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) | |
| 37 obsSourceDirFiles = os.listdir("sourceDir") | |
| 38 expSourceDirFiles = [changedInFastaFileName,] | |
| 39 self.assertEquals(expSourceDirFiles, obsSourceDirFiles) | |
| 40 | |
| 41 os.remove(obsFileName) | |
| 42 os.remove("DmelChr4.tallymer.stat") | |
| 43 shutil.rmtree("sourceDir") | |
| 44 | |
| 45 | |
| 46 def test_run_output_as_gff_cleaned_changed_minOccs2(self): | |
| 47 iLaunchTallymer = LaunchTallymer(self._inFastaFileName, minOccs=2, clean = True, verbosity=2) | |
| 48 iLaunchTallymer.run() | |
| 49 | |
| 50 expFileName = "%s/Tools/DmelChr4.fa.tallymer_k20_minOcc2.gff" % os.environ["REPET_DATA"] | |
| 51 obsFileName = "DmelChr4.tallymer.gff" | |
| 52 | |
| 53 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) | |
| 54 os.remove(obsFileName) | |
| 55 os.remove("DmelChr4.tallymer.stat") | |
| 56 | |
| 57 def test_run_output_as_gff_cleaned_relative_input(self): | |
| 58 srcFastaFileName = self._inFastaFileName | |
| 59 dstFastaFileName = os.path.basename(self._inFastaFileName) | |
| 60 shutil.copy2(srcFastaFileName, dstFastaFileName) | |
| 61 iLaunchTallymer = LaunchTallymer(dstFastaFileName, clean = True, verbosity=2) | |
| 62 iLaunchTallymer.run() | |
| 63 | |
| 64 expFileName = "%s/Tools/DmelChr4.fa.tallymer_k20.gff" % os.environ["REPET_DATA"] | |
| 65 obsFileName = "DmelChr4.tallymer.gff" | |
| 66 | |
| 67 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) | |
| 68 | |
| 69 os.remove(obsFileName) | |
| 70 os.remove("DmelChr4.tallymer.stat") | |
| 71 os.remove(dstFastaFileName) | |
| 72 | |
| 73 def test_run_as_script_output_as_gff_cleaned_relative_input_(self): | |
| 74 srcFastaFileName = self._inFastaFileName | |
| 75 dstFastaFileName = os.path.basename(self._inFastaFileName) | |
| 76 shutil.copy2(srcFastaFileName, dstFastaFileName) | |
| 77 | |
| 78 cmd = 'LaunchTallymer.py -i %s -s 20 -c -v 3' % (self._inFastaFileName) | |
| 79 os.system(cmd) | |
| 80 expFileName = "%s/Tools/DmelChr4.fa.tallymer_k20.gff" % os.environ["REPET_DATA"] | |
| 81 obsFileName = "DmelChr4.tallymer.gff" | |
| 82 | |
| 83 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) | |
| 84 | |
| 85 os.remove(obsFileName) | |
| 86 os.remove("DmelChr4.tallymer.stat") | |
| 87 os.remove(dstFastaFileName) | |
| 88 | |
| 89 def test_run_output_as_wig_cleaned(self): | |
| 90 iLaunchTallymer = LaunchTallymer(self._inFastaFileName, outputFormats="wig", clean=True) | |
| 91 iLaunchTallymer.run() | |
| 92 | |
| 93 expFileName = "%s/Tools/DmelChr4.fa.tallymer_k20.wig" % os.environ["REPET_DATA"] | |
| 94 obsFileName = "DmelChr4.tallymer.wig" | |
| 95 | |
| 96 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) | |
| 97 | |
| 98 os.remove(obsFileName) | |
| 99 os.remove("DmelChr4.tallymer.stat") | |
| 100 | |
| 101 def test_run_output_as_gff_and_wig_k15_cleaned(self): | |
| 102 iLaunchTallymer = LaunchTallymer(self._inFastaFileName, merSize=15, outputFormats="wig,gff3", clean=True) | |
| 103 iLaunchTallymer.run() | |
| 104 | |
| 105 expFileName = "%s/Tools/DmelChr4.fa.tallymer_k15.wig" % os.environ["REPET_DATA"] | |
| 106 obsFileName = "DmelChr4.tallymer.wig" | |
| 107 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) | |
| 108 os.remove(obsFileName) | |
| 109 | |
| 110 expFileName = "%s/Tools/DmelChr4.fa.tallymer_k15.gff3" % os.environ["REPET_DATA"] | |
| 111 obsFileName = "DmelChr4.tallymer.gff3" | |
| 112 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) | |
| 113 os.remove(obsFileName) | |
| 114 | |
| 115 os.remove("DmelChr4.tallymer.stat") | |
| 116 | |
| 117 def test_run_as_script_run_output_as_gff_and_wig_k15_cleaned(self): | |
| 118 logFileName = "test.log" | |
| 119 cmd = 'LaunchTallymer.py -i %s -s 15 -f gff,wig,vero -c -v 3 > %s' % (self._inFastaFileName, logFileName) | |
| 120 os.system(cmd) | |
| 121 | |
| 122 expFileName = "%s/Tools/DmelChr4.fa.tallymer_k15.wig" % os.environ["REPET_DATA"] | |
| 123 obsFileName = "DmelChr4.tallymer.wig" | |
| 124 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) | |
| 125 os.remove(obsFileName) | |
| 126 | |
| 127 expFileName = "%s/Tools/DmelChr4.fa.tallymer_k15.gff3" % os.environ["REPET_DATA"] | |
| 128 obsFileName = "DmelChr4.tallymer.gff" | |
| 129 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) | |
| 130 os.remove(obsFileName) | |
| 131 | |
| 132 expLogFileName = "exp.log" | |
| 133 with open(expLogFileName, "w") as f: | |
| 134 f.write(" LaunchTallymer - WARNING - Warning: ignoring invalid formats: <vero>\n") | |
| 135 f.write(" LaunchTallymer - INFO - Starting to run tallymer search of sequence DmelChr4.fa \n") | |
| 136 f.write(" LaunchTallymer - INFO - Finished running tallymer scan of sequence DmelChr4.fa \n") | |
| 137 f.write(" LaunchTallymer - INFO - Starting to run tallymer search to map conversion\n") | |
| 138 f.write(" LaunchTallymer - INFO - Finished tallymer search to map conversion\n") | |
| 139 f.write(" LaunchTallymer - INFO - Generating wig file\n") | |
| 140 f.write(" LaunchTallymer - INFO - Generating gff file\n") | |
| 141 obsLogFileName = "obs.log" | |
| 142 os.system("cut -d'-' -f4,5,6 %s > %s" % (logFileName, obsLogFileName)) | |
| 143 self.assertTrue(FileUtils.are2FilesIdentical(expLogFileName, obsLogFileName)) | |
| 144 | |
| 145 os.remove(logFileName) | |
| 146 os.remove(expLogFileName) | |
| 147 os.remove(obsLogFileName) | |
| 148 os.remove("DmelChr4.tallymer.stat") | |
| 149 | |
| 150 if __name__ == "__main__": | |
| 151 unittest.main() |
