Skip to content

Match RDKit 2026.09 standard ETKDG setup - #384

Merged
scal444 merged 1 commit into
NVIDIA-BioNeMo:mainfrom
scal444:feat/etkdg-2609-setup
Oct 29, 2026
Merged

scal444 merged 1 commit into
NVIDIA-BioNeMo:mainfrom
scal444:feat/etkdg-2609-setup

Conversation

@scal444

@scal444 scal444 commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator

RDKit 2026.09 builds the ETKDG torsion terms after the topology bounds, which now record forced amide/ester 1-4 configurations that become torsion terms, and keeps one experimental torsion per central bond. nvMolKit used the legacy setTopolBounds overload before initETKDG, so those torsions were dropped and duplicate central-bond terms were kept.

  • Set topology bounds through a version-aware helper that uses the EmbedParameters overload and records path14Configs on 2026.09.
  • Run initETKDG after bounds setup on 2026.09.
  • Keep the first experimental torsion per central bond on 2026.09.
  • Reject parameters nvMolKit does not implement instead of ignoring them: all-in-one refinement, embedForceField=MMFF, onlyInitialEmbedding and internal-coordinate initial embedding. embedMolecules validates them before looking at the molecules.
  • Treat initialEmbeddingMode=RANDOM_COORDINATE_EMBEDDING as useRandomCoords. RDKit 2026.09 deprecates the flag for the mode but still applies its random-coordinate basin threshold and 4D embedding only for the flag. As in RDKit, useRandomCoords also selects that mode, overriding internal-coordinate embedding.
  • Tests: forced amide torsion and one term per central bond on 2026.09, experimental torsion energies against RDKit's construct3DForceField, 2026.09 hexane bounds, 2026.09 chiral dist-matrix failure count, each rejected setting in C++ and Python, embedding with only the random-coordinate mode set, and drop the positional EmbedParameters constructor removed in 2026.03.4.

@greptile-apps

greptile-apps Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable defects were established.

Summary

Updates ETKDG setup for RDKit 2026.09 while keeping the older setup behind version checks.

  • RDKit 2026.09 bounds now feed forced amide and ester paths into ETKDG torsions.
  • Each central bond contributes at most one experimental torsion on RDKit 2026.09.
  • Embedding rejects unsupported settings and treats random-coordinate mode as random starts.

No actionable issues were established. Tests were not run.

Reviews (2) · Last reviewed commit: "Match RDKit 2026.09 standard ETKDG setup" · Reviewed by Greptile

RDKit 2026.09 builds the ETKDG torsion terms after the topology bounds,
which now record forced amide/ester 1-4 configurations that become
torsion terms, and keeps one experimental torsion per central bond.
nvMolKit used the legacy setTopolBounds overload before initETKDG, so
those torsions were dropped and duplicate central-bond terms were kept.

- Set topology bounds through a version-aware helper that uses the
  EmbedParameters overload and records path14Configs on 2026.09.
- Run initETKDG after bounds setup on 2026.09.
- Keep the first experimental torsion per central bond on 2026.09.
- Reject parameters nvMolKit does not implement instead of ignoring
  them: all-in-one refinement, embedForceField=MMFF,
  onlyInitialEmbedding and internal-coordinate initial embedding.
  embedMolecules validates them before looking at the molecules.
- Treat initialEmbeddingMode=RANDOM_COORDINATE_EMBEDDING as
  useRandomCoords. RDKit 2026.09 deprecates the flag for the mode but
  still applies its random-coordinate basin threshold and 4D embedding
  only for the flag. As in RDKit, useRandomCoords also selects that
  mode, overriding internal-coordinate embedding.
- Tests: forced amide torsion and one term per central bond on 2026.09,
  experimental torsion energies against RDKit's construct3DForceField,
  2026.09 hexane bounds, 2026.09 chiral dist-matrix failure count, each
  rejected setting in C++ and Python, embedding with only the
  random-coordinate mode set, and drop the positional EmbedParameters
  constructor removed in 2026.03.4.
@scal444
scal444 force-pushed the feat/etkdg-2609-setup branch from 6ddd7a2 to 4f568a0 Compare October 28, 2026 20:08
@scal444
scal444 requested a review from evasnow1992 October 28, 2026 20:35
@scal444

scal444 commented Oct 29, 2026

Copy link
Copy Markdown
Collaborator Author

This is 1 of 4 for getting to parity with RDKit 2026.9 ETKDG

@evasnow1992 evasnow1992 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good to me.

@scal444
scal444 merged commit d16d8cc into NVIDIA-BioNeMo:main Oct 29, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants