On 3/30/10 1:57 AM, abdullah ahmed wrote: > 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.
mdl.restraints.excluded_pairs.append(excluded_pair(a['HE21:2:A'], a['OE1:24:B']))
Ben Webb, Modeller Caretaker