The ECFP class implements Extended-Connectivity Fingerprints (ECFPs)
as a type of MolecularDescriptors.
ECFPs are circular topological fingerprints designed for molecular characterization,
similarity searching, and structure-activity modeling.
They are among the most popular similarity search tools in drug discovery and
they are effectively used in a wide variety of applications.

The main properties of ECFPs are the following.

They represent molecular structures by means of circular atom neighborhoods.

They can be very rapidly calculated.

Their features represent the presence of particular substructures.

They are not predefined and can represent a huge number of
different molecular features (including stereochemical information).

They are designed to represent both the presence and the absence of
functionality, since both are crucial for analyzing molecular activity.

Their generation method can be flexibly customized to produce various types of circular
fingerprints for diverse applications.

clear

public void clear()

Clears the fingerprint, all values are set to zero.

toData

public byte[] toData()

Converts an ECFP object into a byte array.
This format can be referred to as an "external representation" since
it servers as the data format for storing ECFP fingerprints in databases.
Use the fromData() method to build the ECFP
object 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 ratio between two ECFP
objects using the current default metric.
Default metric is set in the corresponding ECFPParameters
object by setCurrentParametrizedMetric(int metricIndex).
In the case of assymetric distances, swapping the two fingerprints can
make big difference.