comparison commons/pyRepetUnit/profilesDB/tests/TestProfilesDB2Map.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
comparison
equal deleted inserted replaced
30:5677346472b5 31:0ab839023fe4
1 import os
2 import unittest
3 from commons.pyRepetUnit.profilesDB.Profiles import Profiles
4 from commons.pyRepetUnit.profilesDB.ProfilesDatabank import ProfilesDatabank
5 import commons.pyRepetUnit.profilesDB.ProfilesDB2Map
6 from commons.core.utils.FileUtils import FileUtils
7
8
9 class TestProfilesDB2Map(unittest.TestCase):
10
11 def setUp(self):
12 self.profilesDB2Map = commons.pyRepetUnit.profilesDB.ProfilesDB2Map.ProfilesDB2Map()
13
14
15 def testWriteProfilesDB(self):
16 # atomic hmmerpfam file
17 profilesDB = ProfilesDatabank()
18 profiles1 = Profiles()
19 profiles1.name = "fn3"
20 profiles1.desc = "Fibronectin type III domain"
21 profiles1.length = 84
22 profilesDB.append( profiles1 )
23 profiles2 = Profiles()
24 profiles2.name = "truc"
25 profiles2.desc = ""
26 profiles2.length = 123
27 profilesDB.append( profiles2 )
28 file = open( "expectedFile", "w" )
29 file.write( "fn3\tFibronectin type III domain\t1\t84\n" )
30 file.write( "truc\t\t1\t123\n" )
31 file.close()
32 self.profilesDB2Map.setOutputFile("testOutput.map")
33 self.profilesDB2Map._writeMapFile(profilesDB)
34 self.assertTrue(FileUtils.are2FilesIdentical("expectedFile", "testOutput.map"))
35 os.remove("expectedFile")
36 os.remove("testOutput.map")
37 #empty profileDB object
38 profilesDB = ProfilesDatabank()
39 self.profilesDB2Map._writeMapFile(profilesDB)
40 self.assertFalse(FileUtils.isRessourceExists("testOutput.map"))
41
42 def testReadProfilesDB(self):
43 # atomic hmmerpfam file
44 f = open("dummy.hmm", "w")
45 f.write("HMMER2.0 [2.3.2]\n")
46 f.write("NAME fn3\n")
47 f.write("ACC PF00041\n")
48 f.write("DESC Fibronectin type III domain\n")
49 f.write("LENG 84\n")
50 f.write("ALPH Amino\n")
51 f.write("RF no\n")
52 f.write("CS yes\n")
53 f.write("MAP yes\n")
54 f.write("COM hmmbuild -A myhmms fn3.sto\n")
55 f.write("COM hmmcalibrate myhmms\n")
56 f.write("NSEQ 108\n")
57 f.write("DATE Thu Jan 8 17:50:26 2009\n")
58 f.write("CKSUM 6130\n")
59 f.write("GA 7.8 -1.0\n")
60 f.write("TC 7.9 0.1\n")
61 f.write("XT -8455 -4 -1000 -1000 -8455 -4 -8455 -4 \n")
62 f.write("NULT -4 -8455\n")
63 f.write("NULE 595 -1558 85 338 -294 453 -1158 197 249 902 -1085 -142 -21 -313 45 531 201 384 -1998 -644 \n")
64 f.write("EVD -45.973442 0.237545\n")
65 f.write("HMM A C D E F G H I K L M N P Q R S T V W Y \n")
66 f.write(" m->m m->i m->d i->m i->i d->m d->d b->m m->e\n")
67 f.write("COM hmmcalibrate myhmms\n")
68 f.write(" -13 * -6756\n")
69 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")
70 f.write(" - -150 -501 232 46 -382 399 104 -628 211 -461 -722 274 395 44 95 358 118 -368 -296 -251 \n")
71 f.write(" C -144 -3400 -12951 -19 -6286 -701 -1378 -13 * \n")
72 f.write("//\n")
73 f.write("HMMER2.0 [2.3.2]\n")
74 f.write("NAME truc\n")
75 f.write("ACC PF00041\n")
76 f.write("LENG 123\n")
77 f.write("ALPH Amino\n")
78 f.write("RF no\n")
79 f.write("CS yes\n")
80 f.write("MAP yes\n")
81 f.write("COM hmmbuild -A myhmms fn3.sto\n")
82 f.write("COM hmmcalibrate myhmms\n")
83 f.write("NSEQ 108\n")
84 f.write("DATE Thu Jan 8 17:50:26 2009\n")
85 f.write("CKSUM 6130\n")
86 f.write("GA 7.8 -1.0\n")
87 f.write("TC 7.9 0.1\n")
88 f.write("XT -8455 -4 -1000 -1000 -8455 -4 -8455 -4 \n")
89 f.write("NULT -4 -8455\n")
90 f.write("NULE 595 -1558 85 338 -294 453 -1158 197 249 902 -1085 -142 -21 -313 45 531 201 384 -1998 -644 \n")
91 f.write("EVD -45.973442 0.237545\n")
92 f.write("HMM A C D E F G H I K L M N P Q R S T V W Y \n")
93 f.write(" m->m m->i m->d i->m i->i d->m d->d b->m m->e\n")
94 f.write("COM hmmcalibrate myhmms\n")
95 f.write(" -13 * -6756\n")
96 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")
97 f.write(" - -150 -501 232 46 -382 399 104 -628 211 -461 -722 274 395 44 95 358 118 -368 -296 -251 \n")
98 f.write(" C -144 -3400 -12951 -19 -6286 -701 -1378 -13 * \n")
99 f.write("//\n")
100 f.close()
101 self.profilesDB2Map.setInputFile("dummy.hmm")
102 pfamDB = self.profilesDB2Map._readProfilesDB()
103 expectedProfiles1 = Profiles()
104 expectedProfiles1.name = "fn3"
105 expectedProfiles1.desc = "Fibronectin type III domain"
106 expectedProfiles1.length = 84
107 expectedProfiles2 = Profiles()
108 expectedProfiles2.name = "truc"
109 expectedProfiles2.desc = ""
110 expectedProfiles2.length = 123
111 self.assertEqual(expectedProfiles1.name, pfamDB.get(0).name)
112 self.assertEqual(expectedProfiles1.desc, pfamDB.get(0).desc)
113 self.assertEqual(expectedProfiles1.length, pfamDB.get(0).length)
114 self.assertEqual(expectedProfiles2.name, pfamDB.get(1).name)
115 self.assertEqual(expectedProfiles2.desc, pfamDB.get(1).desc)
116 self.assertEqual(expectedProfiles2.length, pfamDB.get(1).length)
117 os.remove("dummy.hmm")
118 #empty pfamDB file
119 file = open( "pfamDBEmpty", "w" )
120 file.close()
121 self.profilesDB2Map.setInputFile("pfamDBEmpty")
122 pfamDB2 = self.profilesDB2Map._readProfilesDB()
123 self.assertEquals(None, pfamDB2)
124 os.system("rm pfamDBEmpty")
125
126 def testRun(self):
127 f = open("dummy.hmm", "w")
128 f.write("HMMER2.0 [2.3.2]\n")
129 f.write("NAME fn3\n")
130 f.write("ACC PF00041\n")
131 f.write("DESC Fibronectin type III domain\n")
132 f.write("LENG 84\n")
133 f.write("ALPH Amino\n")
134 f.write("RF no\n")
135 f.write("CS yes\n")
136 f.write("MAP yes\n")
137 f.write("COM hmmbuild -A myhmms fn3.sto\n")
138 f.write("COM hmmcalibrate myhmms\n")
139 f.write("NSEQ 108\n")
140 f.write("DATE Thu Jan 8 17:50:26 2009\n")
141 f.write("CKSUM 6130\n")
142 f.write("GA 7.8 -1.0\n")
143 f.write("TC 7.9 0.1\n")
144 f.write("XT -8455 -4 -1000 -1000 -8455 -4 -8455 -4 \n")
145 f.write("NULT -4 -8455\n")
146 f.write("NULE 595 -1558 85 338 -294 453 -1158 197 249 902 -1085 -142 -21 -313 45 531 201 384 -1998 -644 \n")
147 f.write("EVD -45.973442 0.237545\n")
148 f.write("HMM A C D E F G H I K L M N P Q R S T V W Y \n")
149 f.write(" m->m m->i m->d i->m i->i d->m d->d b->m m->e\n")
150 f.write("COM hmmcalibrate myhmms\n")
151 f.write(" -13 * -6756\n")
152 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")
153 f.write(" - -150 -501 232 46 -382 399 104 -628 211 -461 -722 274 395 44 95 358 118 -368 -296 -251 \n")
154 f.write(" C -144 -3400 -12951 -19 -6286 -701 -1378 -13 * \n")
155 f.write("//\n")
156 f.write("HMMER2.0 [2.3.2]\n")
157 f.write("NAME truc\n")
158 f.write("ACC PF00041\n")
159 f.write("LENG 123\n")
160 f.write("ALPH Amino\n")
161 f.write("RF no\n")
162 f.write("CS yes\n")
163 f.write("MAP yes\n")
164 f.write("COM hmmbuild -A myhmms fn3.sto\n")
165 f.write("COM hmmcalibrate myhmms\n")
166 f.write("NSEQ 108\n")
167 f.write("DATE Thu Jan 8 17:50:26 2009\n")
168 f.write("CKSUM 6130\n")
169 f.write("GA 7.8 -1.0\n")
170 f.write("TC 7.9 0.1\n")
171 f.write("XT -8455 -4 -1000 -1000 -8455 -4 -8455 -4 \n")
172 f.write("NULT -4 -8455\n")
173 f.write("NULE 595 -1558 85 338 -294 453 -1158 197 249 902 -1085 -142 -21 -313 45 531 201 384 -1998 -644 \n")
174 f.write("EVD -45.973442 0.237545\n")
175 f.write("HMM A C D E F G H I K L M N P Q R S T V W Y \n")
176 f.write(" m->m m->i m->d i->m i->i d->m d->d b->m m->e\n")
177 f.write("COM hmmcalibrate myhmms\n")
178 f.write(" -13 * -6756\n")
179 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")
180 f.write(" - -150 -501 232 46 -382 399 104 -628 211 -461 -722 274 395 44 95 358 118 -368 -296 -251 \n")
181 f.write(" C -144 -3400 -12951 -19 -6286 -701 -1378 -13 * \n")
182 f.write("//\n")
183 f.close()
184 self.profilesDB2Map.setInputFile("dummy.hmm")
185 self.profilesDB2Map.setOutputFile("testOutput.map")
186 self.profilesDB2Map.run()
187 file = open( "expectedFile", "w" )
188 file.write( "fn3\tFibronectin type III domain\t1\t84\n" )
189 file.write( "truc\t\t1\t123\n" )
190 file.close()
191 self.assertTrue(FileUtils.are2FilesIdentical("expectedFile", "testOutput.map"))
192 os.remove("expectedFile")
193 os.remove("testOutput.map")
194 os.remove("dummy.hmm")
195
196
197 if __name__ == "__main__":
198 unittest.main()
199