I have two proteins with interacting side chains. I would like to make
distance restraints between their Glutamine atoms to ensure that they
are a fixed distance apart. To do so I used the following code during
optimization:
mdl.restraints.add(forms.upper_bound(group=physical.sd_sd_distance,
feature=features.distance(a['HE21:2:A'], a['OE1:24:B']),
mean=1.9, stdev=0.3))
That won't keep the atoms a fixed distance apart (for that you want
forms.harmonic); instead it will try to make sure they don't get any
further apart than that distance.
However, no change has been made to these atoms in the optimized PDB
file. Furthermore, the log file shows that all 72 restraints of this
type that were applied have violations.
It looks as though the program has noted that restraints need to be
made, but then does nothing to make these restraints.
If the restraints are violated, then by definition they are being
calculated (unless you are optimizing a different set of atoms to that
you're calculating the final energy on). You can change the weights or
simply reduce the standard deviation of these restraints to have them
win out over the stereochemistry. You should also check the radii of the
atoms you're trying to have interact - if you're trying to pull them
together closer than the sum of their radii then the soft sphere (van
der Waals) interaction is going to fight against your restraints. In
that case you can add an excluded pair to prevent the van der Waals
interaction from being calculated; e.g.