Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/allpy/file/7a87d55efc17/lib/allpy_pdb.py
Дата изменения: Unknown
Дата индексирования: Mon Feb 4 04:24:23 2013
Кодировка:
allpy: 7a87d55efc17 lib/allpy_pdb.py

allpy

view lib/allpy_pdb.py @ 104:7a87d55efc17

lib: renamed monomer_type to either type or monomer_kind where appropriate
author Daniil Alexeyevsky <me.dendik@gmail.com>
date Thu, 21 Oct 2010 15:22:36 +0400
parents 65c3e3aad2e4
children 32b9f4fadd35
line source
1 import re
3 # for pdb-codes
4 re1 = re.compile(r"(^|[^a-z0-9])([0-9][0-9a-z]{3})([^a-z0-9]([0-9a-z ]?)([^a-z0-9]([0-9]{1,3}))?)?($|[^a-z0-9])")
6 # for files
7 re2 = re.compile(r"(^)([^^]+\.(ent|pdb))([^a-zA-Z0-9]([0-9A-Za-z ]?)([^a-zA-Z0-9]([0-9]{1,3}))?)?$")
9 class Pdb(object):
10 """
11 """
12 @staticmethod
13 def std_id(pdb_id, pdb_chain, pdb_model=None):
14 if pdb_model:
15 return "%s_%s_%s" % \
16 (pdb_id.lower().strip(), pdb_chain.upper().strip(), pdb_model)
17 else:
18 return "%s_%s" % \
19 (pdb_id.lower().strip(), pdb_chain.upper().strip())
22 def std_id_parse(ID):
23 """
24 Parse standart ID to pdb_code, chain and model
25 """
26 if '.ent' in ID.lower() or '.pdb' in ID.lower():
27 # it is file
28 parseO = self.re2.search(ID) # files
29 else:
30 parseO = self.re1.search(ID.lower()) # pdb codes
31 if not parseO:
32 return None
33 parse = parseO.groups()
34 if len(parse) < 2:
35 return None
36 code = parse[1]
37 chain = ''
38 model = None
39 if len(parse) >= 4:
40 chain = parse[3]
41 if chain:
42 chain = chain.upper()
43 if len(parse) >= 6:
44 if parse[5]:
45 model = parse[5]
46 return code, chain, model
53 #~ class Coordinates(object):
54 """
55 float x, y, z
57 Coordinates(x, y, z) -> Coordinates
58 Coordinates() -> new Coordinates
59 """