Mercurial > repos > yufei-luo > s_mart
view commons/pyRepetUnit/profilesDB/tests/TestProfiles.py @ 18:94ab73e8a190
Uploaded
author | m-zytnicki |
---|---|
date | Mon, 29 Apr 2013 03:20:15 -0400 |
parents | |
children |
line wrap: on
line source
import os import unittest from commons.pyRepetUnit.profilesDB.Profiles import Profiles from commons.core.utils.FileUtils import FileUtils class TestProfiles(unittest.TestCase): def createInputDBFile(self): f = open(self._inputDBFile, "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 2.0;\n") f.write("TC 7.9 2.1;\n") f.write("NC 7.0 1.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 PF00042.012\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("NC 7.8 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() def setUp(self): self.profiles = Profiles() self._inputDBFile = "dummy.hmm" def testRead(self): # atomic profiles file self.createInputDBFile() file = open( self._inputDBFile ) profile = self.profiles profile.read(file) self.assertEqual("fn3",profile.name) self.assertEqual("Fibronectin type III domain", profile.desc) self.assertEqual(84, profile.length) self.assertEqual("PF00041", profile.accNumber) self.assertEqual(2.0, profile.GA_cut_off) profile.read(file) self.assertEqual("truc",profile.name) self.assertEqual("", profile.desc) self.assertEqual(123, profile.length) self.assertEqual("PF00042.012", profile.accNumber) self.assertEqual(-1.0, profile.GA_cut_off) os.system("rm " + self._inputDBFile) # empty file f = open(self._inputDBFile, "w") f.close() file = open( self._inputDBFile ) profile = self.profiles profile.read(file) self.assertEqual(None, profile.name) self.assertEqual(None, profile.desc) self.assertEqual(None, profile.length) self.assertEqual(None, profile.accNumber) self.assertEqual(None, profile.GA_cut_off) os.system("rm " + self._inputDBFile) def testReadAndRetrieve(self): # atomic profiles file self.createInputDBFile() file = open( self._inputDBFile ) profile = self.profiles myProfile = profile.readAndRetrieve(file) self.assertEqual("fn3",profile.name) self.assertEqual("Fibronectin type III domain", profile.desc) self.assertEqual(84, profile.length) self.assertEqual("PF00041", profile.accNumber) self.assertEqual(2.0, profile.GA_cut_off) myProfile2 = profile.readAndRetrieve(file) self.assertEqual("truc",profile.name) self.assertEqual("", profile.desc) self.assertEqual(123, profile.length) self.assertEqual("PF00042.012", profile.accNumber) self.assertEqual(-1.0, profile.GA_cut_off) #I check if retrieve work like I want f = open("retrieveResult", "w") for item in myProfile: f.write(item) for item in myProfile2: f.write(item) f.close() self.assertTrue(FileUtils.are2FilesIdentical("retrieveResult", self._inputDBFile)) os.system("rm " + self._inputDBFile) os.system("rm retrieveResult") # empty file f = open(self._inputDBFile, "w") f.close() file = open( self._inputDBFile ) profile = self.profiles myProfile3 = profile.readAndRetrieve(file) self.assertEqual(None, profile.name) self.assertEqual(None, profile.desc) self.assertEqual(None, profile.length) self.assertEqual(None, profile.accNumber) self.assertEqual(None, profile.GA_cut_off) self.assertEqual(None, myProfile3) os.system("rm " + self._inputDBFile) if __name__ == "__main__": unittest.main()