rdkit.Chem.rdMIF module — The RDKit 2025.09.6 documentation

# rdkit.Chem.rdMIF module

Module containing functions for calculating molecular interaction fields (MIFs) NOTE: This functionality is experimental and the API and/or results may change in future releases.

rdkit.Chem.rdMIF.CalculateDescriptors((rdkit.Geometry.rdGeometry.UniformRealValueGrid3D)grid, (Coulomb)descriptor[, (float)threshold=-1.0]) → None :

  Calculates descriptors (to be specified as parameter) of a molecule at every gridpoint of a grid.

  > > ARGUMENTS: - grid: UniformRealValueGrid3D which get the MIF values - descriptor: Descriptor class which is used to calculate values

  > C++ signature :

  >   void CalculateDescriptors(RDGeom::UniformRealValueGrid3D {lvalue},RDMIF::Coulomb [,double=-1.0])

  CalculateDescriptors( (rdkit.Geometry.rdGeometry.UniformRealValueGrid3D)grid, (CoulombDielectric)descriptor [, (float)threshold=-1.0]) -> None :

    Calculates descriptors (to be specified as parameter) of a molecule at every gridpoint of a grid.

    > ARGUMENTS: - grid: UniformRealValueGrid3D which get the MIF values - descriptor: Descriptor class which is used to calculate values

    C++ signature :

      void CalculateDescriptors(RDGeom::UniformRealValueGrid3D {lvalue},RDMIF::CoulombDielectric [,double=-1.0])

  CalculateDescriptors( (rdkit.Geometry.rdGeometry.UniformRealValueGrid3D)grid, (MMFFVdWaals)descriptor [, (float)threshold=-1.0]) -> None :

    Calculates descriptors (to be specified as parameter) of a molecule at every gridpoint of a grid.

    > ARGUMENTS: - grid: UniformRealValueGrid3D which get the MIF values - descriptor: Descriptor class which is used to calculate values

    C++ signature :

      void CalculateDescriptors(RDGeom::UniformRealValueGrid3D {lvalue},RDMIF::MMFFVdWaals [,double=-1.0])

  CalculateDescriptors( (rdkit.Geometry.rdGeometry.UniformRealValueGrid3D)grid, (UFFVdWaals)descriptor [, (float)threshold=-1.0]) -> None :

    Calculates descriptors (to be specified as parameter) of a molecule at every gridpoint of a grid.

    > ARGUMENTS: - grid: UniformRealValueGrid3D which get the MIF values - descriptor: Descriptor class which is used to calculate values

    C++ signature :

      void CalculateDescriptors(RDGeom::UniformRealValueGrid3D {lvalue},RDMIF::UFFVdWaals [,double=-1.0])

  CalculateDescriptors( (rdkit.Geometry.rdGeometry.UniformRealValueGrid3D)grid, (HBond)descriptor [, (float)threshold=-1.0]) -> None :

    Calculates descriptors (to be specified as parameter) of a molecule at every gridpoint of a grid.

    > ARGUMENTS: - grid: UniformRealValueGrid3D which get the MIF values - descriptor: Descriptor class which is used to calculate values

    C++ signature :

      void CalculateDescriptors(RDGeom::UniformRealValueGrid3D {lvalue},RDMIF::HBond [,double=-1.0])

  CalculateDescriptors( (rdkit.Geometry.rdGeometry.UniformRealValueGrid3D)grid, (Hydrophilic)descriptor [, (float)threshold=-1.0]) -> None :

    Calculates descriptors (to be specified as parameter) of a molecule at every gridpoint of a grid.

    > ARGUMENTS: - grid: UniformRealValueGrid3D which get the MIF values - descriptor: Descriptor class which is used to calculate values

    C++ signature :

      void CalculateDescriptors(RDGeom::UniformRealValueGrid3D {lvalue},RDMIF::Hydrophilic [,double=-1.0])

rdkit.Chem.rdMIF.ConstructGrid((rdkit.Chem.rdchem.Mol)mol[, (int)confId=-1[, (float)margin=5.0[, (float)spacing=0.5]]]) → rdkit.Geometry.rdGeometry.UniformRealValueGrid3D :

  Constructs a UniformRealValueGrid3D (3D grid with real values at gridpoints) fitting to a molecule.

  > ARGUMENTS: - mol: molecule of interest - confId: the ID of the conformer to be used (defaults to -1) - margin: minimum distance of molecule to surface of grid [A] (defaults to 5.0 A) - spacing: grid spacing [A] (defaults to 0.5 A)

  C++ signature :

    RDGeom::UniformRealValueGrid3D* ConstructGrid(RDKit::ROMol [,int=-1 [,double=5.0 [,double=0.5]]])

class rdkit.Chem.rdMIF.Coulomb((object)arg1, (rdkit.Chem.rdchem.Mol)mol[, (int)confId=-1[, (float)probeCharge=1.0[, (bool)absVal=False[, (str)chargeKey='_GasteigerCharge'[, (float)softcoreParam=0.0[, (float)cutoff=1.0]]]]]]) → None :

  Bases: `instance`

  Class for calculation of electrostatic interaction (Coulomb energy) between probe and molecule in vacuum (no dielectric).

  Constructor for Coulomb class.

  > > ARGUMENTS: - mol: the molecule of interest - confId: the ID of the conformer to be used (defaults to -1) - probeCharge charge of probe [e] (defaults to 1.0 e) - absVal: if True, absolute values of interactions are calculated (defaults to False) - chargeKey property key for retrieving partial charges of atoms from molecule (defaults to ‘_GasteigerCharge’) - softcoreParam softcore interaction parameter [A^2], if zero, a minimum cutoff distance is used (defaults to 0.0) - cutoff minimum cutoff distance [A] (defaults to 1.0)

  > C++ signature :

  >   void __init__(_object*,RDKit::ROMol [,int=-1 [,double=1.0 [,bool=False [,std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >=’_GasteigerCharge’ [,double=0.0 [,double=1.0]]]]]])

  __init__( (object)arg1, (object)charges, (object)positions [, (float)probeCharge=1.0 [, (bool)absVal=False [, (float)softcoreParam=0.0 [, (float)cutoff=1.0]]]]) -> object :

    Alternative constructor for Coulomb class.

    > ARGUMENTS: - charges: array of partial charges of a molecule’s atoms - positions: array of positions of a molecule’s atoms - probeCharge charge of probe [e] (defaults to 1.0 e) - absVal: if True, absolute values of interactions are calculated (defaults to False) - softcoreParam softcore interaction parameter [A^2], if zero, a minimum cutoff distance is used (defaults to 0.0) - cutoff minimum cutoff distance [A] (defaults to 1.0)

    C++ signature :

      void* __init__(boost::python::api::object,boost::python::api::object,boost::python::api::object [,double=1.0 [,bool=False [,double=0.0 [,double=1.0]]]])

class rdkit.Chem.rdMIF.CoulombDielectric((object)arg1, (rdkit.Chem.rdchem.Mol)mol[, (int)confId=-1[, (float)probeCharge=1.0[, (bool)absVal=False[, (str)chargeKey='_GasteigerCharge'[, (float)softcoreParam=0.0[, (float)cutoff=1.0[, (float)epsilon=80.0[, (float)xi=4.0]]]]]]]]) → None :

  Bases: `instance`

  Class for calculation of electrostatic interaction (Coulomb energy) between probe and molecule in by taking a distance-dependent dielectric into account. Same energy term as used in GRID MIFs. References: - J. Med. Chem. 1985, 28, 849. - J. Comp. Chem. 1983, 4, 187.

  Constructor for CoulombDielectric class.

  > > ARGUMENTS: - mol: the molecule of interest - confId: the ID of the conformer to be used (defaults to -1) - probeCharge charge of probe [e] (defaults to 1.0 e) - absVal: if True, absolute values of interactions are calculated (defaults to False) - chargeKey property key for retrieving partial charges of atoms from molecule (defaults to ‘_GasteigerCharge’) - softcoreParam softcore interaction parameter [A^2], if zero, a minimum cutoff distance is used (defaults to 0.0) - cutoff minimum cutoff distance [A] (defaults to 1.0) - epsilon relative permittivity of solvent (defaults to 80.0) - xi relative permittivity of solute (defaults to 4.0)

  > C++ signature :

  >   void __init__(_object*,RDKit::ROMol [,int=-1 [,double=1.0 [,bool=False [,std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >=’_GasteigerCharge’ [,double=0.0 [,double=1.0 [,double=80.0 [,double=4.0]]]]]]]])

  __init__( (object)arg1, (object)charges, (object)positions [, (float)probeCharge=1.0 [, (bool)absVal=False [, (float)softcoreParam=0.0 [, (float)cutoff=1.0 [, (float)epsilon=80.0 [, (float)xi=4.0]]]]]]) -> object :

    Alternative constructor for CoulombDielectric class.

    > > ARGUMENTS:

    > - charges: array of partial charges of a molecule’s atoms

    > - positions: array of positions of a molecule’s atoms

    > - probeCharge charge of probe [e] (defaults to 1.0 e)

    > - absVal: if True, absolute values of interactions are calculated (defaults to False)

    > - softcoreParam softcore interaction parameter [A^2], if zero, a minimum cutoff distance is used (defaults to 0.0)

    > - cutoff minimum cutoff distance [A] (defaults to 1.0)

    > - epsilon relative permittivity of solvent (defaults to 80.0)

    > - xi relative permittivity of solute (defaults to 4.0)

    C++ signature :

      void* __init__(boost::python::api::object,boost::python::api::object,boost::python::api::object [,double=1.0 [,bool=False [,double=0.0 [,double=1.0 [,double=80.0 [,double=4.0]]]]]])

  __init__( (object)self, (str)pklString) -> None :

  > C++ signature :

  >   void __init__(_object*,std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)

class rdkit.Chem.rdMIF.HBond((object)arg1, (rdkit.Chem.rdchem.Mol)mol[, (int)confId=-1[, (str)probeAtomType='OH'[, (bool)fixed=True[, (float)cutoff=1.0]]]]) → None :

  Bases: `instance`

  Class for calculation of hydrogen bonding energy between a probe and a molecule.

  Similar to GRID hydrogen bonding descriptors. References: - J.Med.Chem. 1989, 32, 1083. - J.Med.Chem. 1993, 36, 140. - J.Med.Chem. 1993, 36, 148.

  Constructor for HBond class.

  > ARGUMENTS: - mol: the molecule of interest - confId: the ID of the conformer to be used (defaults to -1) - probeAtomType: atom type for the probe atom (either ‘OH’, ‘O’, ‘NH’ or ‘N’) (defaults to ‘OH’) - fixed: for some groups, two different angle dependencies are defined:

  > > one which takes some flexibility of groups (rotation/swapping of lone pairs and hydrogen) into account and one for strictly fixed conformations if True, strictly fixed conformations (defaults to True)

  > - cutoff minimum cutoff distance [A] (defaults to 1.0)

  C++ signature :

    void __init__(_object*,RDKit::ROMol {lvalue} [,int=-1 [,std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >=’OH’ [,bool=True [,double=1.0]]]])

class rdkit.Chem.rdMIF.Hydrophilic((object)arg1, (rdkit.Chem.rdchem.Mol)mol[, (int)confId=-1[, (bool)fixed=True[, (float)cutoff=1.0]]]) → None :

  Bases: `instance`

  Class for calculation of a hydrophilic potential of a molecule at a point.

  The interaction energy of hydrogen and oxygen of water is calculated at each point as a hydrogen bond interaction (either OH or O probe). The favored interaction is returned.

  Constructor for Hydrophilic class.

  > ARGUMENTS: - mol: the molecule of interest - confId: the ID of the conformer to be used (defaults to -1) - fixed: for some groups, two different angle dependencies are defined:

  > > one which takes some flexibility of groups (rotation/swapping of lone pairs and hydrogen) into account and one for strictly fixed conformations if True, strictly fixed conformations (defaults to True)

  > - cutoff minimum cutoff distance [A] (default:1.0)

  C++ signature :

    void __init__(_object*,RDKit::ROMol {lvalue} [,int=-1 [,bool=True [,double=1.0]]])

class rdkit.Chem.rdMIF.MMFFVdWaals((object)self, (rdkit.Chem.rdchem.Mol)mol[, (int)confId=-1[, (int)probeAtomType=6[, (bool)scaling=False[, (float)cutoff=1.0]]]]) → None :

  Bases: `instance`

  Class for calculating van der Waals interactions between molecule and a probe at a gridpoint based on the MMFF forcefield.

  Parameters:

    - object (- mol molecule)

    - atoms (- confId conformation id which is used to get positions of)

    - atom (- probeAtomType MMFF94 atom type for the probe)

    - (default (- cutoff minimum cutoff distance [A]) – 1.0)

    - account (- scaling scaling of VdW parameters to take hydrogen bonds into)

  C++ signature :

    void __init__(_object*,RDKit::ROMol [,int=-1 [,unsigned int=6 [,bool=False [,double=1.0]]]])

rdkit.Chem.rdMIF.ReadFromCubeFile((str)filename) → tuple :

  Reads Grid from a file in Gaussian CUBE format.

  > ARGUMENTS: - filename: filename of file to be read RETURNS: a tuple where the first element is the grid and the second element is the molecule object associated to the grid (only atoms and coordinates, no bonds; None if no molecule was associated to the grid)

  C++ signature :

    boost::python::tuple ReadFromCubeFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)

class rdkit.Chem.rdMIF.UFFVdWaals((object)self, (rdkit.Chem.rdchem.Mol)mol[, (int)confId=-1[, (str)probeAtomType='O_3'[, (float)cutoff=1.0]]]) → None :

  Bases: `instance`

  Class for calculating van der Waals interactions between molecule and a probe at a gridpoint based on the UFF forcefield.

  Parameters:

    - object (- mol molecule)

    - atoms (- confId conformation id which is used to get positions of)

    - atom (- probeAtomType UFF atom type for the probe)

    - (default (- cutoff minimum cutoff distance [A]) – 1.0)

  C++ signature :

    void __init__(_object*,RDKit::ROMol [,int=-1 [,std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >=’O_3’ [,double=1.0]]])

rdkit.Chem.rdMIF.WriteToCubeFile((rdkit.Geometry.rdGeometry.UniformRealValueGrid3D)grid, (str)filename[, (rdkit.Chem.rdchem.Mol)mol=None[, (int)confId=-1]]) → None :

  Writes Grid to a file in Gaussian CUBE format.

  > ARGUMENTS: - grid: UniformRealValueGrid3D to be stored - filename: filename of file to be written - mol: associated molecule (defaults to None) - confId: the ID of the conformer to be used (defaults to -1)

  C++ signature :

    void WriteToCubeFile(RDGeom::UniformRealValueGrid3D,std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > [,RDKit::ROMol const*=None [,int=-1]])