Setting stereochemistry

62 views
Skip to first unread message

Corey Dow-Hygelund

unread,
Aug 3, 2011, 12:37:27 PM8/3/11
to indigo-dev
Hi,

From the API documentation I see there are "Get" methods for accessing
the stereochemistry information of a molecule. Is there anyway to add
this information into a instrumented molecule? I am building
molecules from scratch, and am missing how to create wedge bonds,
etc... within Indigo.

Thanks for the help!

Corey

Mikhail Rybalkin

unread,
Aug 3, 2011, 5:32:47 PM8/3/11
to indigo-dev
Hello Corey,

Unfortunately, such functions are not implemented yet, but I think it
can be added in a short time.

But there are some difficulties with setting stereochemistry might
appear. Stereocenters are independent of coordinate representation,
and it is stored as right handed stereopyramid. You can load molecules
from SMILES without coordinates, but SMILES notation defines
stereocenters and cis-trans bonds.

I see here 3 cases that should be taken into account during
implementation:
1. If molecules doesn't have coordinates then to add a stereocenter
you need to specify atoms in a right handed stereopyramid. After that
layout() function will compute coordinates and stereobonds will be
marked as 'up' or 'down'.
2. If molecule has 2D coordinates, then you can mark bonds as 'up',
'down', 'either'. Then after defining all bond marks you can call
buildStereo (not implemented) function to construct actual
stereocenters (right handed stereopyramids). It would also be possible
to define right handed stereopyramid and after that call markBonds()
method to get actual 'up', 'down', or 'either' on some bonds.
3. If molecule has 3D coordinates, then the only one possibility would
be to call buildStereo method to build stereoinformation from 3D
coordinates. 'up'/'down' marks are not relevant in this case.

This is what can be implemented in a short time, because internally
such functionality already exists, but there is no API for it. I would
be great if you explain your scenario: do you have 2D coordinates? Is
presented approach with 3 cases acceptable? Or maybe you can suggest
better approach to set stereocenters?

With best regards,
Mikhail Rybalkin

Corey Dow-Hygelund

unread,
Aug 11, 2011, 2:19:52 PM8/11/11
to indigo-dev
Hi Mikhail,

Thank you for your helpful reply! I didn't get the Google Groups
response, which is curious, because I have received them in the past.
I will look into my email settings.

To answer your question concerning my "use case", I am parsing
ChemDraw CDX/CDXML files into IndigoObjects to generate MOL files,
canonical smiles strings, etc... These files contain stereochemistry
information at the bond level. I am not directly using the coordinate
information, because I am using the layout functionality of Indigo.
However, the stereochemistry information contained in the ChemDraw
files is useful for rendering purposes.

Therefore, for my purposes, only case one is necessary.

Thanks for your help!

Corey

Mikhail Rybalkin

unread,
Aug 13, 2011, 3:49:45 AM8/13/11
to indigo-dev
Hello Corey,

I have just uploaded an updated Indigo version 1.1-beta5. There is an
additional method to add a stereocenters by specifing stereopyramid.
Code snippet is here:
IndigoObject m = indigo.createMolecule();
IndigoObject a0 = m.addAtom("C");
IndigoObject a1 = m.addAtom("N");
IndigoObject a2 = m.addAtom("O");
IndigoObject a3 = m.addAtom("P");

a0.addBond(a1, 1);
a0.addBond(a2, 1);
a0.addBond(a3, 1);

System.out.println(m.smiles());
a0.addStereocenter(Indigo.ABS, a1.index(), a2.index(),
a3.index());
System.out.println(m.smiles());

This interface might be not the best, and I think we will improve this
interface to support both atoms andatom indices, and to do it better.
All advices and suggestions are welcome.

There is no method to get a stereopyramid yet. Such methods are
planned to be added into the next
version: get stereocenter pyramid; change stereocenter group, type;
add cis-trans bonds, and etc.
On the next week I will be on vacation, but in case you have questions
my colleagues will try to answer them.

With best regards,
Mikhail Rybalkin

On Aug 11, 10:19 pm, Corey Dow-Hygelund <godelsthe...@gmail.com>

Mikhail Rybalkin

unread,
Aug 13, 2011, 3:52:51 AM8/13/11
to indigo-dev
In addition, addStereocenter gets 3 or 4 atom indices. If there is an
implicit hydrogen then you have to specify 3 atoms.

On Aug 13, 11:49 am, Mikhail Rybalkin <rybal...@ggasoftware.com>
Reply all
Reply to author
Forward
0 new messages