Diversity picker - read out when failed



I’m not sure if what I want is possible…

I am running a library enumeration where I have, for example, ten scaffolds (1-10) and I am enumerating each against a set of building blocks to give all the results as one table. I am then using a group loop to select each scaffold and then, using the diversity picker, select 192 diverse compounds for each scaffold. My only problem is that if one scaffold fails to reach 192 compounds, then the diversity picker node fails and the process stops “ERROR RDKit Diversity Picker 0:716 Execute failed: Number of diverse points requested (192) exceeds number of valid fingerprints (130)”. Is there a way to get the picker to read out the maximum number reached if it fails (in this example 130 compounds) and then continue? Or at least skip that instance and then continue? If it fails on scaffold 3 for example, it won’t do the selections for the remaining 7 scaffolds even if they would all pass (i.e. 192 could be reached for these).

Any suggestions?
Many thanks



One option would be to use the If Switch (Flow Variable Value) node form Vernalis:

If you put it in your loop as follows:


And configure as shown:


Then the bottom, diversity-picking branch will only operate when you have 192 or more molecules. Otherwise you will just get the whole table for that loop iteration.




Hi Steve

That’s perfect, thank you!




One possible ‘Gotcha’ is that I can’t remember what the Diversity picker does if you have exactly the number of rows you want to pick - I have a feeling it might fail, in which case you will need to change the ‘<’ operator to ‘<=’


1 Like