-
Notifications
You must be signed in to change notification settings - Fork 62
Conformers generation - RMSD cutoff limit not applied? #239
Copy link
Copy link
Open
Description
I noticed that when running conformer generation in Datamol, the rms_cutoff option doesn't seem to be applied correctly.
Specifically:
import datamol as dm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
smiles = "N(c1n[nH]c(C2CC2)c1)c1nc(Nc2ccc(CC#N)cc2)ncc1"
mol = dm.to_mol(smiles)
mol = dm.conformers.generate(
mol,
n_confs=200,
rms_cutoff=0.25,
minimize_energy=True,
align_conformers=True,
ewindow=5.0
)
n_confs = mol.GetNumConformers()
print(f"Number of Conformations: {n_confs}")
Should generate 145 aligned conformations and make sure that no two conformations have a pairwise RMSD equal or below 0.25.
Looking at them in 3D, I noticed that several seem to be very very similar and indeed with the following debug code:
rmsd_matrix = dm.conformers.rmsd(mol)
threshold = 0.25
mask_below_threshold = rmsd_matrix < threshold
total_count = np.sum(mask_below_threshold)
count_excluding_diagonal = total_count - n_confs
unique_pairs_count = count_excluding_diagonal // 2
It tells me that out of the 145 conformations, 50 of them have pairwise RMSD <0.25.
Just one example from the compounds above; the four conformations generated via Datamol have pairwise RMSD<<0.25.
Am I missing something on the role or the rms_cutoff, particularly together with the align_conformers option?
I have seen the same behavior with several other molecules.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels