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