view commons/launcher/tests/Test_F_LaunchBlastclust.py @ 18:94ab73e8a190

Uploaded
author m-zytnicki
date Mon, 29 Apr 2013 03:20:15 -0400
parents
children
line wrap: on
line source

import unittest
import os
from commons.launcher.LaunchBlastclust import LaunchBlastclust
from commons.core.utils.FileUtils import FileUtils

class Test_F_LaunchBlastclust(unittest.TestCase):

    def setUp(self):
        self._inputFileName = "DmelChr4_LTRharvest_expected_with_default_params.fa"
        os.symlink("%s/Tools/%s" % (os.environ["REPET_DATA"], self._inputFileName), self._inputFileName)
        self._outputFileName = "%s_Blastclust.fa" % self._inputFileName
        self._outBlastclustFileName = "%s_blastclust.txt" % self._inputFileName
        
    def tearDown(self):
        if os.path.exists(self._outputFileName):
            os.remove(self._outputFileName)
        if os.path.exists(self._outBlastclustFileName):
            os.remove(self._outBlastclustFileName)
        os.remove(self._inputFileName)

    def test_run(self):
        iLaunchBlastclust = LaunchBlastclust(self._inputFileName, clean = True)
        iLaunchBlastclust.run()
        expFileName = "%s/Tools/DmelChr4_LTRharvest_Blastclust_expected.fa" % os.environ["REPET_DATA"]
        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, self._outputFileName))
        
    def test_run_with_tweaked_params(self):
        iLaunchBlastclust = LaunchBlastclust(self._inputFileName, clean = True)
        iLaunchBlastclust.setBothSequences("F")
        iLaunchBlastclust.setIdentityThreshold(0)
        iLaunchBlastclust.setIsBlastToMap()
        iLaunchBlastclust.run()
        
        faExpFileName = "%s/Tools/DmelChr4_LTRharvest_Blastclust_expected_with_tweaked_params.fa" % os.environ["REPET_DATA"]
        mapExpFileName = "%s/Tools/DmelChr4_LTRharvest_Blastclust_expected_with_tweaked_params.map" % os.environ["REPET_DATA"]
        
        self.assertTrue(FileUtils.are2FilesIdentical(faExpFileName, self._outputFileName))
        self.assertTrue(FileUtils.are2FilesIdentical(mapExpFileName, "%s.map" % os.path.splitext(self._outputFileName)[0]))
        
        os.remove("%s.map" % os.path.splitext(self._outputFileName)[0])
      
    def test_run_with_header_options(self):
        inFileName = "dummyHeaderForTEdenovo.fa"
        expFileName = "expDummyHeaderForTEdenovo.fa"
        self._writeInputFile_header_options(inFileName)
        self._writeExpFile_header_options(expFileName)
        obsFileName = "%s_Blastclust.fa" % inFileName
        
        iLaunchBlastclust = LaunchBlastclust(inFileName, clean = True)
        iLaunchBlastclust.setIsHeaderForTEdenovo(True)
        iLaunchBlastclust.run()
        
        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName))
        
        os.remove(inFileName)
        os.remove(expFileName)
        os.remove(obsFileName)
        os.remove("%s_blastclust.txt" % inFileName)
          
    def test_run_as_script(self):
        cmd = "LaunchBlastclust.py -i %s" % self._inputFileName
        os.system(cmd)
        expFileName = "%s/Tools/DmelChr4_LTRharvest_Blastclust_expected.fa" % os.environ["REPET_DATA"]
        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, self._outputFileName))
        
    def _writeInputFile_header_options(self, inFileName):
        f = open(inFileName,"w")
        f.write(">DTX-incomp_DmelChr4-B-R9-Map3_reversed\n")
        f.write("CATTAGATTCAAGGCATCATGGATCAGCACATTTACACAGATATCCTGGAAAATGTGATG\n")
        f.write("CTGCCATATGCCGGGGATGAAATGCCGTTGGTTTGGACATTTCAACAGGATAACGATTCA\n")
        f.write("AAACACACGAGCAAGAAAGCTTGAAAGTGGTTTGAGCAGAAATCGATCCGAGTAATGAAA\n")
        f.write("TGGCCTGCTCTGTCATCCGACTTGAATCCAATCGAAAACCTTTGGGCGGACGTGGAAAAA\n")
        f.write(">DTX-incomp_DmelChr4-B-R10-Map3_reversed\n")
        f.write("CATTAGATTCAAGGCATCATGGATCAGCACATTTACACAGATATCCTGGAAAATGTGATG\n")
        f.write("CTGCCATATGCCGGGGATGAAATGCCGTTGGTTTGGACATTTCAACAGGATAACGATTCA\n")
        f.write("AAACACACGAGCAAGAAAGCTTGAAAGTGGTTTGAGCAGAAATCGATCCGAGTAATGAAA\n")
        f.write("TGGCCTGCTCTGTCATCCGACTTGAATCCAATCGAAAACCTTTGGGCGGACGTGGAAAAA\n")
        f.write(">PotentialHostGene-chim_DmelChr4-B-R4-Map5_reversed\n")
        f.write("TACCAAAGACACTAGAATAACAAGATGCGTAACGCCATACGATTTTTTGGCACACGATTT\n")
        f.write("TTTCGCCGTGGCTCTAGAGGTGGCTCCAGGCTCTCTCGAATTTTTGTTAGAGAGCGAGAG\n")
        f.write("AGCGGAGAGCGCTACAGCGAACAGCTCTTTTCAACGCATAAAGTGATAGCAGACAACTGT\n")
        f.close()
        
    def _writeExpFile_header_options(self, expFileName):
        f = open(expFileName,"w")
        f.write(">DTX-incomp_Blc1_DmelChr4-B-R9-Map3_reversed\n")
        f.write("CATTAGATTCAAGGCATCATGGATCAGCACATTTACACAGATATCCTGGAAAATGTGATG\n")
        f.write("CTGCCATATGCCGGGGATGAAATGCCGTTGGTTTGGACATTTCAACAGGATAACGATTCA\n")
        f.write("AAACACACGAGCAAGAAAGCTTGAAAGTGGTTTGAGCAGAAATCGATCCGAGTAATGAAA\n")
        f.write("TGGCCTGCTCTGTCATCCGACTTGAATCCAATCGAAAACCTTTGGGCGGACGTGGAAAAA\n")
        f.write(">DTX-incomp_Blc1_DmelChr4-B-R10-Map3_reversed\n")
        f.write("CATTAGATTCAAGGCATCATGGATCAGCACATTTACACAGATATCCTGGAAAATGTGATG\n")
        f.write("CTGCCATATGCCGGGGATGAAATGCCGTTGGTTTGGACATTTCAACAGGATAACGATTCA\n")
        f.write("AAACACACGAGCAAGAAAGCTTGAAAGTGGTTTGAGCAGAAATCGATCCGAGTAATGAAA\n")
        f.write("TGGCCTGCTCTGTCATCCGACTTGAATCCAATCGAAAACCTTTGGGCGGACGTGGAAAAA\n")
        f.write(">PotentialHostGene-chim_Blc2_DmelChr4-B-R4-Map5_reversed\n")
        f.write("TACCAAAGACACTAGAATAACAAGATGCGTAACGCCATACGATTTTTTGGCACACGATTT\n")
        f.write("TTTCGCCGTGGCTCTAGAGGTGGCTCCAGGCTCTCTCGAATTTTTGTTAGAGAGCGAGAG\n")
        f.write("AGCGGAGAGCGCTACAGCGAACAGCTCTTTTCAACGCATAAAGTGATAGCAGACAACTGT\n")
        f.close()
        
if __name__ == "__main__":
    unittest.main()