Hotfix Releases of RDKit Extension 4.6.0 (until KNIME 4.6) / 4.7.0 (for KNIME 4.7) and Nightly Build Update 4.7.1

Dear RDKit Users,

I would like to inform you that I just pushed some updates to the RDKit extensions for the official KNIME releases and the nightly build (4.7) with the following changes:

Changes in official releases for KNIME 4.2, 4.3, 4.4., 4.5, 4.6 and 4.7 and nightly build (4.7):

  • Bugfix for BIRT reports that include tables with RDKit molecules or RDKit renderings of molecules
  • Security fix for OPSIN integration

The mentioned BIRT bug occurred only on a KNIME server when it was supposed to generate a BIRT report as post-processing of a successful workflow. At that time it failed due to a bug in preference handling in KNIME core code.

The version number in the official releases has not changed due to the minimal non-breaking changes, only the timestamp at the end of the version number will show the change. Please update to the latest available trusted community version of the RDKit extension.

Additional changes in nightly builds (4.7 = master branch, 4.6 = nightly_pre4.7 branch):

  • Support of CoordGen for calculation of molecule atom coordinates
  • Version increase to 4.7.1 resp. 4.6.2 in the unreleased branches

There is now a KNIME preference under KNIME - RDKit Nodes - RDKit 2D Depiction named “Use CoordGen instead of native RDKit when generating coordinates (SMILES, SMARTS)”. This controls in RDKit nodes that generate coordinates on demand (e.g. when no conformer is available yet for an RDKit molecule, but it is required for the actions of the node, or when molecule formats like SMILES and SMARTS are rendered with RDKit). The most obvious difference is shown in the rendering of macro molecules. While RDKit rendering is aligning them in huge rings, CoordGen will not do this. It is a matter of taste which representation one prefers.

Big thank goes to @ptosco who supported me with his consultancy.

Important for other developers who are making use of RDKit functionality (not for users): For this change I configured RDKFuncs.setPreferCoordGen(true) when the RDKit type plugin gets initialized. This becomes now the default setting for the whole runtime of KNIME. The new preference that was mentioned is used in negated form when we call compute2DCoords(ROMol mol, ..., boolean forceRDKit). Very often, we just call in our source code compute2DCoords(ROMol mol) without additional settings. This would have now a slightly changed behavior due to the global setting for CoordGen usage. To keep backward-compatibility you may call one of the following static methods:

org.rdkit.knime.types.RDKitMolValueRenderer.compute2DCoords(ROMol mol)
org.rdkit.knime.types.RDKitMolValueRenderer.compute2DCoords(ROMol mol, boolean bUseCoordGen)
org.rdkit.knime.types.RDKitMolValueRenderer.compute2DCoords(ROMol mol, ROMol template, boolean bUseCoordGen)
org.rdkit.knime.types.RDKitMolValueRenderer.compute2DCoords(ROMol mol, Int_Point2D_Map mapTemplate, boolean bUseCoordGen)

Those methods will use the RDKit default values (as of today) for all other not mentioned parameters of compute2DCoords calls. As last parameter bUseCoordGen we pass in the new preference setting that we can easily get with the following call:

RDKitDepicterPreferencePage.isUsingCoordGen()

Kind regards,
Manuel

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.