Christos,

2009/3/23 Christos Kannas <[email protected]>:
>
> So I have to align the two molecules first and then calculate their Tanimoto
> similarity/distance.

Correct.

>> Also, can I get the tanimoto shape similarity between a molecule and a
>> pharmacophore?
>
> I want to calculate the Tanimoto similarity between a molecule and a given
> pharmacophore...
> For example I can set some pharmacophore features,
> and then I want to calculate the Tanimoto Similarity/distance between this
> pharmocophore and another molecule.

To answer this in a way that makes sense I need to give a bit more
detail about what ShapeTanimotoDist() does. First the shape of each
molecule is encoded onto a grid (an rdkit.Geometry.UniformGrid3D
object) using the parameters provided (probably by default) to
ShapeTanimotoDist(). These grids are then compared using the function
TanimotoDistance() in the rdkit.Geometry module.

If you treat the pharmacophore as a set of spheres with given radii,
then yes, you could in principle generate a UniformGrid3D that encodes
the union volume of those spheres and then calculate the Tanimoto
distance between that grid and the grid of your molecule. In practice
this will require you to do some C++ coding, because there's not
currently a way to add things to a UniformGrid3D from Python.

My own bias is to treat pharmacophores as a series of points separated
by a distance and then to calculate the quality of a molecular
alignment to the pharmacophore by looking at the RMSD between the
molecule's feature points and the pharmacophore's feature points.
Alternatively, I would use the RDKit's FeatureMap machinery to
calculate the overlap between the molecule's FeatureMap and the
FeatureMap generated by the pharmacophore.

-greg

Reply via email to