substructure search and filter



If i have a list of SMARTS query (more than one) and i want to do a subserch query and filter how can i do that, the node sub search and filter perform only one SMARTS molecule inserted by hands. Can you post an example workflow to explain how to do that?



There is no need to enter the SMARTS by hand, you can use Variables in KNIME to search against multiple SMARTS. Take your table of SMARTS, pass it into a "TableRow To Variable Loop Start" node (in Flow Control nodes section), then connect the red variable outport of this to the red variable inport of the "Inject Variables" node. Also connect the table of structures you are searching against to the "Inject Variables" node. Now connect the outport from "Inject Variables" to the "RDKit Substructure Filter" node. In here, instead of entering the SMARTS by hand, instead go to the Flow Variables tab, and next to the "SMARTS_value", from the dropdown choose the column name of the SMARTS. Finally after this node, connect a "Loop End". I hope this helps.

Alternatively, there is a new RDKit node to run against multiple SMARTS, the node is called RDKit Dictionary Substructure Search. Simply select to match at least 1.

To make sure you have the latest RDKit nodes, make sure you have the nightly link in your KNIME Update page, more info here:

If you do not have the Flow and Variable Control nodes, then follow the FAQ at


Hey fab,

James created a simple substructure workflow loop over here:

It might what do what you need without modification, but if it doesn't, it's easier to build on James's simple workflow than tackle creating loops from scratch.

(the other) Simon