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

allpy

view lib/allpy_pdb.py @ 138:32b9f4fadd35

allpy_pdb: new fasta id parsing function broken: remove class Pdb
author boris <bnagaev@gmail.com>
date Sun, 24 Oct 2010 17:29:59 +0400
parents ea3113da42ca
children 57c923c2e333
line source
1 import re
3 """
4 Functions to get pdb information from fasta id
5 and to generate fasta id from pdb information
7 pdb information: code, chain, model
9 TODO: same for local pdb files
10 """
12 # for pdb-codes
13 re1 = re.compile(r"(^|[^a-z0-9])(?P<code>[0-9][0-9a-z]{3})([^a-z0-9](?P<chain>[0-9a-z ]?)(?P<model>[^a-z0-9]([0-9]{1,3}))?)?($|[^a-z0-9])")
15 #~ # for files
16 #~ re2 = re.compile(r"(^)([^^]+\.(ent|pdb))([^a-zA-Z0-9]([0-9A-Za-z ]?)([^a-zA-Z0-9]([0-9]{1,3}))?)?$")
18 def std_id(pdb_id, pdb_chain, pdb_model=None):
19 if pdb_model:
20 return "%s_%s_%s" % \
21 (pdb_id.lower().strip(), pdb_chain.upper().strip(), pdb_model)
22 else:
23 return "%s_%s" % \
24 (pdb_id.lower().strip(), pdb_chain.upper().strip())
26 def pdb_id_parse(ID):
27 match = re1.search(ID, re.I)
28 if not match:
29 return None
30 return match.groupdict()
33 #~ def std_id_parse(ID):
34 #~ """
35 #~ Parse standart ID to pdb_code, chain and model
36 #~ """
37 #~ if '.ent' in ID.lower() or '.pdb' in ID.lower():
38 #~ # it is file
39 #~ parseO = self.re2.search(ID) # files
40 #~ else:
41 #~ parseO = self.re1.search(ID.lower()) # pdb codes
42 #~ if not parseO:
43 #~ return None
44 #~ parse = parseO.groups()
45 #~ if len(parse) < 2:
46 #~ return None
47 #~ code = parse[1]
48 #~ chain = ''
49 #~ model = None
50 #~ if len(parse) >= 4:
51 #~ chain = parse[3]
52 #~ if chain:
53 #~ chain = chain.upper()
54 #~ if len(parse) >= 6:
55 #~ if parse[5]:
56 #~ model = parse[5]
57 #~ return code, chain, model