view commons/tools/tests/Test_F_HmmOutput2alignAndTransformCoordInNtAndFilterScores_script.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
line wrap: on
line source

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

CURRENT_DIR = os.getcwd()

class Test_F_HmmOutput2alignAndTransformCoordInNtAndFilterScores_script(unittest.TestCase):
    
    def setUp(self):
        self._inputFile = os.environ["REPET_PATH"] + "/commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/test_hmmpfam_output"
        self._outputFile = os.environ["REPET_PATH"] + "/commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/hmmpfam_output.align"
        self._prg = "HmmOutput2alignAndTransformCoordInNtAndFilterScores_script.py"
        self._inputFile2 = os.environ["REPET_PATH"] + "/commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/OutputHmmpfamTest"
        self._consensusFile = os.environ["REPET_PATH"] + "/commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/ConsensusTestFile_nt.fsa"
        self._inputFileScan =  os.environ["REPET_PATH"] + "/commons/pyRepetUnit/hmmer/hmmOutput/tests/datas/hmmscanOutput"
        self._outputFileScan = os.environ["REPET_PATH"] + "/commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/hmmscan_output.align"
        self._expectedFile =  os.environ["REPET_PATH"] + "/commons/pyRepetUnit/hmmer/hmmOutput/tests/datas/hmmscanOutput.align"
        os.chdir(CURRENT_DIR)
        
    def testHmmpfamOuput2align(self):
        cmd = self._prg
        cmd += " -i %s" % ( self._inputFile )
        cmd += " -o %s" % ( self._outputFile )
        os.system( cmd )              
        self.assertTrue(FileUtils.isRessourceExists(self._outputFile))  
        self.assertTrue(FileUtils.are2FilesIdentical(self._inputFile + ".align", self._outputFile))
        self._clean()
        
    def testHmmpfamOuput2align_clean_option(self):
        os.system( "cp " + self._inputFile + " " + self._inputFile + "bis" )
        cmd = self._prg
        cmd += " -i %s" % ( self._inputFile + "bis" )
        cmd += " -o %s" % ( self._outputFile )
        cmd += " -c"
        os.system( cmd )        
        self.assertTrue(FileUtils.isRessourceExists(self._outputFile))  
        self.assertTrue( FileUtils.are2FilesIdentical( self._inputFile + ".align", self._outputFile) )
        self.assertFalse( FileUtils.isRessourceExists( self._inputFile + "bis" ) )
        self._clean()
        
    def testHmmpfamOutput2alignAndTransformCoordInNtAndFilterScores(self):
        cmd = self._prg
        cmd += " -i %s" % ( self._inputFile2 )
        cmd += " -o %s" % ( self._outputFile )
        cmd += " -T %s" % ( self._consensusFile )
        os.system( cmd )
        self._expectedFile = os.environ["REPET_PATH"] + "/commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/PostPostProcessTestFiltered.align"
        self.assertTrue(FileUtils.isRessourceExists(self._outputFile))              
        self.assertTrue(FileUtils.are2FilesIdentical(self._expectedFile, self._outputFile))
        self._clean()    
        
    def testHmmscanOuput2align(self):
        cmd = self._prg
        cmd += " -i %s" % ( self._inputFileScan )
        cmd += " -o %s" % ( self._outputFileScan )
        cmd += " -p hmmscan"
        os.system( cmd )             
        self.assertTrue(FileUtils.isRessourceExists(self._outputFileScan))   
        self.assertTrue(FileUtils.are2FilesIdentical(self._expectedFile, self._outputFileScan))
        self._cleanScan()
        
    def testHmmscanOuput2align_clean_option(self):
        os.system( "cp " + self._inputFileScan + " " + self._inputFileScan + "bis" )
        cmd = self._prg
        cmd += " -i %s" % ( self._inputFileScan + "bis" )
        cmd += " -o %s" % ( self._outputFileScan )
        cmd += " -c -p hmmscan"
        os.system( cmd )        
        self.assertTrue( FileUtils.are2FilesIdentical( self._expectedFile, self._outputFileScan) )
        self.assertFalse( FileUtils.isRessourceExists( self._inputFileScan + "bis" ) )
        self._cleanScan()
        
    def testHmmscanOutput2alignAndTransformCoordInNtAndFilterScores(self):
        self._inputFileScan2 = os.environ["REPET_PATH"] + "/commons/pyRepetUnit/hmmer/hmmOutput/tests/datas/hmmscanOutput"
        self._consensusFileScan = os.environ["REPET_PATH"] + "/commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/repetHmmscan.fa"
        self._expectedFileScan = os.environ["REPET_PATH"] + "/commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/hmmscanTransformedExpected.align"
        cmd = self._prg
        cmd += " -i %s" % ( self._inputFileScan2 )
        cmd += " -o %s" % ( self._outputFileScan )
        cmd += " -T %s" % ( self._consensusFileScan )
        cmd += " -p hmmscan"
        os.system( cmd )       
        self.assertTrue(FileUtils.isRessourceExists(self._outputFileScan))         
        self.assertTrue(FileUtils.are2FilesIdentical(self._expectedFileScan, self._outputFileScan))
        self._cleanScan()    
        
    def _clean(self):
        os.system( "rm " + self._outputFile )
        
    def _cleanScan(self):
        os.system( "rm " + self._outputFileScan )
        
            
if __name__ == "__main__":                 
    unittest.main()