1
2
3
4
5
6 import re
7
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 print "WARNING: Icode at ", residue.get_id()
45 if self.start<=resseq<=self.end:
46 return 1
47 return 0
48
56
57
66
67
68
69 if __name__=="__main__":
70
71 from Bio.PDB.PDBParser import PDBParser
72
73 import sys
74
75 p=PDBParser()
76 s=p.get_structure("scr", sys.argv[1])
77
78 extract(s, " ", 1, 100, "out.pdb")
79