public class Tanimoto extends Object
You can use the FingerPrinter class to retrieve two fingerprint bitsets. We assume that you have two structures stored in cdk.Molecule objects. A tanimoto coefficient can then be calculated like:
BitSet fingerprint1 = Fingerprinter.getBitFingerprint(molecule1); BitSet fingerprint2 = Fingerprinter.getBitFingerprint(molecule2); float tanimoto_coefficient = Tanimoto.calculate(fingerprint1, fingerprint2);
The FingerPrinter assumes that hydrogens are explicitely given, if this is desired!
Note that the continuous Tanimoto coefficient does not lead to a metric space
Modifier and Type | Method and Description |
---|---|
static float |
calculate(BitSet bitset1,
BitSet bitset2)
Evaluates Tanimoto coefficient for two bit sets.
|
static float |
calculate(double[] features1,
double[] features2)
Evaluates the continuous Tanimoto coefficient for two real valued vectors.
|
static double |
calculate(IBitFingerprint fingerprint1,
IBitFingerprint fingerprint2)
Evaluates Tanimoto coefficient for two
IBitFingerprint . |
static double |
calculate(ICountFingerprint fp1,
ICountFingerprint fp2)
Evaluate continuous Tanimoto coefficient for two feature, count fingerprint representations.
|
static float |
calculate(Map<String,Integer> features1,
Map<String,Integer> features2)
Evaluate continuous Tanimoto coefficient for two feature, count fingerprint representations.
|
static double |
method1(ICountFingerprint fp1,
ICountFingerprint fp2)
Calculates Tanimoto distance for two count fingerprints using method 1.
|
static double |
method2(ICountFingerprint fp1,
ICountFingerprint fp2)
Calculates Tanimoto distance for two count fingerprints using method 2 (J.A. Grant, J.A. Haigh, B.T. Pickup, A. Nicholls and R.A. Sayle. J. Chem. Inf. Model.. 2006. 46).
|
public static float calculate(BitSet bitset1, BitSet bitset2) throws CDKException
bitset1
- A bitset (such as a fingerprint) for the first moleculebitset2
- A bitset (such as a fingerprint) for the second moleculeCDKException
- if bitsets are not of the same lengthpublic static double calculate(IBitFingerprint fingerprint1, IBitFingerprint fingerprint2)
IBitFingerprint
.
fingerprint1
- fingerprint for the first moleculefingerprint2
- fingerprint for the second moleculeIllegalArgumentException
- if bitsets are not of the same lengthpublic static float calculate(double[] features1, double[] features2) throws CDKException
features1
- The first feature vectorfeatures2
- The second feature vectorCDKException
- if the features are not of the same lengthpublic static float calculate(Map<String,Integer> features1, Map<String,Integer> features2)
Note that feature/count type fingerprints may be of different length. Uses Tanimoto method from 10.1021/ci800326z
features1
- The first feature mapfeatures2
- The second feature mappublic static double calculate(ICountFingerprint fp1, ICountFingerprint fp2)
Note that feature/count type fingerprints may be of different length. Uses Tanimoto method from 10.1021/ci800326z
fp1
- The first fingerprintfp2
- The second fingerprintmethod1(org.openscience.cdk.fingerprint.ICountFingerprint, org.openscience.cdk.fingerprint.ICountFingerprint)
,
method2(org.openscience.cdk.fingerprint.ICountFingerprint, org.openscience.cdk.fingerprint.ICountFingerprint)
public static double method1(ICountFingerprint fp1, ICountFingerprint fp2)
fp1
- count fingerprint 1fp2
- count fingerprint 2public static double method2(ICountFingerprint fp1, ICountFingerprint fp2)
fp1
- count fingerprint 1fp2
- count fingerprint 2Copyright © 2021. All rights reserved.