Package chemaxon.descriptors
Class Metrics
java.lang.Object
chemaxon.descriptors.Metrics
The 
Metrics class implements dissimilarity metrics for
 MolecularDescriptors. For the sake of general availability
 of this dissimilarity calculations by any MolecularDescriptor
 derivatives, methods take float and int arrays as input parameters, thus
 they do not need to access to the internal representation of descriptors.
 This, however, may introduce some overhead in dissimilarity calculations,
 since MolecularDescriptor objects may need to transform their
 internal representation into an int or a float array. If this overhead
 is significant, then the required dissimilarity function has to be
 implemented as part of the descriptor class.- Since:
- JChem 2.3
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic floatasymmetricEuclidean(float[] v1, float[] v2, double asymmetryFactor) Calculates the asymmetric Euclidean distance.static floatasymmetricEuclidean(int[] v1, int[] v2, double asymmetryFactor) Calculates the asymmetric Euclidean distance.static floatasymmetricNormalizedEuclidean(float[] v1, float[] v2, double asymmetryFactor) Calculates the asymmetric normalized Euclidean distance.static floatasymmetricNormalizedEuclidean(int[] v1, int[] v2, double asymmetryFactor) Calculates the asymmetric normalized Euclidean distance.static floatasymmetricTanimoto(float[] v1, float[] v2, float asymmetryFactor) Calculates the asymmetric Tanimoto dissimilarity for floating point values.static floatasymmetricTanimoto(int[] v1, int[] v2, float asymmetryFactor) Calculates the asymmetric Tanimoto dissimilarity for floating point values.static floatbinaryAsymmetricEuclidean(int[] v1, int[] v2, float asymmetryFactor) Calculates the asymmetric Euclidean distance of binary descriptors.static floatbinaryAsymmetricNormalizedEuclidean(int[] v1, int[] v2, float asymmetryFactor) Calculates the asymmetric normalized Euclidean distance of binary descriptors.static floatbinaryAsymmetricNormalizedEuclidean(int[] v1, int oneCount1, int[] v2, int oneCount2, float asymmetryFactor) Calculates the asymmetric normalized Euclidean distance of binary descriptors.static floatbinaryAsymmetricTanimoto(int[] v1, int[] v2, float asymmetryFactor) Calculates asymmetric Tanimoto dissimilarity for binary descriptors.static floatbinaryAsymmetricTanimoto(int[] v1, int oneCount1, int[] v2, int oneCount2, float asymmetryFactor) Calculates asymmetricTanimoto dissimilarity for binary descriptors.static floatbinaryEuclidean(int[] v1, int[] v2) Calculates the Euclidean distance of two binary descriptors.static floatbinaryNormalizedEuclidean(int[] v1, int[] v2) Calculates the normalized Euclidean distance of two binary descriptors.static floatbinaryNormalizedEuclidean(int[] v1, int oneCount1, int[] v2, int oneCount2) Calculates the normalized Euclidean distance of two binary descriptors.static floatbinaryTanimoto(int[] v1, int[] v2) Calculates Tanimoto dissimilarity for binary descriptors.static floatbinaryTanimoto(int[] v1, int oneCount1, int[] v2, int oneCount2) Calculates Tanimoto dissimilarity for binary descriptors.static floatbinaryTversky(int[] v1, float wv1, int[] v2, float wv2) Calculates Tversky dissimilarity for binary descriptors.static floatbinaryWeightedAsymmetricEuclidean(int[] v1, int[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric Euclidean distance of binary descriptors.static floatbinaryWeightedAsymmetricNormalizedEuclidean(int[] v1, int[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric normalized Euclidean distance of binary descriptors.static floatbinaryWeightedAsymmetricNormalizedEuclidean(int[] v1, int oneCount1, int[] v2, int oneCount2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric normalized Euclidean distance of binary descriptors.static floatbinaryWeightedEuclidean(int[] v1, int[] v2, float[] weights) Calculates the weighted Euclidean distance of binary descriptors.static floatbinaryWeightedNormalizedEuclidean(int[] v1, int[] v2, float[] weights) Calculates the weighted normalized Euclidean distance of binary descriptors.static floatbinaryWeightedNormalizedEuclidean(int[] v1, int oneCount1, int[] v2, int oneCount2, int[] weights) Calculates the weighted normalized Euclidean distance of binary descriptors.static intcalcBitCount(int i) Counts the number of bits set (1) in the integer parameter.static intcalcBitCount(int[] v) Counts the number of bits set (1) in a bit vector.static floateuclidean(float[] v1, float[] v2) Calculates the Euclidean distance.static floateuclidean(int[] v1, int[] v2) Calculates the Euclidean distance.static floatnormalizedEuclidean(float[] v1, float[] v2) Calculates the normalized Euclidean distance.static floatnormalizedEuclidean(int[] v1, int[] v2) Calculates the normalized Euclidean distance.static floatscaledAsymmetricTanimoto(float[] v1, float[] v2, float[] hypothesis, float scaleFactor, float asymmetryFactor) Calculates the scaled asymmetric Tanimoto dissimilarity for floating point values.static floatscaledAsymmetricTanimoto(int[] v1, int[] v2, float[] hypothesis, float scaleFactor, float asymmetryFactor) Calculates the scaled asymmetric Tanimoto dissimilarity for floating point values.static floatscaledTanimoto(float[] v1, float[] v2, float[] hypothesis, float scaleFactor) Calculates the scaled Tanimoto dissimilarity for floating point values.static floatscaledTanimoto(int[] v1, int[] v2, float[] hypothesis, float scaleFactor) Calculates the scaled Tanimoto dissimilarity for floating point values.static floattanimoto(float[] v1, float[] v2) Calculates Tanimoto dissimilarity for floating point values.static floattanimoto(int[] v1, int[] v2) Calculates Tanimoto dissimilarity for floating point values.static floattversky(float[] v1, float wv1, float[] v2, float wv2) Calculates Tversky dissimilarity for floating point values.static floattversky(int[] v1, float wv1, int[] v2, float wv2) Calculates Tversky dissimilarity index for integer values.static floatweightedAsymmetricEuclidean(float[] v1, float[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric Euclidean distance.static floatweightedAsymmetricEuclidean(int[] v1, int[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric Euclidean distance.static floatweightedAsymmetricNormalizedEuclidean(float[] v1, float[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric normalized Euclidean distance.static floatweightedAsymmetricNormalizedEuclidean(int[] v1, int[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric normalized Euclidean distance.static floatweightedEuclidean(float[] v1, float[] v2, float[] weights) Calculates the weighted Euclidean distance.static floatweightedEuclidean(int[] v1, int[] v2, float[] weights) Calculates the weighted Euclidean distance.static floatweightedNormalizedEuclidean(float[] v1, float[] v2, float[] weights) Calculates the weighted normalized Euclidean distance.static floatweightedNormalizedEuclidean(int[] v1, int[] v2, float[] weights) Calculates the weighted normalized Euclidean distance.
- 
Constructor Details- 
Metricspublic Metrics()
 
- 
- 
Method Details- 
euclideanpublic static float euclidean(float[] v1, float[] v2) Calculates the Euclidean distance. The dissimilarity coefficient returned ranges from 0 to MAX_FLOAT, this coefficient is not normalized.- Parameters:
- v1- first vector
- v2- second vector
- Returns:
- dissimilarity coefficient
 
- 
normalizedEuclideanpublic static float normalizedEuclidean(float[] v1, float[] v2) Calculates the normalized Euclidean distance. The dissimilarity coefficient returned ranges from 0 to 1.- Parameters:
- v1- first vector
- v2- second vector
- Returns:
- dissimilarity coefficient
 
- 
asymmetricEuclideanpublic static float asymmetricEuclidean(float[] v1, float[] v2, double asymmetryFactor) Calculates the asymmetric Euclidean distance. The dissimilarity coefficient returned ranges from 0 to MAX_FLOAT. This metric is also known as directed Euclidean.- Parameters:
- v1- first vector
- v2- second vector
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
asymmetricNormalizedEuclideanpublic static float asymmetricNormalizedEuclidean(float[] v1, float[] v2, double asymmetryFactor) Calculates the asymmetric normalized Euclidean distance. The dissimilarity coefficient returned ranges from 0 to 1.- Parameters:
- v1- first vector
- v2- second vector
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
weightedEuclideanpublic static float weightedEuclidean(float[] v1, float[] v2, float[] weights) Calculates the weighted Euclidean distance.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- Returns:
- dissimilarity coefficient
 
- 
weightedNormalizedEuclideanpublic static float weightedNormalizedEuclidean(float[] v1, float[] v2, float[] weights) Calculates the weighted normalized Euclidean distance.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- Returns:
- dissimilarity coefficient
 
- 
weightedAsymmetricEuclideanpublic static float weightedAsymmetricEuclidean(float[] v1, float[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric Euclidean distance.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
weightedAsymmetricNormalizedEuclideanpublic static float weightedAsymmetricNormalizedEuclidean(float[] v1, float[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric normalized Euclidean distance.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
tanimotopublic static float tanimoto(float[] v1, float[] v2) Calculates Tanimoto dissimilarity for floating point values.- Parameters:
- v1- first vector
- v2- second vector
- Returns:
- Tanimoto dissimilarity
 
- 
tverskypublic static float tversky(float[] v1, float wv1, float[] v2, float wv2) Calculates Tversky dissimilarity for floating point values.- Parameters:
- v1- first vector
- wv1- weight for the first vector
- v2- second vector
- wv2- weight for the second vector
- Returns:
- Tversky index
 
- 
asymmetricTanimotopublic static float asymmetricTanimoto(float[] v1, float[] v2, float asymmetryFactor) Calculates the asymmetric Tanimoto dissimilarity for floating point values.- Parameters:
- v1- first vector
- v2- second vector
- asymmetryFactor- asymmetry ratio
- Returns:
- Tanimoto dissimilarity
 
- 
scaledTanimotopublic static float scaledTanimoto(float[] v1, float[] v2, float[] hypothesis, float scaleFactor) Calculates the scaled Tanimoto dissimilarity for floating point values.- Parameters:
- v1- first vector
- v2- second vector
- hypothesis- scaling (consensus) hypothesis
- scaleFactor- scale factor
- Returns:
- Tanimoto dissimilarity
 
- 
scaledAsymmetricTanimotopublic static float scaledAsymmetricTanimoto(float[] v1, float[] v2, float[] hypothesis, float scaleFactor, float asymmetryFactor) Calculates the scaled asymmetric Tanimoto dissimilarity for floating point values.- Parameters:
- v1- first vector
- v2- second vector
- hypothesis- scaling (consensus) hypothesis
- scaleFactor- scale factor
- asymmetryFactor- asymmetry ratio
- Returns:
- Tanimoto dissimilarity
 
- 
euclideanpublic static float euclidean(int[] v1, int[] v2) Calculates the Euclidean distance. The dissimilarity coefficient returned ranges from 0 to MAX_FLOAT, this coefficient is not normalized.- Parameters:
- v1- first vector
- v2- second vector
- Returns:
- dissimilarity coefficient
 
- 
normalizedEuclideanpublic static float normalizedEuclidean(int[] v1, int[] v2) Calculates the normalized Euclidean distance. The dissimilarity coefficient returned ranges from 0 to 1.- Parameters:
- v1- first vector
- v2- second vector
- Returns:
- dissimilarity coefficient
 
- 
asymmetricEuclideanpublic static float asymmetricEuclidean(int[] v1, int[] v2, double asymmetryFactor) Calculates the asymmetric Euclidean distance. The dissimilarity coefficient returned ranges from 0 to MAX_FLOAT. This metric is also known as directed Euclidean.- Parameters:
- v1- first vector
- v2- second vector
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
asymmetricNormalizedEuclideanpublic static float asymmetricNormalizedEuclidean(int[] v1, int[] v2, double asymmetryFactor) Calculates the asymmetric normalized Euclidean distance. The dissimilarity coefficient returned ranges from 0 to 1.- Parameters:
- v1- first vector
- v2- second vector
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
weightedEuclideanpublic static float weightedEuclidean(int[] v1, int[] v2, float[] weights) Calculates the weighted Euclidean distance.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- Returns:
- dissimilarity coefficient
 
- 
weightedNormalizedEuclideanpublic static float weightedNormalizedEuclidean(int[] v1, int[] v2, float[] weights) Calculates the weighted normalized Euclidean distance.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- Returns:
- dissimilarity coefficient
 
- 
weightedAsymmetricEuclideanpublic static float weightedAsymmetricEuclidean(int[] v1, int[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric Euclidean distance.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
weightedAsymmetricNormalizedEuclideanpublic static float weightedAsymmetricNormalizedEuclidean(int[] v1, int[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric normalized Euclidean distance.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
tanimotopublic static float tanimoto(int[] v1, int[] v2) Calculates Tanimoto dissimilarity for floating point values.- Parameters:
- v1- first vector
- v2- second vector
- Returns:
- Tanimoto dissimilarity
 
- 
tverskypublic static float tversky(int[] v1, float wv1, int[] v2, float wv2) Calculates Tversky dissimilarity index for integer values.- Parameters:
- v1- first vector
- wv1- weight for the first vector
- v2- second vector
- wv2- weight for the second vector
- Returns:
- Tversky dissimilarity index
 
- 
asymmetricTanimotopublic static float asymmetricTanimoto(int[] v1, int[] v2, float asymmetryFactor) Calculates the asymmetric Tanimoto dissimilarity for floating point values.- Parameters:
- v1- first vector
- v2- second vector
- asymmetryFactor- asymmetry ratio
- Returns:
- Tanimoto dissimilarity
 
- 
scaledTanimotopublic static float scaledTanimoto(int[] v1, int[] v2, float[] hypothesis, float scaleFactor) Calculates the scaled Tanimoto dissimilarity for floating point values.- Parameters:
- v1- first vector
- v2- second vector
- hypothesis- scaling (consensus) hypothesis
- scaleFactor- scale factor
- Returns:
- Tanimoto dissimilarity
 
- 
scaledAsymmetricTanimotopublic static float scaledAsymmetricTanimoto(int[] v1, int[] v2, float[] hypothesis, float scaleFactor, float asymmetryFactor) Calculates the scaled asymmetric Tanimoto dissimilarity for floating point values.- Parameters:
- v1- first vector
- v2- second vector
- hypothesis- scaling (consensus) hypothesis
- scaleFactor- scale factor
- asymmetryFactor- asymmetry ratio
- Returns:
- Tanimoto dissimilarity
 
- 
calcBitCountpublic static int calcBitCount(int i) Counts the number of bits set (1) in the integer parameter.- Parameters:
- i- an integer value
- Returns:
- number of 1 bits in the parameter passed
 
- 
calcBitCountpublic static int calcBitCount(int[] v) Counts the number of bits set (1) in a bit vector.- Parameters:
- v- bit vector, represented by an integer vector, each element stores 32 bits
- Returns:
- number of 1 bits in the bit vector
 
- 
binaryEuclideanpublic static float binaryEuclidean(int[] v1, int[] v2) Calculates the Euclidean distance of two binary descriptors.- Parameters:
- v1- first vector
- v2- second vector
- Returns:
- dissimilarity coefficient
 
- 
binaryNormalizedEuclideanpublic static float binaryNormalizedEuclidean(int[] v1, int[] v2) Calculates the normalized Euclidean distance of two binary descriptors.- Parameters:
- v1- first vector
- v2- second vector
- Returns:
- dissimilarity coefficient
 
- 
binaryNormalizedEuclideanpublic static float binaryNormalizedEuclidean(int[] v1, int oneCount1, int[] v2, int oneCount2) Calculates the normalized Euclidean distance of two binary descriptors. This method should be called in place ofbinaryNormalizedEuclidean( final int[] v1, final int[] v2 )when the number of bits set (1) is known in both input vectors, as this method does not recalculate these values which results in faster operation.- Parameters:
- v1- first vector
- oneCount1- number of 1 bits in v1
- v2- second vector
- oneCount2- number of 1 bits in v1
- Returns:
- dissimilarity coefficient
 
- 
binaryWeightedEuclideanpublic static float binaryWeightedEuclidean(int[] v1, int[] v2, float[] weights) Calculates the weighted Euclidean distance of binary descriptors.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- Returns:
- dissimilarity coefficient
 
- 
binaryWeightedNormalizedEuclideanpublic static float binaryWeightedNormalizedEuclidean(int[] v1, int[] v2, float[] weights) Calculates the weighted normalized Euclidean distance of binary descriptors.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- Returns:
- dissimilarity coefficient
 
- 
binaryWeightedNormalizedEuclideanpublic static float binaryWeightedNormalizedEuclidean(int[] v1, int oneCount1, int[] v2, int oneCount2, int[] weights) Calculates the weighted normalized Euclidean distance of binary descriptors.- Parameters:
- v1- first vector
- oneCount1- number of 1 bits in v1
- v2- second vector
- oneCount2- number of 1 bits in v2
- weights- weight factors for every coordinate
- Returns:
- dissimilarity coefficient
 
- 
binaryAsymmetricEuclideanpublic static float binaryAsymmetricEuclidean(int[] v1, int[] v2, float asymmetryFactor) Calculates the asymmetric Euclidean distance of binary descriptors.- Parameters:
- v1- first vector
- v2- second vector
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
binaryAsymmetricNormalizedEuclideanpublic static float binaryAsymmetricNormalizedEuclidean(int[] v1, int[] v2, float asymmetryFactor) Calculates the asymmetric normalized Euclidean distance of binary descriptors.- Parameters:
- v1- first vector
- v2- second vector
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
binaryAsymmetricNormalizedEuclideanpublic static float binaryAsymmetricNormalizedEuclidean(int[] v1, int oneCount1, int[] v2, int oneCount2, float asymmetryFactor) Calculates the asymmetric normalized Euclidean distance of binary descriptors. This method should be called in place ofbinaryAsymmetricNormalizedEuclidean( final int[] v1, final int[] v2 )when the number of bits set (1) is known in both input vectors, as this method does not recalculate these values which results in faster operation.- Parameters:
- v1- first vector
- oneCount1- number of 1 bits in v1
- v2- second vector
- oneCount2- number of 1 bits in v2
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
binaryWeightedAsymmetricEuclideanpublic static float binaryWeightedAsymmetricEuclidean(int[] v1, int[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric Euclidean distance of binary descriptors.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
binaryWeightedAsymmetricNormalizedEuclideanpublic static float binaryWeightedAsymmetricNormalizedEuclidean(int[] v1, int[] v2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric normalized Euclidean distance of binary descriptors.- Parameters:
- v1- first vector
- v2- second vector
- weights- weight factors for every coordinate
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
binaryWeightedAsymmetricNormalizedEuclideanpublic static float binaryWeightedAsymmetricNormalizedEuclidean(int[] v1, int oneCount1, int[] v2, int oneCount2, float[] weights, float asymmetryFactor) Calculates the weighted asymmetric normalized Euclidean distance of binary descriptors. This method should be called in place ofbinaryWeightedAsymmetricNormalizedEuclidean( final int[] v1, final int[] v2, final float[] weights, float asymmetryFactor )when the number of bits set (1) is known in both input vectors, as this method does not recalculate these values which results in faster operation.- Parameters:
- v1- first vector
- oneCount1- number of 1 bits in v1
- v2- second vector
- oneCount2- number of 1 bits in v2
- weights- weight factors for every coordinate
- asymmetryFactor- asymmetry ratio
- Returns:
- dissimilarity coefficient
 
- 
binaryTanimotopublic static float binaryTanimoto(int[] v1, int[] v2) Calculates Tanimoto dissimilarity for binary descriptors.- Parameters:
- v1- first vector
- v2- second vector
- Returns:
- Tanimoto dissimilarity
 
- 
binaryTverskypublic static float binaryTversky(int[] v1, float wv1, int[] v2, float wv2) Calculates Tversky dissimilarity for binary descriptors.- Parameters:
- v1- first vector
- wv1- weight for the first vector
- v2- second vector
- wv2- weight for the second vector
- Returns:
- Tversky dissimilarity
 
- 
binaryAsymmetricTanimotopublic static float binaryAsymmetricTanimoto(int[] v1, int[] v2, float asymmetryFactor) Calculates asymmetric Tanimoto dissimilarity for binary descriptors.- Parameters:
- v1- first vector
- v2- second vector
- asymmetryFactor- asymmetry ratio
- Returns:
- Tanimoto dissimilarity
 
- 
binaryTanimotopublic static float binaryTanimoto(int[] v1, int oneCount1, int[] v2, int oneCount2) Calculates Tanimoto dissimilarity for binary descriptors. This method should be called in place ofbinaryTanimoto( final int[] v1, final int[] v2 )when the number of bits set (1) is known in both input vectors, as this method does not recalculate these values which results in faster operation.- Parameters:
- v1- first vector
- oneCount1- number of 1 bits in v1
- v2- second vector
- oneCount2- number of 1 bits in v2
- Returns:
- Tanimoto dissimilarity
 
- 
binaryAsymmetricTanimotopublic static float binaryAsymmetricTanimoto(int[] v1, int oneCount1, int[] v2, int oneCount2, float asymmetryFactor) Calculates asymmetricTanimoto dissimilarity for binary descriptors. This method should be called in place ofbinaryTanimoto( final int[] v1, final int[] v2, float asymmetryFactor )when the number of bits set (1) is known in both input vectors, as this method does not recalculate these values which results in faster operation.- Parameters:
- v1- first vector
- oneCount1- number of 1 bits in v1
- v2- second vector
- oneCount2- number of 1 bits in v2
- asymmetryFactor- asymmetry ratio
- Returns:
- Tanimoto dissimilarity
 
 
-