=Explanation=
For a given directory with PDB files in it, the following code will output, for each PDB, the bound disulfide bond lengths like this:
1alk.pdb
A CYS 168 SG
A CYS 178 SG
1.975
A CYS 286 SG
A CYS 336 SG
1.995
B CYS 168 SG
B CYS 178 SG
1.996
B CYS 286 SG
B CYS 336 SG
2.032
1btu.pdb
CYS 42 SG
CYS 58 SG
2.039
CYS 136 SG
CYS 201 SG
2.031
CYS 168 SG
CYS 182 SG
2.001
CYS 191 SG
CYS 220 SG
2.019
...
Bound Disulfides
<source lang="python">
from pymol import cmd
from glob import glob
for file in glob("*.pdb"):
print file
cmd.load(file,'prot')
for a in cmd.index("elem s and bound_to elem s"):
if cmd.select("s1","%s`%d"%a) and \
cmd.select("s2","elem s and bound_to %s`%d"%a):
if cmd.select("(s1|s2) and not ?skip"):
cmd.iterate("s1|s2","print ' ',chain,resn,resi,name")
print ' ',round(cmd.dist("tmp","s1","s2"),3)
cmd.select("skip","s1|s2|?skip")
..→