I believe I've covered the issues you've raised, but let me know if not.
I'll also mention this on Twitter to see if anyone has anything to add.

https://github.com/openbabel/documentation/pull/15

On Tue, 11 Feb 2020 at 19:54, Noel O'Boyle <baoille...@gmail.com> wrote:

> Hi Stefano,
>
> When you call GetConfig() you are setting the winding yourself. I see now
> that this wasn't clear. By default, you are saying "give me the atoms in
> clockwise order looking from atom x". In other words, you will never need
> to check the winding of a config - you will always know it - it'll be
> whatever you set when you called GetConfig().
>
> While you can use the first example on the page to iterate through
> OBStereoData and check for cases of ob.OBStereo.TrigonalBipyramidal if you
> want, there's no code in the library to perceive these from 3D structures,
> so they will never exist. The only thing we do have right now beyond tetra
> and cistrans is square planar from SMILES ("Cl[Pt@SP1](F)(I)Br"), and
> even that is not perceived.
>
> Regards,
> - Noel
>
> On Tue, 11 Feb 2020 at 16:20, Stefano Forli <fo...@scripps.edu> wrote:
>
>> Hi Noel,
>> indeed, that was my initial attempt to figure out how to deal with
>> stereogenic centers,
>> and I still didn't have a decent understanding of Id vs Idx.
>> Incidentally, this is particularly clear in your documentation.
>>
>> I have one suggestion.
>> In the section about the inversion of stereochemistry, it would be
>> helpful if the example
>> would show how to read the current winding.
>> For example, would this work?
>>
>> --
>> if config.winding == ob.OBStereo.Clockwise:
>>      print("Clockwise winding")
>> elif config.winding==ob.OBStereo.AntiClockwise:
>>      print("Anti-clockwise winding")
>> else: # elif config.winding==ob.OBStereoUnknownWinding: ?
>>      print("Undefined winding winding")
>> --
>>
>> Also, I know the support for non-tetrahedral chirality is not complete,
>> but I'm wondering
>> if there a way to use the OBStereo.Type with the facade to infer if it is
>> recognized or not.
>>
>> Thanks!
>>
>> S
>>
>> On 2020-02-09 12:36, Noel O'Boyle wrote:
>> > Just a note on the code above. Many years ago Tim replaced the
>> stereochemistry handling,
>> > and I helped a bit. But vestiges of the original handling were left
>> lying around to avoid
>> > breaking the API. I guess we thought we'd remove them sooner than we
>> did, as looking back
>> > it makes no sense to have them lying around confusing everyone.
>> >
>> > Anyway, now with version 3.0, mol.FindChiralCenters() and
>> atom.HasChiralitySpecified()
>> > have both been removed. atom.IsChiral() I kept (though I thought about
>> removing it also)
>> > but changed the code so that it's now a convenience function that just
>> calls the functions
>> > in the modern API.
>> >
>> > And just to note that you should avoid subtracting 1 from the Idx to
>> get the Id. Right now
>> > it works, but we don't guarantee that relationship, and it certainly
>> won't be true if you
>> > delete atoms. Better to get the atom and then call GetId().
>> >
>> > - Noel
>> >
>> > On Thu, 6 Feb 2020 at 06:58, Stefano Forli <fo...@scripps.edu <mailto:
>> fo...@scripps.edu>>
>> > wrote:
>> >
>> >     Noel,
>> >     this is great! I've been following the stereochemistry issue for a
>> while in the mailing
>> >     list and you addressed pretty much all the key aspects.
>> >
>> >     One thing that seems to be missing is the discussion on how to
>> invert chirality. In the
>> >     past I've tried writing code to enumerate all possible enantiomers
>> of molecules with
>> >     unspecified chiral centers or to explicitly invert the defined ones.
>> >
>> >     An issue found while digging into that was that
>> OBAtom.HasChiralitySpecified(), and
>> >     facade.GetTetrahedralStereo(idx).IsSpecified() were giving
>> conflicting results.
>> >
>> >     It's been a while since I tested it, but the code was this:
>> >     ====================
>> >     import pybel
>> >     ob = pybel.ob
>> >     mols = [ 'OCC1OC(O)C(O)C(O)C1O',
>> >              'OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O']
>> >     for smi in mols:
>> >             print "\nMOL->", smi
>> >             m = pybel.readstring('smi', smi).OBMol
>> >             m.FindChiralCenters()
>> >             facade = ob.OBStereoFacade(m)
>> >             for a in ob.OBMolAtomIter(m):
>> >                 if a.IsChiral():
>> >                     idx = a.GetIdx()
>> >                     print "ATOM", a.GetIdx(), a.IsChiral(),
>> >                              a.HasChiralitySpecified(),
>> >                     print
>> facade.GetTetrahedralStereo(idx-1).IsSpecified()
>> >     =======================
>> >
>> >     It would be interesting to test it with the latest development code
>> and see if there are
>> >     still issues.
>> >
>> >     Thas
>> >
>> >     On 2020-02-05 14:51, Geoffrey Hutchison wrote:
>> >      > Yes, Naruki and I were running into confusion when using these
>> classes for the
>> >     distance
>> >      > geometry implementation.
>> >      >
>> >      > The key challenge is that we'd want to save the expected stereo
>> configuration
>> >     around atoms
>> >      > and bonds - and then when generating 3D coordinates, test to see
>> if the generated
>> >      > configurations match the expected ones.
>> >      >
>> >      > I think we can probably go through the code and examine, but if
>> you have
>> >     suggestions on
>> >      > how to save the expected configs for future comparison, that
>> would be great.
>> >      >
>> >      > -Geoff
>> >      >
>> >      >
>> >      >> On Feb 5, 2020, at 4:30 PM, Noel O'Boyle <baoille...@gmail.com
>> >     <mailto:baoille...@gmail.com>
>> >      >> <mailto:baoille...@gmail.com <mailto:baoille...@gmail.com>>>
>> wrote:
>> >      >>
>> >      >> Hi there,
>> >      >>
>> >      >> I've been very slowly pulling together some docs on using the
>> API for stereo. I
>> >     remember
>> >      >> someone on the list a few months back discussing difficulties
>> with this part of the
>> >      >> library - if anyone has any particular examples they'd like me
>> to discuss, this
>> >     would be
>> >      >> a good time to mention them.
>> >      >>
>> >      >> Progress so far:
>> >      >>
>> https://github.com/baoilleach/documentation/blob/stereo/Stereochemistry/stereo.rst
>> >      >>
>> >      >> Regards,
>> >      >> - Noel
>> >      >> _______________________________________________
>> >      >> OpenBabel-Devel mailing list
>> >      >> OpenBabel-Devel@lists.sourceforge.net
>> >     <mailto:OpenBabel-Devel@lists.sourceforge.net>
>> >     <mailto:OpenBabel-Devel@lists.sourceforge.net
>> >     <mailto:OpenBabel-Devel@lists.sourceforge.net>>
>> >      >> https://lists.sourceforge.net/lists/listinfo/openbabel-devel
>> >      >
>> >      >
>> >      >
>> >      > _______________________________________________
>> >      > OpenBabel-Devel mailing list
>> >      > OpenBabel-Devel@lists.sourceforge.net <mailto:
>> OpenBabel-Devel@lists.sourceforge.net>
>> >      > https://lists.sourceforge.net/lists/listinfo/openbabel-devel
>> >      >
>> >
>> >     --
>> >
>> >        Stefano Forli, PhD
>> >
>> >        Assistant Professor
>> >        Center for Computational Structural Biology
>> >
>> >        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: fo...@scripps.edu <mailto:fo...@scripps.edu>
>> >     http://www.scripps.edu/~forli/
>> >
>>
>> --
>>
>>   Stefano Forli, PhD
>>
>>   Assistant Professor
>>   Center for Computational Structural Biology
>>
>>   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: fo...@scripps.edu
>>      http://www.scripps.edu/~forli/
>>
>>
_______________________________________________
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Reply via email to