@TestClass(value="org.openscience.cdk.similarity.TanimotoTest") 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 [Grant06 (not found in db)].
|
@TestMethod(value="testTanimoto1,testTanimoto2") 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 length@TestMethod(value="testCalculate_BitFingerprint,testCompareBitSetandBitFingerprintTanimoto") public 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 length@TestMethod(value="testTanimoto3") public 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 length@TestMethod(value="testTanimoto4") public 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 map@TestMethod(value="testICountFingerprintComparison") public 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)
@TestMethod(value="method1") public static double method1(ICountFingerprint fp1, ICountFingerprint fp2)
fp1
- count fingerprint 1fp2
- count fingerprint 2@TestMethod(value="method2") public static double method2(ICountFingerprint fp1, ICountFingerprint fp2)
fp1
- count fingerprint 1fp2
- count fingerprint 2Copyright © 2014. All Rights Reserved.