MolecularDiffusion.runmodes.analyze.similarity3d

3D similarity of generated molecules to a reference molecule.

Backs MolCraftDiff analyze metrics --metrics similarity3d, which needs --reference-mol. Three Gaussian-overlap scores, each aligned before scoring:

  • shape_sim – molecular-surface overlap (ROCS-style);

  • esp_sim – surface overlap weighted by electrostatic potential;

  • pharm_sim – pharmacophore-point overlap.

The scoring itself comes from the vendored utils/shepherd_score package; this module only prepares the profiles and drives the alignment. Logic is lifted unchanged from the former shepherd metric block so the numbers stay identical across the rename.

Generated molecules may ship precomputed profiles as sidecar files next to the .xyz (.npz, _surface.npy, _esp.npz, _pharm.npz); those are reused when present and recomputed from the molecule otherwise.

Attributes

Functions

compare(mol, ref_data[, xyz_path])

Shape / ESP / pharmacophore similarity of mol against ref_data.

extract_profiles(mol)

Surface points, ESP values and pharmacophores for one molecule.

load_reference_source(path)

Open a reference .pkl (list of molblocks) or .sdf supplier.

reference_mol(data_source, index)

Pull one molecule out of a reference source by index.

Module Contents

MolecularDiffusion.runmodes.analyze.similarity3d.compare(mol, ref_data, xyz_path=None)

Shape / ESP / pharmacophore similarity of mol against ref_data.

Returns a dict of the three scores; a modality that cannot be computed is reported as 0.0, matching the behaviour of the former shepherd block.

MolecularDiffusion.runmodes.analyze.similarity3d.extract_profiles(mol)

Surface points, ESP values and pharmacophores for one molecule.

MolecularDiffusion.runmodes.analyze.similarity3d.load_reference_source(path)

Open a reference .pkl (list of molblocks) or .sdf supplier.

MolecularDiffusion.runmodes.analyze.similarity3d.reference_mol(data_source, index)

Pull one molecule out of a reference source by index.

MolecularDiffusion.runmodes.analyze.similarity3d.ESP_LAMBDA = 0.3
MolecularDiffusion.runmodes.analyze.similarity3d.NUM_ALIGN_REPEATS = 45
MolecularDiffusion.runmodes.analyze.similarity3d.NUM_SURFACE_POINTS = 75
MolecularDiffusion.runmodes.analyze.similarity3d.PROBE_RADIUS = 1.2
MolecularDiffusion.runmodes.analyze.similarity3d.SAMPLES_PER_ATOM = 25
MolecularDiffusion.runmodes.analyze.similarity3d.logger