view allpy/monomer.py @ 242:35537fc8d5be
allpy: correct unworking code
author |
boris <bnagaev@gmail.com> |
date |
Fri, 03 Dec 2010 22:54:48 +0300 |
parents |
346a6cd4fc1d |
children |
5caae97bacdf |
line source
3 from allpy_data.AAdict import AAdict
7 index_code1_protein = {}
8 index_code1_nucleotide = {}
11 class MonomerType(object):
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
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
29 def from_code3(code3):
30 return index_code3[code3.upper()]
33 return index_name[name.capitalize()]
36 def from_pdb_residue(pdb_residue):
37 return MonomerType.from_code3(pdb_residue.get_resname())
40 def __eq__(self, other):
41 return self.code1 == other.code1
43 def __ne__(self, other):
44 return not (self == other)
47 class Monomer(object):
50 type -- link to MonomerType object
52 def __init__(self, monomer_type):
53 self.type = monomer_type
55 def __eq__(self, other):
56 return self.type == other.type
58 def __ne__(self, other):
59 return not (self == other)
61 class AminoAcidType(MonomerType):
62 def __init__(self, name, code1, code3, is_modified=False):
63 MonomerType.__init__(self, name, code1, code3, is_modified)
65 index_code1_protein[self.code1] = self
68 def from_code1(code1):
69 return index_code1_protein[code1.upper()]
71 """ Returns new AminoAcid object of this type """
72 return AminoAcid(self)
74 class DNAType(MonomerType):
75 def __init__(self, name, code1, code3, is_modified=False):
76 MonomerType.__init__(self, name, code1, code3, is_modified)
78 index_code1_nucleotide[self.code1] = self
81 def from_code1(code1):
82 return index_code1_nucleotide[code1.upper()]
84 """ Returns new AminoAcid object of this type """
87 class AminoAcid(Monomer):
91 class DNABase(Monomer):
92 """ Deoxyribonucleic acid """
95 class RNABase(Monomer):
96 """ Ribonucleic acid """
99 # prepare all aminoacids
101 for code3, data in AAdict.items():
102 code1, m_type, is_modified, none, name = data
104 AminoAcidType(name, code1, code3, is_modified)
106 DNAType(name, code1, code3, is_modified)
107 del code3, data, code1, m_type, is_modified, none, name