I observed multiple incorrect contact detection, which have a similar pattern. The problem was observed starting from version 2.0.X (do not remember the exact number) and till the latest version 2.2.0.
from rdkit import Chem
import prolif as plf
protein_pdb_file = 'XXX'
ligand_sdf_file = 'YYY'
protein_mol = Chem.MolFromPDBFile(
protein_pdb_file,
removeHs=False,
sanitize=True,
)
ligand_mol = Chem.SDMolSupplier(ligand_sdf_file, removeHs=False, sanitize=True)[0]
ligand = plf.Molecule(ligand_mol)
protein = plf.Molecule(protein_mol)
fingerprint = plf.Fingerprint(interactions="all", count=True)
ifp = fingerprint.generate(
ligand,
protein,
residues=residue_filter,
metadata=True,
)
If look at Leu106 residue, there is HBDonor contact between OH group of a ligand and NH group of a protein. That is definitely incorrect.
ChatGPT suggests that this may happen due to the split of protein on individual residues and afterwards applying SMARTS to detect interaction points. Therefore, NH becomes a valid H-bond acceptor partner.
I attached the test files
test_files.zip
I observed multiple incorrect contact detection, which have a similar pattern. The problem was observed starting from version 2.0.X (do not remember the exact number) and till the latest version 2.2.0.
If look at Leu106 residue, there is HBDonor contact between OH group of a ligand and NH group of a protein. That is definitely incorrect.
ChatGPT suggests that this may happen due to the split of protein on individual residues and afterwards applying SMARTS to detect interaction points. Therefore, NH becomes a valid H-bond acceptor partner.
I attached the test files
test_files.zip