Mercurial > repos > yufei-luo > s_mart
diff commons/pyRepetUnit/profilesDB/tests/TestProfilesDB2Map.py @ 18:94ab73e8a190
Uploaded
author | m-zytnicki |
---|---|
date | Mon, 29 Apr 2013 03:20:15 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commons/pyRepetUnit/profilesDB/tests/TestProfilesDB2Map.py Mon Apr 29 03:20:15 2013 -0400 @@ -0,0 +1,199 @@ +import os +import unittest +from commons.pyRepetUnit.profilesDB.Profiles import Profiles +from commons.pyRepetUnit.profilesDB.ProfilesDatabank import ProfilesDatabank +import commons.pyRepetUnit.profilesDB.ProfilesDB2Map +from commons.core.utils.FileUtils import FileUtils + + +class TestProfilesDB2Map(unittest.TestCase): + + def setUp(self): + self.profilesDB2Map = commons.pyRepetUnit.profilesDB.ProfilesDB2Map.ProfilesDB2Map() + + + def testWriteProfilesDB(self): + # atomic hmmerpfam file + profilesDB = ProfilesDatabank() + profiles1 = Profiles() + profiles1.name = "fn3" + profiles1.desc = "Fibronectin type III domain" + profiles1.length = 84 + profilesDB.append( profiles1 ) + profiles2 = Profiles() + profiles2.name = "truc" + profiles2.desc = "" + profiles2.length = 123 + profilesDB.append( profiles2 ) + file = open( "expectedFile", "w" ) + file.write( "fn3\tFibronectin type III domain\t1\t84\n" ) + file.write( "truc\t\t1\t123\n" ) + file.close() + self.profilesDB2Map.setOutputFile("testOutput.map") + self.profilesDB2Map._writeMapFile(profilesDB) + self.assertTrue(FileUtils.are2FilesIdentical("expectedFile", "testOutput.map")) + os.remove("expectedFile") + os.remove("testOutput.map") + #empty profileDB object + profilesDB = ProfilesDatabank() + self.profilesDB2Map._writeMapFile(profilesDB) + self.assertFalse(FileUtils.isRessourceExists("testOutput.map")) + + def testReadProfilesDB(self): + # atomic hmmerpfam file + f = open("dummy.hmm", "w") + f.write("HMMER2.0 [2.3.2]\n") + f.write("NAME fn3\n") + f.write("ACC PF00041\n") + f.write("DESC Fibronectin type III domain\n") + f.write("LENG 84\n") + f.write("ALPH Amino\n") + f.write("RF no\n") + f.write("CS yes\n") + f.write("MAP yes\n") + f.write("COM hmmbuild -A myhmms fn3.sto\n") + f.write("COM hmmcalibrate myhmms\n") + f.write("NSEQ 108\n") + f.write("DATE Thu Jan 8 17:50:26 2009\n") + f.write("CKSUM 6130\n") + f.write("GA 7.8 -1.0\n") + f.write("TC 7.9 0.1\n") + f.write("XT -8455 -4 -1000 -1000 -8455 -4 -8455 -4 \n") + f.write("NULT -4 -8455\n") + f.write("NULE 595 -1558 85 338 -294 453 -1158 197 249 902 -1085 -142 -21 -313 45 531 201 384 -1998 -644 \n") + f.write("EVD -45.973442 0.237545\n") + f.write("HMM A C D E F G H I K L M N P Q R S T V W Y \n") + f.write(" m->m m->i m->d i->m i->i d->m d->d b->m m->e\n") + f.write("COM hmmcalibrate myhmms\n") + f.write(" -13 * -6756\n") + f.write(" 1 -1698 -4236 -5399 -847 -4220 -2885 -1259 -930 -2438 406 -3428 -4768 3631 -1835 -4773 -1187 -1331 -120 -4666 -1510 1\n") + f.write(" - -150 -501 232 46 -382 399 104 -628 211 -461 -722 274 395 44 95 358 118 -368 -296 -251 \n") + f.write(" C -144 -3400 -12951 -19 -6286 -701 -1378 -13 * \n") + f.write("//\n") + f.write("HMMER2.0 [2.3.2]\n") + f.write("NAME truc\n") + f.write("ACC PF00041\n") + f.write("LENG 123\n") + f.write("ALPH Amino\n") + f.write("RF no\n") + f.write("CS yes\n") + f.write("MAP yes\n") + f.write("COM hmmbuild -A myhmms fn3.sto\n") + f.write("COM hmmcalibrate myhmms\n") + f.write("NSEQ 108\n") + f.write("DATE Thu Jan 8 17:50:26 2009\n") + f.write("CKSUM 6130\n") + f.write("GA 7.8 -1.0\n") + f.write("TC 7.9 0.1\n") + f.write("XT -8455 -4 -1000 -1000 -8455 -4 -8455 -4 \n") + f.write("NULT -4 -8455\n") + f.write("NULE 595 -1558 85 338 -294 453 -1158 197 249 902 -1085 -142 -21 -313 45 531 201 384 -1998 -644 \n") + f.write("EVD -45.973442 0.237545\n") + f.write("HMM A C D E F G H I K L M N P Q R S T V W Y \n") + f.write(" m->m m->i m->d i->m i->i d->m d->d b->m m->e\n") + f.write("COM hmmcalibrate myhmms\n") + f.write(" -13 * -6756\n") + f.write(" 1 -1698 -4236 -5399 -847 -4220 -2885 -1259 -930 -2438 406 -3428 -4768 3631 -1835 -4773 -1187 -1331 -120 -4666 -1510 1\n") + f.write(" - -150 -501 232 46 -382 399 104 -628 211 -461 -722 274 395 44 95 358 118 -368 -296 -251 \n") + f.write(" C -144 -3400 -12951 -19 -6286 -701 -1378 -13 * \n") + f.write("//\n") + f.close() + self.profilesDB2Map.setInputFile("dummy.hmm") + pfamDB = self.profilesDB2Map._readProfilesDB() + expectedProfiles1 = Profiles() + expectedProfiles1.name = "fn3" + expectedProfiles1.desc = "Fibronectin type III domain" + expectedProfiles1.length = 84 + expectedProfiles2 = Profiles() + expectedProfiles2.name = "truc" + expectedProfiles2.desc = "" + expectedProfiles2.length = 123 + self.assertEqual(expectedProfiles1.name, pfamDB.get(0).name) + self.assertEqual(expectedProfiles1.desc, pfamDB.get(0).desc) + self.assertEqual(expectedProfiles1.length, pfamDB.get(0).length) + self.assertEqual(expectedProfiles2.name, pfamDB.get(1).name) + self.assertEqual(expectedProfiles2.desc, pfamDB.get(1).desc) + self.assertEqual(expectedProfiles2.length, pfamDB.get(1).length) + os.remove("dummy.hmm") + #empty pfamDB file + file = open( "pfamDBEmpty", "w" ) + file.close() + self.profilesDB2Map.setInputFile("pfamDBEmpty") + pfamDB2 = self.profilesDB2Map._readProfilesDB() + self.assertEquals(None, pfamDB2) + os.system("rm pfamDBEmpty") + + def testRun(self): + f = open("dummy.hmm", "w") + f.write("HMMER2.0 [2.3.2]\n") + f.write("NAME fn3\n") + f.write("ACC PF00041\n") + f.write("DESC Fibronectin type III domain\n") + f.write("LENG 84\n") + f.write("ALPH Amino\n") + f.write("RF no\n") + f.write("CS yes\n") + f.write("MAP yes\n") + f.write("COM hmmbuild -A myhmms fn3.sto\n") + f.write("COM hmmcalibrate myhmms\n") + f.write("NSEQ 108\n") + f.write("DATE Thu Jan 8 17:50:26 2009\n") + f.write("CKSUM 6130\n") + f.write("GA 7.8 -1.0\n") + f.write("TC 7.9 0.1\n") + f.write("XT -8455 -4 -1000 -1000 -8455 -4 -8455 -4 \n") + f.write("NULT -4 -8455\n") + f.write("NULE 595 -1558 85 338 -294 453 -1158 197 249 902 -1085 -142 -21 -313 45 531 201 384 -1998 -644 \n") + f.write("EVD -45.973442 0.237545\n") + f.write("HMM A C D E F G H I K L M N P Q R S T V W Y \n") + f.write(" m->m m->i m->d i->m i->i d->m d->d b->m m->e\n") + f.write("COM hmmcalibrate myhmms\n") + f.write(" -13 * -6756\n") + f.write(" 1 -1698 -4236 -5399 -847 -4220 -2885 -1259 -930 -2438 406 -3428 -4768 3631 -1835 -4773 -1187 -1331 -120 -4666 -1510 1\n") + f.write(" - -150 -501 232 46 -382 399 104 -628 211 -461 -722 274 395 44 95 358 118 -368 -296 -251 \n") + f.write(" C -144 -3400 -12951 -19 -6286 -701 -1378 -13 * \n") + f.write("//\n") + f.write("HMMER2.0 [2.3.2]\n") + f.write("NAME truc\n") + f.write("ACC PF00041\n") + f.write("LENG 123\n") + f.write("ALPH Amino\n") + f.write("RF no\n") + f.write("CS yes\n") + f.write("MAP yes\n") + f.write("COM hmmbuild -A myhmms fn3.sto\n") + f.write("COM hmmcalibrate myhmms\n") + f.write("NSEQ 108\n") + f.write("DATE Thu Jan 8 17:50:26 2009\n") + f.write("CKSUM 6130\n") + f.write("GA 7.8 -1.0\n") + f.write("TC 7.9 0.1\n") + f.write("XT -8455 -4 -1000 -1000 -8455 -4 -8455 -4 \n") + f.write("NULT -4 -8455\n") + f.write("NULE 595 -1558 85 338 -294 453 -1158 197 249 902 -1085 -142 -21 -313 45 531 201 384 -1998 -644 \n") + f.write("EVD -45.973442 0.237545\n") + f.write("HMM A C D E F G H I K L M N P Q R S T V W Y \n") + f.write(" m->m m->i m->d i->m i->i d->m d->d b->m m->e\n") + f.write("COM hmmcalibrate myhmms\n") + f.write(" -13 * -6756\n") + f.write(" 1 -1698 -4236 -5399 -847 -4220 -2885 -1259 -930 -2438 406 -3428 -4768 3631 -1835 -4773 -1187 -1331 -120 -4666 -1510 1\n") + f.write(" - -150 -501 232 46 -382 399 104 -628 211 -461 -722 274 395 44 95 358 118 -368 -296 -251 \n") + f.write(" C -144 -3400 -12951 -19 -6286 -701 -1378 -13 * \n") + f.write("//\n") + f.close() + self.profilesDB2Map.setInputFile("dummy.hmm") + self.profilesDB2Map.setOutputFile("testOutput.map") + self.profilesDB2Map.run() + file = open( "expectedFile", "w" ) + file.write( "fn3\tFibronectin type III domain\t1\t84\n" ) + file.write( "truc\t\t1\t123\n" ) + file.close() + self.assertTrue(FileUtils.are2FilesIdentical("expectedFile", "testOutput.map")) + os.remove("expectedFile") + os.remove("testOutput.map") + os.remove("dummy.hmm") + + +if __name__ == "__main__": + unittest.main() + \ No newline at end of file