view commons/tools/tests/Test_F_SplicerFromAnnotation.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 unittest
import os
from commons.core.sql.DbMySql import DbMySql
from commons.core.utils.FileUtils import FileUtils
#from commons.tools.SplicerFromAnnotation import SplicerFromAnnotation

class Test_F_SplicerFromAnnotation(unittest.TestCase):

    def setUp(self):
        self._inFastaFileName = "%s/Tools/Splicer_inputFile.fa" % os.environ["REPET_DATA"]
        self._outFastaFileName = "%s/Tools/Splicer_outputSplicedFile.fa.splice" % os.environ["REPET_DATA"]
        self._refTEseqFileName = "%s/Tools/Splicer_refTEs_seq.fa" % os.environ["REPET_DATA"]
        self.configFileName = "TEdenovo.cfg"
        self._writeConfigFile()
        self.pathFileName = "annotations_path"
        self._writePathFile()
        self._iDb = DbMySql(cfgFileName = self.configFileName)
        self._tableName = "Splicer_inputFile_chr_allTEs_nr_noSSR_join_path"
        self._iDb.createTable(self._tableName, "path", self.pathFileName, True)
        self._tableName_refTEseq = "Splicer_inputFile_refTEs_seq"
        self._iDb.createTable(self._tableName_refTEseq, "seq", self._refTEseqFileName, True)
   
    def tearDown(self):
        self._iDb.dropTable(self._tableName)
        self._iDb.dropTable(self._tableName_refTEseq)
        self._iDb.dropTable("Splicer_inputFile_annotationIdentitySup80_path")
        self._iDb.dropTable("Splicer_inputFile_annotationToSplice_path")
        self._iDb.close()
        os.remove("annotations_path")
        os.remove("Splicer_inputFile_chr_allTEs_nr_noSSR_join_path.annotStatsPerTE.tab")
        os.remove("Splicer_inputFile_chr_allTEs_nr_noSSR_join_path.globalAnnotStatsPerTE.txt")
        os.remove("Splicer_inputFile_chr_allTEs_nr_noSSR_join_path.annotStatsPerTE_FullLengthCopy.fa")
        os.remove("Splicer_inputFile_chr_allTEs_nr_noSSR_join_path.annotStatsPerTE_FullLengthCopy.txt")
        os.remove("Splicer_inputFile_chr_allTEs_nr_noSSR_join_path.annotStatsPerTE_FullLengthFrag.fa")
        os.remove("Splicer_inputFile_chr_allTEs_nr_noSSR_join_path.annotStatsPerTE_FullLengthFrag.txt")
        os.remove("Splicer_inputFile_chr_allTEs_nr_noSSR_join_path.annotStatsPerTE_OneCopyAndMore.txt")
        os.remove("Splicer_inputFile_chr_allTEs_nr_noSSR_join_path.annotStatsPerTE_OneCopyAndMore.fa")
        os.remove("Splicer_inputFile_annotationToSplice_path.path")
        os.remove(self.configFileName)
#        os.remove(self.obsOutSplicedFastaFileName)
        
    def test_run_as_script_FLC(self):
        expOutSplicedFastaFileName = "%s/Tools/Splicer_outputSplicedFile_FLC.fa.splice" % os.environ["REPET_DATA"]
        self.obsOutSplicedFastaFileName = "Splicer_inputFile_FLC.fa.splice"
        self._writeConfigFile()
        self._writePathFile()
        cmd = 'SplicerFromAnnotation.py -i %s -C %s -o %s -v 2' % (self._inFastaFileName,self.configFileName, self.obsOutSplicedFastaFileName)
        os.system(cmd)
        
        self.assertTrue(FileUtils.are2FilesIdentical(expOutSplicedFastaFileName, self.obsOutSplicedFastaFileName))
        
    def test_run_as_script_FLF(self):
        expOutSplicedFastaFileName = "%s/Tools/Splicer_outputSplicedFile_FLF.fa.splice" % os.environ["REPET_DATA"]
        self.obsOutSplicedFastaFileName = "Splicer_inputFile_FLF.fa.splice"
        self._writeConfigFile()
        self._writePathFile()
        cmd = 'SplicerFromAnnotation.py -i %s -t 3 -C %s -o %s -v 2' % (self._inFastaFileName,self.configFileName, self.obsOutSplicedFastaFileName)
        os.system(cmd)
        
        self.assertTrue(FileUtils.are2FilesIdentical(expOutSplicedFastaFileName, self.obsOutSplicedFastaFileName))

    def _writeConfigFile(self):
        f = open(self.configFileName, "w")
        f.write("[repet_env]\n")
        f.write("repet_version: 2.0\n")
        f.write("repet_host: %s\n" % os.environ["REPET_HOST"])
        f.write("repet_user: %s\n" % os.environ["REPET_USER"])
        f.write("repet_pw: %s\n" % os.environ["REPET_PW"])
        f.write("repet_db: %s\n" % os.environ["REPET_DB"])
        f.write("repet_port: %s\n" % os.environ["REPET_PORT"])
        f.write("repet_job_manager: %s\n" % os.environ["REPET_JOB_MANAGER"])
        f.close()

    def _writePathFile(self):      
        f = open(self.pathFileName, "w")
        f.write("1\tA_contig00012\t2853\t3530\tRLX-comp_3b_Itr1_v2-L-B1064-Map1_reversed\t8127\t8803\t0\t648\t95.7227\n")
        f.write("3\tA_contig00012\t3531\t6064\tRLX-incomp_3b_Itr1_v2-L-B450-Map1\t3207\t709\t0\t2166\t85.4973\n")
        f.write("4\tA_contig00012\t1\t1542\tDTX-incomp_3b_Itr1_v2-L-B1836-Map1\t673\t2218\t0\t1460\t94.7437\n")
        f.write("4\tA_contig00012\t1523\t2849\tDTX-incomp_3b_Itr1_v2-L-B1836-Map1\t2385\t3693\t0\t1086\t81.9079\n")
        f.write("23\tA_contig00033\t10551\t10668\tRLX-comp_3b_Itr1_v2-L-B2275-Map1\t668\t784\t1.3e-11\t97\t82.8571\n")
        f.write("24\tA_contig00033\t7649\t7753\tRLX-comp_3b_Itr1_v2-L-B1105-Map1\t5349\t5453\t1.4e-13\t82\t78.5714\n")
        f.write("25\tA_contig00033\t2998\t3243\tRLX-comp_3b_Itr1_v2-L-B757-Map1\t4422\t4659\t1.2e-12\t201\t81.8182\n")
        f.write("26\tA_contig00033\t30462\t30502\tRLX-comp_3b_Itr1_v2-L-B389-Map1_reversed\t1548\t1509\t0\t38\t95.12\n")
        f.write("26\tA_contig00033\t30462\t30504\tRLX-comp_3b_Itr1_v2-L-B389-Map1_reversed\t1548\t1505\t0\t41\t94.8026\n")
        f.write("28\tA_contig00033\t6826\t7046\tRLX-comp_3b_Itr1_v2-L-B381-Map1\t5655\t5443\t0\t170\t77.3196\n")
        f.write("30\tA_contig00033\t11712\t11818\tRLX-comp_3b_Itr1_v2-L-B108-Map1_reversed\t7782\t7682\t0\t80\t75\n")
        f.write("31\tA_contig00033\t17122\t17221\tRLX-comp-chim_3b_Itr1_v2-L-B410-Map1_reversed\t9987\t9889\t0\t75\t75.2187\n")
        f.write("32\tA_contig00033\t19069\t19131\tRLX-comp-chim_3b_Itr1_v2-L-B410-Map1_reversed\t8261\t8325\t2.8e-14\t45\t71.345\n")
        f.write("33\tA_contig00033\t19343\t19375\tRLX-comp-chim_3b_Itr1_v2-L-B410-Map1_reversed\t8229\t8197\t0\t29\t86.6953\n")
        f.write("34\tA_contig00033\t20411\t20783\tRLX-comp-chim_3b_Itr1_v2-L-B410-Map1_reversed\t7558\t7186\t0\t314\t84.4327\n")
        f.write("35\tA_contig00033\t6346\t6541\tRLX-incomp-chim_3b_Itr1_v2-L-B359-Map1_reversed\t10604\t10416\t1.9e-24\t163\t83.2536\n")
        f.write("36\tA_contig00033\t16757\t17121\tDTX-incomp-chim_3b_Itr1_v2-L-B171-Map1_reversed\t8290\t7930\t0\t282\t77.5216\n")
        f.write("37\tA_contig00033\t17222\t18658\tDTX-incomp-chim_3b_Itr1_v2-L-B171-Map1_reversed\t7243\t5796\t0\t1094\t76.1977\n")
        f.write("38\tA_contig00033\t19132\t19342\tDTX-incomp-chim_3b_Itr1_v2-L-B171-Map1_reversed\t5780\t5567\t0\t191\t90.9524\n")
        f.write("39\tA_contig00033\t19409\t19455\tDTX-incomp-chim_3b_Itr1_v2-L-B171-Map1_reversed\t5558\t5512\t0\t38\t82.9787\n")
        f.write("39\tA_contig00033\t19416\t19441\tDTX-incomp-chim_3b_Itr1_v2-L-B171-Map1_reversed\t5551\t5526\t0\t24\t96.15\n")
        f.write("40\tA_contig00033\t19641\t20410\tDTX-incomp-chim_3b_Itr1_v2-L-B171-Map1_reversed\t5533\t4749\t0\t651\t84.55\n")
        f.write("41\tA_contig00033\t19475\t19640\tDTX-incomp-chim_3b_Itr1_v2-L-B151-Map1_reversed\t9514\t9708\t0\t127\t76.7025\n")
        f.write("42\tA_contig00033\t3244\t3364\tDTX-incomp_3b_Itr1_v2-L-B1836-Map1\t2536\t2405\t6.8e-23\t95\t78.8462\n")
        f.write("43\tA_contig00033\t19376\t19408\tRLX-comp_3b_Itr1_v2-L-B1517-Map1\t705\t733\t1.1e-11\t27\t80.4348\n")
        f.write("43\tA_contig00033\t19456\t19474\tRLX-comp_3b_Itr1_v2-L-B1517-Map1\t775\t790\t1.1e-11\t15\t80.4348\n")
        f.write("44\tA_contig00033\t5494\t5583\tRIX-incomp-chim_3b_Itr1_v2-L-B121-Map1\t7419\t7507\t4.9e-11\t68\t76.1905\n")
        f.write("45\tA_contig00033\t10810\t11031\tRLX-comp_3b_Itr1_v2-L-B2073-Map1\t3079\t3297\t1e-17\t171\t77.2021\n")
        f.write("46\tA_contig00033\t11253\t11406\tRLX-comp_3b_Itr1_v2-L-B1616-Map1\t1726\t1569\t0\t120\t78.2609\n")
        f.write("47\tA_contig00033\t11407\t11508\tRLX-comp_3b_Itr1_v2-L-B351-Map1_reversed\t10133\t10039\t0\t79\t77.8689\n")
        f.write("48\tA_contig00033\t3673\t3719\tRLX-comp_3b_Itr1_v2-L-B228-Map1_reversed\t13011\t12966\t0\t37\t78.629\n")
        f.write("49\tA_contig00033\t3959\t4055\tRLX-comp_3b_Itr1_v2-L-B134-Map1_reversed\t1917\t2010\t5.5e-24\t74\t77.2727\n")
        f.write("50\tA_contig00033\t30505\t37270\tRLX-comp_3b_Itr1_v2-L-B124-Map1\t14149\t7383\t0\t6365\t94.0818\n")
        f.write("51\tA_contig00033\t8859\t9079\tRLX-incomp_3b_Itr1_v2-L-B2010-Map1_reversed\t390\t603\t1.9e-11\t171\t77.6596\n")
        f.write("52\tA_contig00033\t9080\t9140\tRLX-incomp_3b_Itr1_v2-L-B1720-Map1_reversed\t1393\t1460\t0\t49\t80.8333\n")
        f.write("53\tA_contig00033\t12386\t12435\tRLX-incomp_3b_Itr1_v2-L-B1706-Map1\t2678\t2725\t1.3e-25\t40\t81.1765\n")
        f.write("54\tA_contig00033\t5052\t5096\tRLX-incomp_3b_Itr1_v2-L-B77-Map2_reversed\t5445\t5402\t6.1e-13\t37\t84.507\n")
        f.write("55\tA_contig00033\t14485\t16756\tRLX-incomp_3b_Itr1_v2-L-B965-Map1\t4566\t6848\t0\t1881\t82.8154\n")
        f.write("57\tA_contig00033\t10229\t10370\tRLX-incomp_3b_Itr1_v2-L-B502-Map1_reversed\t8598\t8438\t0\t109\t77.2727\n")
        f.write("59\tA_contig00033\t2457\t2617\tRLX-incomp_3b_Itr1_v2-L-B405-Map1\t4742\t4910\t0\t129\t80.2721\n")
        f.write("60\tA_contig00033\t8071\t8183\tRLX-incomp_3b_Itr1_v2-L-B109-Map1\t4413\t4529\t0\t97\t86.5979\n")
        f.write("61\tA_contig00033\t12867\t14362\tRXX-LARD-chim_3b_Itr1_v2-L-B1998-Map1_reversed\t1465\t3000\t0\t1283\t85.8025\n")
        f.write("62\tA_contig00033\t90\t256\tRXX-LARD-chim_3b_Itr1_v2-L-B1928-Map1\t905\t717\t2.5e-38\t128\t76.875\n")
        f.write("63\tA_contig00033\t5097\t5249\tRXX-LARD-chim_3b_Itr1_v2-L-B1928-Map1\t4158\t4017\t4e-36\t127\t83.3333\n")
        f.write("64\tA_contig00033\t8689\t8796\tRXX-LARD-chim_3b_Itr1_v2-L-B1905-Map1\t5584\t5469\t5.04467e-44\t85\t79.2079\n")
        f.write("65\tA_contig00033\t6800\t6825\tRXX-LARD-chim_3b_Itr1_v2-L-B1790-Map1_reversed\t3426\t3399\t0\t21\t79.1667\n")
        f.write("66\tA_contig00033\t10193\t10228\tRLX-comp-chim_3b_Itr1_v2-L-B1760-Map1_reversed\t1470\t1504\t8.7e-23\t29\t80.5195\n")
        f.write("67\tA_contig00033\t6542\t6603\tRXX-LARD-chim_3b_Itr1_v2-L-B1741-Map1_reversed\t5509\t5567\t0\t48\t77.9412\n")
        f.write("69\tA_contig00033\t12769\t12816\tRLX-comp-chim_3b_Itr1_v2-L-B1518-Map1\t2026\t1979\t0\t39\t81.25\n")
        f.write("70\tA_contig00033\t28383\t29146\tRLX-comp-chim_3b_Itr1_v2-L-B1494-Map1_reversed\t999\t1761\t0\t672\t88.0282\n")
        f.write("71\tA_contig00033\t21712\t28382\tRLX-incomp-chim_3b_Itr1_v2-L-B1485-Map1\t1132\t7813\t0\t6011\t90.1124\n")
        f.write("71\tA_contig00033\t20784\t21728\tRLX-incomp-chim_3b_Itr1_v2-L-B1485-Map1\t159\t1113\t0\t833\t88.172 \n")
        f.close()
        
if __name__ == "__main__":
    unittest.main()