view commons/tools/tests/Test_F_AlignTEOnGenomeAccordingToAnnotation.py @ 18:94ab73e8a190

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

from commons.core.sql.DbFactory import DbFactory
from commons.core.utils.FileUtils import FileUtils
import subprocess
import os
import unittest
from commons.tools.AlignTEOnGenomeAccordingToAnnotation import AlignTEOnGenomeAccordingToAnnotation

class Test_F_AlignTEOnGenomeAccordingToAnnotation(unittest.TestCase):

    def test_run_merge_same_paths(self):
        pathFileName = "%s/Tools/DmelChr4_chr_allTEs_nr_noSSR_join_path.path" % os.environ["REPET_DATA"]
        queryFileName = "%s/commons/DmelChr4.fa" % os.environ["REPET_DATA"]
        subjectFileName = "%s/Tools/DmelChr4_refTEs.fa" % os.environ["REPET_DATA"]
        pathTableName = "testDmelChr4_chr_allTEs_nr_noSSR_join_path"
        queryTableName = "testDmelChr4_chr_seq"
        subjectTableName = "testDmelChr4_refTEs_seq"
        iDb = DbFactory.createInstance()
        iDb.createTable(queryTableName, "seq", queryFileName, True)
        iDb.createTable(subjectTableName, "seq", subjectFileName, True)
        iDb.createTable(pathTableName, "path", pathFileName, True)
        expFileName = "%s/Tools/exp%s_merge.alignedSeq" % (os.environ["REPET_DATA"], pathTableName)
        
        iATOGATA = AlignTEOnGenomeAccordingToAnnotation(pathTableName, queryTableName, subjectTableName, True)
        iATOGATA.run()
        obsFileName = "obs%s_merge.alignedSeq" % pathTableName
        iDb.exportDataToFile("%s_align" % pathTableName, obsFileName)
        
        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName))
        
        os.remove(obsFileName)
        iDb.dropTable(queryTableName)
        iDb.dropTable(subjectTableName)
        iDb.dropTable(pathTableName)
        iDb.dropTable("%s_align" % pathTableName)
        iDb.close()

    def test_run_as_script_merge_same_paths(self):
        pathFileName = "%s/Tools/DmelChr4_chr_allTEs_nr_noSSR_join_path.path" % os.environ["REPET_DATA"]
        queryFileName = "%s/commons/DmelChr4.fa" % os.environ["REPET_DATA"]
        subjectFileName = "%s/Tools/DmelChr4_refTEs.fa" % os.environ["REPET_DATA"]
        pathTableName = "testDmelChr4_chr_allTEs_nr_noSSR_join_path"
        queryTableName = "testDmelChr4_chr_seq"
        subjectTableName = "testDmelChr4_refTEs_seq"
        iDb = DbFactory.createInstance()
        iDb.createTable(queryTableName, "seq", queryFileName, True)
        iDb.createTable(subjectTableName, "seq", subjectFileName, True)
        iDb.createTable(pathTableName, "path", pathFileName, True)
        expFileName = "%s/Tools/exp%s_merge.alignedSeq" % (os.environ["REPET_DATA"], pathTableName)
        
        cmd = "AlignTEOnGenomeAccordingToAnnotation.py -p %s -q %s -s %s -m " % (pathTableName, queryTableName, subjectTableName)
        process = subprocess.Popen(cmd, shell = True)
        process.communicate()
        obsFileName = "obs%s_merge.alignedSeq" % pathTableName
        iDb.exportDataToFile("%s_align" % pathTableName, obsFileName)
        
        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName))
        
        os.remove(obsFileName)
        iDb.dropTable(queryTableName)
        iDb.dropTable(subjectTableName)
        iDb.dropTable(pathTableName)
        iDb.dropTable("%s_align" % pathTableName)
        iDb.close()

    def test_run_as_script_without_merge(self):
        pathFileName = "%s/Tools/DmelChr4_chr_allTEs_nr_noSSR_join_path.path" % os.environ["REPET_DATA"]
        queryFileName = "%s/commons/DmelChr4.fa" % os.environ["REPET_DATA"]
        subjectFileName = "%s/Tools/DmelChr4_refTEs.fa" % os.environ["REPET_DATA"]
        pathTableName = "testDmelChr4_chr_allTEs_nr_noSSR_join_path"
        queryTableName = "testDmelChr4_chr_seq"
        subjectTableName = "testDmelChr4_refTEs_seq"
        iDb = DbFactory.createInstance()
        iDb.createTable(queryTableName, "seq", queryFileName, True)
        iDb.createTable(subjectTableName, "seq", subjectFileName, True)
        iDb.createTable(pathTableName, "path", pathFileName, True)
        expFileName = "%s/Tools/exp%s.alignedSeq" % (os.environ["REPET_DATA"], pathTableName)
        
        cmd = "AlignTEOnGenomeAccordingToAnnotation.py -p %s -q %s -s %s" % (pathTableName, queryTableName, subjectTableName)
        process = subprocess.Popen(cmd, shell = True)
        process.communicate()
        obsFileName = "obs%s.alignedSeq" % pathTableName
        iDb.exportDataToFile("%s_align" % pathTableName, obsFileName)
        
        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName))
        
        os.remove(obsFileName)
        iDb.dropTable(queryTableName)
        iDb.dropTable(subjectTableName)
        iDb.dropTable(pathTableName)
        iDb.dropTable("%s_align" % pathTableName)
        iDb.close()
        
#    def test_run_as_script_merge_same_paths_old(self):
#        pathFileName = "%s/Tools/DmelChr4_chr_allTEs_nr_noSSR_join_path.path" % os.environ["REPET_DATA"]
#        queryFileName = "%s/commons/DmelChr4.fa" % os.environ["REPET_DATA"]
#        subjectFileName = "%s/Tools/DmelChr4_refTEs.fa" % os.environ["REPET_DATA"]
#        pathTableName = "testDmelChr4_chr_allTEs_nr_noSSR_join_path"
#        queryTableName = "testDmelChr4_chr_seq"
#        subjectTableName = "testDmelChr4_refTEs_seq"
#        iDb = DbFactory.createInstance()
#        iDb.createTable(queryTableName, "seq", queryFileName, True)
#        iDb.createTable(subjectTableName, "seq", subjectFileName, True)
#        iDb.createTable(pathTableName, "path", pathFileName, True)
#        expFileName = "%s/Tools/exp%s_merge_old.alignedSeq" % (os.environ["REPET_DATA"], pathTableName)
#        
#        cmd = "srptAlignPath.py -m %s -q %s -s %s" % (pathTableName, queryTableName, subjectTableName)
#        process = subprocess.Popen(cmd, shell = True)
#        process.communicate()
#        obsFileName = "obs%s.alignedSeq" % pathTableName
#        iDb.exportDataToFile("%s_align" % pathTableName, obsFileName)
#        
#        self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName))
#        
#        os.remove(obsFileName)
#        iDb.dropTable(queryTableName)
#        iDb.dropTable(subjectTableName)
#        iDb.dropTable(pathTableName)
#        iDb.dropTable("%s_align" % pathTableName)
#        iDb.close()
#        
if __name__ == "__main__":
    unittest.main()