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