1
2
3
4
5
6 import re
7 import warnings
8
9 from Bio.PDB.PDBIO import PDBIO
10
11
12 _hydrogen=re.compile("[123 ]*H.*")
13
14
16 """
17 Only accepts residues with right chainid
18 and between start and end. Remove hydrogens, waters and ligands.
19 Only use model 0 by default.
20 """
21 - def __init__(self, chain_id, start, end, model_id=0):
26
28
29 if model.get_id()==self.model_id:
30 return 1
31 return 0
32
37
39
40 hetatm_flag, resseq, icode=residue.get_id()
41 if hetatm_flag!=" ":
42
43 return 0
44 if icode!=" ":
45 warnings.warn("WARNING: Icode at %s" % residue.get_id(),
46 RuntimeWarning)
47 if self.start<=resseq<=self.end:
48 return 1
49 return 0
50
58
59
68
69
70
71 if __name__=="__main__":
72
73 from Bio.PDB.PDBParser import PDBParser
74
75 import sys
76
77 p=PDBParser()
78 s=p.get_structure("scr", sys.argv[1])
79
80 extract(s, " ", 1, 100, "out.pdb")
81