restraining bonds between het ligand and side chain atoms
Hello, I am trying to introduce a restrain which would limit a bond length between a zinc and its coordinating side chain atom (N2 of His or O of Asn) in my model. I am not sure how to indicate the restraint in a script. Can you help? Thank you!
On 08/03/2009 08:11 PM, Violetta Kivovich wrote: > I am trying to introduce a restrain which would limit a bond length > between a zinc and its coordinating side chain atom (N2 of His or O of > Asn) in my model. I am not sure how to indicate the restraint in a > script. Can you help?
The "adding additional restraints to the defaults" example is closest to what you want to do: http://salilab.org/modeller/9v7/manual/node27.html
That example builds a set of secondary structure restraints (which you don't need), plus a single distance restraint. Let's look at that distance restraint more closely:
rsr.add(forms.gaussian(group=physical.xy_distance, feature=features.distance(at['CA:35'], at['CA:40']), mean=10.0, stdev=0.1))
Going from the inside in, features.distance says that the thing we want to constrain is a distance in angstroms between two atoms (the C-alpha atoms in residues 35 and 40 in this case). Then we say that the form of the restraint on that distance should be a Gaussian (harmonic) function (forms.gaussian) with a mean of 10A and a standard deviation of 0.1A. (The group is not important unless you want to keep track of violations of your restraint, or want to scale the scores.) Finally, rsr.add() adds the restraint to the list of all restraints on that model.
You can find a list of all the features and forms at: http://salilab.org/modeller/9v7/manual/node97.html
In your case, if by "limit" you mean you want the bond length to be maintained near some known value, you can use something very similar to that above. If you mean you want the length to vary freely but not to exceed some known upper limit, you can use forms.upper_bound rather than forms.gaussian.
Note also that if your interaction really is a "bond" (i.e. distance is less than the sum of the radii of the two atoms, or thereabouts) you will get a conflict between your distance restraint and Modeller's van der Waals (soft sphere or Lennard Jones) interaction, which will try to push the two atoms apart. If that is the case, you should exclude this pair of atoms from the nonbonded list by adding an excluded pair with something like rsr.excluded_pairs.append(excluded_atom(at['CA:35'], at['CA:40']))
Finally, note that if the zinc - sidechain interaction already exists in the template, Modeller will most likely maintain that interaction in your model automatically. See: http://salilab.org/modeller/9v7/manual/node65.html The third bullet point on that page may apply in your case.
Ben Webb, Modeller Caretaker
participants (2)
-
Modeller Caretaker
-
Violetta Kivovich