annotate commons/pyRepetUnit/profilesDB/tests/TestProfiles.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
1 import os
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
2 import unittest
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
3 from commons.pyRepetUnit.profilesDB.Profiles import Profiles
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
4 from commons.core.utils.FileUtils import FileUtils
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
5
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
7 class TestProfiles(unittest.TestCase):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
8
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
9 def createInputDBFile(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
10 f = open(self._inputDBFile, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
11 f.write("HMMER2.0 [2.3.2]\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
12 f.write("NAME fn3\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
13 f.write("ACC PF00041\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
14 f.write("DESC Fibronectin type III domain\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
15 f.write("LENG 84\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
16 f.write("ALPH Amino\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
17 f.write("RF no\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
18 f.write("CS yes\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
19 f.write("MAP yes\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
20 f.write("COM hmmbuild -A myhmms fn3.sto\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
21 f.write("COM hmmcalibrate myhmms\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
22 f.write("NSEQ 108\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
23 f.write("DATE Thu Jan 8 17:50:26 2009\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
24 f.write("CKSUM 6130\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
25 f.write("GA 7.8 2.0;\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
26 f.write("TC 7.9 2.1;\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
27 f.write("NC 7.0 1.1;\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
28 f.write("XT -8455 -4 -1000 -1000 -8455 -4 -8455 -4 \n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
29 f.write("NULT -4 -8455\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
30 f.write("NULE 595 -1558 85 338 -294 453 -1158 197 249 902 -1085 -142 -21 -313 45 531 201 384 -1998 -644 \n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
31 f.write("EVD -45.973442 0.237545\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
32 f.write("HMM A C D E F G H I K L M N P Q R S T V W Y \n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
33 f.write(" m->m m->i m->d i->m i->i d->m d->d b->m m->e\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
34 f.write("COM hmmcalibrate myhmms\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
35 f.write(" -13 * -6756\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
36 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")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
37 f.write(" - -150 -501 232 46 -382 399 104 -628 211 -461 -722 274 395 44 95 358 118 -368 -296 -251 \n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
38 f.write(" C -144 -3400 -12951 -19 -6286 -701 -1378 -13 * \n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
39 f.write("//\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
40 f.write("HMMER2.0 [2.3.2]\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
41 f.write("NAME truc\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
42 f.write("ACC PF00042.012\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
43 f.write("LENG 123\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
44 f.write("ALPH Amino\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
45 f.write("RF no\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
46 f.write("CS yes\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
47 f.write("MAP yes\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
48 f.write("COM hmmbuild -A myhmms fn3.sto\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
49 f.write("COM hmmcalibrate myhmms\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
50 f.write("NSEQ 108\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
51 f.write("DATE Thu Jan 8 17:50:26 2009\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
52 f.write("CKSUM 6130\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
53 f.write("GA 7.8 -1.0;\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
54 f.write("TC 7.9 0.1;\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
55 f.write("NC 7.8 0.1;\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
56 f.write("XT -8455 -4 -1000 -1000 -8455 -4 -8455 -4 \n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
57 f.write("NULT -4 -8455\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
58 f.write("NULE 595 -1558 85 338 -294 453 -1158 197 249 902 -1085 -142 -21 -313 45 531 201 384 -1998 -644 \n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
59 f.write("EVD -45.973442 0.237545\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
60 f.write("HMM A C D E F G H I K L M N P Q R S T V W Y \n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
61 f.write(" m->m m->i m->d i->m i->i d->m d->d b->m m->e\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
62 f.write("COM hmmcalibrate myhmms\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
63 f.write(" -13 * -6756\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
64 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")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
65 f.write(" - -150 -501 232 46 -382 399 104 -628 211 -461 -722 274 395 44 95 358 118 -368 -296 -251 \n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
66 f.write(" C -144 -3400 -12951 -19 -6286 -701 -1378 -13 * \n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
67 f.write("//\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
68 f.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
69
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
70
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
71 def setUp(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
72 self.profiles = Profiles()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
73 self._inputDBFile = "dummy.hmm"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
74
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
75
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
76 def testRead(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
77 # atomic profiles file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
78 self.createInputDBFile()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
79 file = open( self._inputDBFile )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
80 profile = self.profiles
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
81 profile.read(file)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
82 self.assertEqual("fn3",profile.name)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
83 self.assertEqual("Fibronectin type III domain", profile.desc)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
84 self.assertEqual(84, profile.length)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
85 self.assertEqual("PF00041", profile.accNumber)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
86 self.assertEqual(2.0, profile.GA_cut_off)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
87 profile.read(file)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
88 self.assertEqual("truc",profile.name)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
89 self.assertEqual("", profile.desc)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
90 self.assertEqual(123, profile.length)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
91 self.assertEqual("PF00042.012", profile.accNumber)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
92 self.assertEqual(-1.0, profile.GA_cut_off)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
93 os.system("rm " + self._inputDBFile)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
94 # empty file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
95 f = open(self._inputDBFile, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
96 f.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
97 file = open( self._inputDBFile )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
98 profile = self.profiles
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
99 profile.read(file)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
100 self.assertEqual(None, profile.name)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
101 self.assertEqual(None, profile.desc)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
102 self.assertEqual(None, profile.length)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
103 self.assertEqual(None, profile.accNumber)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
104 self.assertEqual(None, profile.GA_cut_off)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
105 os.system("rm " + self._inputDBFile)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
106
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
107
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
108 def testReadAndRetrieve(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
109 # atomic profiles file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
110 self.createInputDBFile()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
111 file = open( self._inputDBFile )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
112 profile = self.profiles
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
113 myProfile = profile.readAndRetrieve(file)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
114 self.assertEqual("fn3",profile.name)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
115 self.assertEqual("Fibronectin type III domain", profile.desc)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
116 self.assertEqual(84, profile.length)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
117 self.assertEqual("PF00041", profile.accNumber)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
118 self.assertEqual(2.0, profile.GA_cut_off)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
119 myProfile2 = profile.readAndRetrieve(file)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
120 self.assertEqual("truc",profile.name)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
121 self.assertEqual("", profile.desc)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
122 self.assertEqual(123, profile.length)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
123 self.assertEqual("PF00042.012", profile.accNumber)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
124 self.assertEqual(-1.0, profile.GA_cut_off)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
125 #I check if retrieve work like I want
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
126 f = open("retrieveResult", "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
127 for item in myProfile:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
128 f.write(item)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
129 for item in myProfile2:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
130 f.write(item)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
131 f.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
132 self.assertTrue(FileUtils.are2FilesIdentical("retrieveResult", self._inputDBFile))
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
133 os.system("rm " + self._inputDBFile)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
134 os.system("rm retrieveResult")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
135 # empty file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
136 f = open(self._inputDBFile, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
137 f.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
138 file = open( self._inputDBFile )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
139 profile = self.profiles
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
140 myProfile3 = profile.readAndRetrieve(file)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
141 self.assertEqual(None, profile.name)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
142 self.assertEqual(None, profile.desc)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
143 self.assertEqual(None, profile.length)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
144 self.assertEqual(None, profile.accNumber)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
145 self.assertEqual(None, profile.GA_cut_off)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
146 self.assertEqual(None, myProfile3)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
147 os.system("rm " + self._inputDBFile)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
148
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
149
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
150 if __name__ == "__main__":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
151 unittest.main()