Reaction to Individual Molecules


Is there any easy way to take Indigo Reaction columns, and separate them out into Indigo Molecule columns of individual reagents ?

A node to do this would be most helpful.


Hello Simon,

There is no such node at the moment, but we will add it. Thank you for the suggestion!

Could you explain your use case? There might be different number of reactants, products or catalysts. What should be done in this case?

And do you think that also there may be usefull a node for creating reactions from molecules?

With best regards,

Hi Mikhail,

You're right, there may be a different number of reactants and products. I think the best would just be to have two output columns from such a node, one called "reactants", and one called "products". If there are two reactants in the reaction, then they are put together in the "reactant" output column. The user can then separate them out, if desired, using the "Component separator" node which will then puts them into individual columns in order of Molecular Weight.

The use case for such a node is two possiblities;

- One is that the user has gathered a large selection of reactions, and then the user may wish to filter on these reactions for a certain substrate (i.e. do a substructure search). There is no option to do substructure searching on reactions, so the solution would be to generate the individual reactants and products, and then search on these.

- Secondly, the user may wish to gather all the reagents or catalysts from a set of reactions and then use the "GroupBy" node to find the average yield etc for each catalyst or reactant. This would be quite a powerful analysis to be able to undertake, being able to find the best catalyst or reagent with the average highest degree of success. Will be useful in reaction troubleshooting and optimisation.



In terms of a node to take molecules and generate reactions from them, this would be good to be able to undertake the reverse process.  can not think of much utility in doing this at the moment, but this largely due to the minimal functions in KNIME for manipulating reaction cells at the moment.I am sure once these functions increase in KNIME, such a function to go to reaction cells will be very useful.

I would have said the best way of doing this would be a node which lets you select one column for the reactants, and another column for the products. This then generates a reaction cell of these reactants and products. If the user wants more than one reactant or product then they should first combine multiple reactants together into one cell.

At the moment, there is no way of doing this, so another new node would be required here called a "Component Combiner". The dialog box of this node can be made to look like the Column Filter node where you have an include box and exclude box. All the columns in the include box generates a new column with all the molecules inside it. This "Component Combiner" node would also be useful for manually generating salts of molecules too, so it would have several uses.




In the interim, if you convert to SMILES format, you can process in the dreaded Java Snippet node, which I know you like doing, using something like

For all reactants in one SMILES:

String reactants = $reaction$.split(">>")[0];

return reactants;

For reactants separated in an array:

String[] reactants =$reaction$.split(">>")[0].split("\\.");

return reactants;

(In this case, you need to tick the 'Array return' box, and can separate the resulting array column with either the 'Split Collection Column' or Ungroup nodes depending on what you want to do next)
To get the products, you need to replace the [0] with [1] in each case.

You will also need to use the molecule type cast node to get them back to being recognised!


Hi Steve,

Many thanks for this, I think I need a personal Java assistant to deliver this black magic its capable of.

I'll have to hope Mikhail can deliver a node in the future for all those who cant manage Java magic!



Hello Steve and Simon,

We have added Component Combiner, Reaction Builder, and Reaction Splitter nodes for your use cases. They are available in the nightly builds.

Best regards,

Hi Mikhail,

These are brilliant all three nodes are working perfectly. This is very useful indeed to combine and separate reactions so easy. This is going to be really useful for identifying what the most common catalysts are in certain reactions and which perform the best by extracting out the catalysts from reaction.s

The Component Combiner is also really useful for easily making salts of cpds too.

Many thanks for these,