Ring conformations from builder

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Ring conformations from builder

Stefano Forli
I've noticed a that when building unsaturated  6-membered rings with attached groups (e.g.
"CC1CCC(C)CC1"), the result will have the groups systematically placed in axial position,
instead of equatorial.

I've tried looking into it to propose a possible solution, but I couldn't pin exactly
where this happens in the code.

I know that the ring conformation is built from the fragments.txt, but it that file there
isn't any information about atoms other than those constituting the ring (as far as I can
tell).

I suspect the problem might be in builder.cpp, where the math for the bond angles is
computed, but where exactly I have no idea.

The issue becomes a problem when there are more than a handful of molecules to process,
because geometries must be corrected by hand (unless there is an ob.method that can be
used for that).

Any insights on how to deal with it?

Thanks,

S





--

  Stefano Forli, PhD

  Assistant Professor
  Dept. of Integrative Structural
  and Computational Biology, MB-112A
  The Scripps Research Institute
  10550  North Torrey Pines Road
  La Jolla,  CA 92037-1000,  USA.

     tel: +1 (858)784-2055
     fax: +1 (858)784-2860
     email: [hidden email]
     http://www.scripps.edu/~forli/


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenBabel-Devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openbabel-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ring conformations from builder

Geoff Hutchison
I've tried looking into it to propose a possible solution, but I couldn't pin exactly where this happens in the code.
...
I suspect the problem might be in builder.cpp, where the math for the bond angles is computed, but where exactly I have no idea.


It's most likely here in GetNewBondVector()

I suspect that the code that attempts to place alkyl chains correctly is the culprit - can't find the exact line.

I've been playing with the DG and knowledge-based DG methods in RDKit more and would love to have an OB equivalent. Greg's code is definitely better for 3D structure generation of organics. (Not sure if they've handled all the square planar, octahedral, etc. cases that are in OB, though.)

-Geoff

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenBabel-Devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openbabel-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ring conformations from builder

Stefano Forli
That's where I was looking at, but I wasn't sure.

I think the all-axial groups are the result of trying to configure as many bonds as trans
as possible.

I've fiddled with RdKit for a while, and their geometry building method is extremely fast,
thanks to all the lookup they do, I guess.

By looking at the current code, it seems implementing the new DG method wouldn't be
incompatible with the perception of higher-order bond geometries.

Although, following up on the old discussion started by Noel, I'm suspecting that specific
section of the code could benefit by being rewritten to use SMARTS (i.e., generic
topologies of 5-bonded atoms), and remove all the "if" statements.

Thanks for the reply, Geoff.

S

On 07/26/2017 01:57 PM, Geoffrey Hutchison wrote:

>> I've tried looking into it to propose a possible solution, but I couldn't pin exactly
>> where this happens in the code.
> ...
>> I suspect the problem might be in builder.cpp, where the math for the bond angles is
>> computed, but where exactly I have no idea.
>
>
> It's most likely here in GetNewBondVector()
> https://github.com/openbabel/openbabel/blob/master/src/builder.cpp#L150
>
> I suspect that the code that attempts to place alkyl chains correctly is the culprit -
> can't find the exact line.
>
> I've been playing with the DG and knowledge-based DG methods in RDKit more and would love
> to have an OB equivalent. Greg's code is definitely better for 3D structure generation of
> organics. (Not sure if they've handled all the square planar, octahedral, etc. cases that
> are in OB, though.)
>
> -Geoff

--

  Stefano Forli, PhD

  Assistant Professor
  Dept. of Integrative Structural
  and Computational Biology, MB-112A
  The Scripps Research Institute
  10550  North Torrey Pines Road
  La Jolla,  CA 92037-1000,  USA.

     tel: +1 (858)784-2055
     fax: +1 (858)784-2860
     email: [hidden email]
     http://www.scripps.edu/~forli/


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenBabel-Devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openbabel-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ring conformations from builder

Geoff Hutchison
> I think the all-axial groups are the result of trying to configure as many bonds as trans as possible.

Yes, exactly. So there needs to be a special case for ring bonds.

> By looking at the current code, it seems implementing the new DG method wouldn't be incompatible with the perception of higher-order bond geometries.

No, not at all.

> Although, following up on the old discussion started by Noel, I'm suspecting that specific section of the code could benefit by being rewritten to use SMARTS (i.e., generic topologies of 5-bonded atoms), and remove all the "if" statements.

The code probably needs better commenting, but I don't think that using SMARTS would be the way to go.

-Geoff
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenBabel-Devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openbabel-devel
Loading...