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
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}))?)?$")
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