The ChemicalFingerprint class implements topological fingerprints as a
type of MolecularDescriptors. Such fingerprints encode the
topological connection between atoms of the chemical graph. Though such
encoding loses information, still it preserves enough to allow fast
comparisons of chemical structures without their direct structural comparison
but instead involving their topological fingerprints.
This class provides two metrics for dissimilarity calculations: Tanimoto and
Euclidean. Many varieties of the base metrics are supported, for instance
scaling, directing, weighting. Euclidean has a normalized form too in order
to upper bound the otherwise unbounded Euclidean metric.

toData

public byte[] toData()

Converts a chemical fingerprint object into a byte array.
This format can be reffered to as an "external representation" since
it servers as the data format for storing fingerprints in databases.
Use the fromData() method to build the fingerprint from
this "external" representation.

getDefaultThreshold

public float getDefaultThreshold(int metricIndex)

Gets a metric dependent default threshold value. Ideally, this value
should be based on statistics, though the actual value is not too
critical, since these are only used in user interfaces to simplify the
use of applications for beginners.

getDissimilarity

Calculates the dissimilarity between two chemical fingerprints using
the specified distance metric. The index of the required metric can be
obtained by calling getMetricIndex( String metricName ) .
New metrics implemented by this class have to be added at the end of
the existing ones.

getLowerBound

public float getLowerBound(java.lang.Object fp2)

Calculates the lower bound estimate of the dissimilarity from the given
fingerprint.
In the case of ChemicalFingerprint a good estimate for the minimum distance
cannot be obtained efficiently (that is, significantly faster than
calculating the proper distance) therefore 0 is returned. This trivial
distance bound estimation will lead to calling getDistance.

Parameters:

fp2 - chemical fingerprint from which distance is measured

Returns:

estimate of the minimum distance

isSubSetOf

Checks if this fingerprint is a subset of another fingerprint that is
passed as method parameter. A binary fingerprint is considered to be
a subset of another if none of its bits is larger than that of the other's.

Parameters:

f - a descriptor which is supposed to be a superset

Returns:

true if this descriptor is a subset of the parameter

getAliasNames

public java.util.List<java.lang.String> getAliasNames()

Simple test function for engineering purposes, comment it out from
released version.