[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [modeller_usage] restraining bonds between het ligand and side chain atoms



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
--
             http://www.salilab.org/modeller/
Modeller mail list: http://salilab.org/mailman/listinfo/modeller_usage