Generates a fingerprint for a given
IAtomContainer. Fingerprints are
one-dimensional bit arrays, where bits are set according to a the occurrence
of a particular structural feature (See for example the Daylight inc. theory
manual for more information). Fingerprints allow for a fast screening step to
exclude candidates for a substructure search in a database. They are also a
means for determining the similarity of chemical structures.
A fingerprint is generated for an AtomContainer with this code:
Molecule molecule = new Molecule();
IFingerprinter fingerprinter =
new HybridizationFingerprinter();
BitSet fingerprint = fingerprinter.getFingerprint(molecule);
fingerprint.size(); // returns 1024 by default
fingerprint.length(); // returns the highest set bit
The FingerPrinter assumes that hydrogens are explicitly given!
Furthermore, if pseudo atoms or atoms with malformed symbols are present,
their atomic number is taken as one more than the last element currently
supported in
PeriodicTable.
Unlike the
Fingerprinter, this fingerprinter does not take into
account aromaticity. Instead, it takes into account SP2
Hybridization.