Isomer enumerator node request


Please can you introduce a node which can take a molecule and choose to enumerate it into the possible isomers, maybe with a few choices;

- Enumerate E/Z alkene isomers,

- Enumerate Enantiomers only,

- Enumerate all Stereoisomers (Enantiomers and Diastereomers).




Hello Simon,

Could you give an example where this can be useful? And what kind and size of molecules do you want to proceed? In general there are a lot of diastereomers for a structure with a lot of stereocenters, and do you need to process all of them? 

Also I would much appreciate it if you could provide some typical examples for all the properties you listed, because I'm not a chemist. For example when you are talking about enantiomers, is it correct that for each structure there is two enantiomers: structure itself and its mirror (if they are different)?

Best regards,

Hi Mikhail,

Thanks for the reply.

This node can be useful in several situations, user can draw one molecule, and then get the enumerated isomers out so they can then get:

- Predictions with regards to NMR predictions/electrostatic charges of atoms/electron density maps of the diastereomers,

- Predicted activity properties in a 3D pharmacophore model by taking all the enantiomers and diastereomers and generating low energy conformers for docking into 3D models.

- Predicted activity properties in a QSAR model which supports chirality.

- Additionally some databases will list isomers with no wedge bonds and so no isomers are indicated. It will be useful to be able to take a database of compounds and get all possible stereoisomers enumerated, or where one chiral molecule is drawn the same twice as Isomer 1 and Isomer 2, it can be enumerated to get the other drawn enantiomer.

- Similarity/Structure search of a database to see if other isomers have been made.


A chirally drawn molecule will only ever have one other enantiomer associated with it, as you mention its mirror. So if a molecule has 3 chiral centres, lets say these are drawn as R,S,R its enantiomer will be S,R,S,. The diastereomers to this molecule are the remaining 6 possibilities. The total number of stereoisomers (which is enantiomers+diastereomers) is 2 to the power of the number of chiral atoms, in this case, 2 to power 3 which is 2x2x2=8. I cannot imagine the number of chiral centres ever exceeding 5 (32 isomers) in medicinal chemistry, in fact most case uses would be 3 as a maximum as synthetic complexity would stop it going beyond this. Note that if a chiral molecule is drawn with flat bonds to start with (i.e. no wedge or hashed bonds), then the enantiomers/distereomers cannot be determined, as you need the starting chirallity, in which case all you can do is draw the possible stereoisomers as there is no chirally drawn molecule to compare back too.

For alkene molecules of E and Z, each double bond has two possibilities, unless the two groups on one side of the molecule are the same in which case there is only one possibility. So again, for molecules containing alkenes, there will be 2 to the power of the total number of alkene bonds, again the use case would be 3 as a general maximum. Note that oximes ( R-N=O-R ) also have E/Z possibilities.

So a tick box in the node would probably be needed which says that achirally drawn molecules (i.e. those with flat drawn bonds) will have all stereoisomers generated yes/no.

The enumerated structures would ideally be on separate rows rather than in separate columns.


If you need any more information, please ask.



Could I add the possibility of enumerating tautomers?



Hi, do you know if there has been any progress on isomer enumeration. I’ve had a few people asking me about this recently.

Would this be possible as a future implementation in indigo.


Hello Simon and Steve,

In the last nightly builds we have added an Isomer Enumerator node where you can select to enumerator cis-trans isomers and Enantiomers with Diastereomers. Could you try it and give a feedback?

Steve, tautomers enumeration is much more complicated. We need to implement such an algorithm in Indigo, and I cannot give an estimate when will do it. But definitely it is interesting thing to do.



Hi mikhail,

thanks for implementing this isomer enumerator node. This is really exciting and useful to ensure all isomers are generated on cpds. The isomer enumeration is working well.

i notice however that it only enumerates isomers where the bonds have wedge bonds, those with flat bonds are not enumerated. Is there a way to include these for enumeration. This is useful when databases provide molecules with the cpds drawn as flat bonds only and want the isomers drawn out for predictions and analysis.


as an aside, is it possible to have a node which outputs how many chiral centres are defined in a molecule (I.e. with wedges) and how many are undefined (I.e chiral centres in which flat bonds are drawn). This can be useful for separating out chiral cpds and compound mixtures.



Hi -

This node dosen't seem working where my input has wedged bond or flat bond. In the case of a wedged bond, it dose output an isomer (another row) but the chirality is the same.

- Jian

I would be very interested in this functionality as well. However, when I tried it, it did not work for me. I observed the same issues as Jian. I also very much agree with Simon that a very useful feature would be to input a flat structure and the output being each possible diastereomer. 

Thanks, Eric