Hi Katrina,

you may add multiple constraints, of the same (e.g., positional) or different kinds. Each of them will result in an additional force field contribution being added to your system. So you may, for example, identify a group that you wish to constrain by a SMARTS pattern, identify the relevant atom indices with GetSubstructMatch(), and add a position constraint for each of them calling ff.MMFFAddPositionConstraint() in a for loop.

Hope that helps,
p.

On 07/26/17 17:32, Katrina Lexa wrote:
Thanks Greg!

Thanks Francois for your response.

Where I’m struggling is with generating locally restrained conformations. Essentially, my question is about this line of code:
ff.MMFFAddPositionConstraint(1, 0.3, 1.0e5)
My reading of the code page is that the first variable, 1, describes which atom the position constraint is being added to. So in this case, it’s being added to atom 1. What if I want to add the constraint to all (or some) of the atoms in my input compound?

On July 25, 2017 at 8:47:49 PM, Greg Landrum (greg.land...@gmail.com <mailto:greg.land...@gmail.com>) wrote:

Hi Katrina,

welcome to the RDKit community!

On Mon, Jul 24, 2017 at 10:45 PM, Katrina Lexa <kl...@umich.edu <mailto:kl...@umich.edu>> wrote:


    I'm relatively new to RDKit, so I apologize for what may be a
    silly question. I'd like to generate a set of local minimum
    conformations around my input conformation, using a set of
    defined flat bottom potentials (0.2, 0.6, 1.0, and 1.4), in order
    to better compare my bound conformation with its unrestrained
    minimum.


    Ultimately, I'd like to write a script that reads in one input 3D
    conformation and prints out the energy and rmsd (and structure)
    of those local minimums as well as the lowest energy unrestrained
    conformation.

    There are plenty of examples of conformer generation scripts for
    RDKit, but I'm struggling with the constraints piece. I see the
    MMFFFixedAtoms & MMFFPositionConstraints code, but based on the
    code it's not obvious to me whether it's possible to implement
    either as a constraint on all atoms in my input molecule. Is
    there a way or is there another route I should be taking?


Apologies for asking what may be an obvious clarification question, but what are you planning on constraining? It sounds like you want to attach "springs" (well, flat bottom potentials) between the atoms in your generated conformations and the corresponding atoms in a reference conformation and calculate the energy of that system. Is that right?

If so, you can do this by generating a force field for the molecule with your generated conformations, adding fixed points corresponding to your reference conformation, and then adding distance contraints with the appropriate min (I guess 0) and max values and reasonable force constants. Subtracting the energy of the generated conformation from the energy of this full system gives you the energy contributed by the constraints.

I can provide a bit of sample code showing how to do this, but I want to be sure that this is actually what you're asking for.

-greg




------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot


_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to