Mercurial > repos > yufei-luo > s_mart
comparison commons/pyRepetUnit/profilesDB/tests/TestProfilesDB2Map.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.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 |
