Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/allpy/file/3d40d7b9a123/lib/monomer.py
Дата изменения: Unknown
Дата индексирования: Sun Feb 3 23:27:43 2013
Кодировка:

Поисковые слова: m 81
allpy: 3d40d7b9a123 lib/monomer.py

allpy

view lib/monomer.py @ 98:3d40d7b9a123

lib::project::muscle_align project::save_fasta sequence::operator== fixes test -- alignment done
author boris <bnagaev@gmail.com>
date Wed, 20 Oct 2010 23:33:29 +0400
parents c0689204093e
children 5091fef2ad88
line source
1 #!/usr/bin/python
3 from allpy_data.AAdict import AAdict
4 import Bio.PDB
6 index_code3 = {}
7 index_code1_protein = {}
8 index_name = {}
11 class MonomerType(object):
12 """
13 Monomer type
14 name -- string like "Valine"
15 code1 -- one-letter code (in upper case)
16 code3 -- three-letter code (in upper case)
17 is_modified -- True of False
18 """
19 def __init__(self, name, code1, code3, is_modified=False):
20 self.name = name.capitalize()
21 self.code1 = code1.upper()
22 self.code3 = code3.upper()
23 self.is_modified = bool(is_modified) # ugly
25 index_name[self.name] = self
26 index_code3[self.code3] = self
28 @staticmethod
29 def from_code3(code3):
30 return index_code3[code3.upper()]
31 @staticmethod
32 def from_name(name):
33 return index_name[name.capitalize()]
37 # TODO -- create all MonomerTypes
40 class Monomer(object):
41 """
42 monomer_type -- link to monomer_type
43 pdb_residues -- dictionary like {Bio.PDB.Chain: Bio.PDB.Residue}
44 """
45 def __init__(self, monomer_type):
46 self.monomer_type = monomer_type
47 self.pdb_residue = []
49 def pdb_residue_add(self, pdb_chain, pdb_residue):
50 self.pdb_residue[pdb_chain] = pdb_residue
52 def __eq__(self, other):
53 return self.monomer_type == other.monomer_type
57 class AminoAcidType(MonomerType):
58 def __init__(self, name, code1, code3, is_modified=False):
59 MonomerType.__init__(self, name, code1, code3, is_modified)
60 if not is_modified:
61 index_code1_protein[self.code1] = self
63 @staticmethod
64 def from_code1(code1):
65 return index_code1_protein[code1.upper()]
66 def instance(self):
67 return AminoAcid(self)
70 class AminoAcid(Monomer):
71 """
72 Amino acid
73 """
74 pass
77 # prepare all aminoacids
79 for code3, data in AAdict.items():
80 code1, m_type, is_modified, none, name = data
81 if m_type == 'p':
82 aat = AminoAcidType(name, code1, code3, is_modified)