# What are the best fingerprints to characterize molecules?

When working with libraries of thousand of molecules or with de novo design (using combinatorial chemistry), it is usual to filter the libraries using as a criterion the molecular similarity.

The Tanimoto coefficient1 for fingerprint-based similarity calculations is one of the must used coefficient. In order to use it, it is necessary to first, calculate the fingerprint of each molecule in the library. The problem now, is to define which fingerprint to use. Software like OpenBabel is able to compute 4 different fingerprints whereas software like PyBioMed can calculate 19.

The problem now is: how to choose the best fingerprints to characterize the molecular library?

Note: By best, I am inclined to think in a fingerprint sensible to minimum modifications in the the molecule structure.

1 Why is Tanimoto index an appropriate choice for fingerprint-based similarity calculations? D. Bajusz, A. Rácz and K. Héberger. Cheminform 7, 20 (2015). https://doi.org/10.1186/s13321-015-0069-3

tldr; There is not necessarily a "best" fingerprint method because there are many, many ways to generate fingerprints. ECFP4 or ECFP6 with >2048 bits is usually decent.

Generally speaking, a fingerprint is some large vector, typically binary, used for similarity-based screening and more recently machine learning. The elements of the fingerprint are some type of chemical descriptor.

Some recent reviews:

IMHO, there are a few general categories:

• Structural pattern fingerprints (e.g. MACCS) - sets of functional group patterns (e.g. alkyl chains, aromatic rings, ketones, ..) one bit or count per functional group in the fingerprint.
• Daylight-style linear fingerprints - take the atom, and it's linear neighbors
• Circular-style fingerprints (e.g. ECFP) - generating a radius or diameter around the neighbors of an atom. Like the linear fingerprints, these can essentially generate an infinite number of patterns, so it's hashed to a fixed bit vector
• 3D property fingerprints - interatomic distances, surfaces, electrostatic fields, etc.

There are countless new fingerprint schemes produced each year, e.g.

Open Babel can compute a few pattern-style fingerprints (FP3, FP4, and MACCS), the Daylight-style linear FP2 fingerprint, and a variety of ECFP circular fingerprint styles, e.g. ECFP4.

RDKit can generate a whole pile of fingerprints too: http://rdkit.org/docs/GettingStartedInPython.html#fingerprinting-and-molecular-similarity

You might say, but is there a good place to start? The Morgan circular / ECFP fingerprints are really good, especially with a fairly large bit vector (e.g. 2048 bits per molecule) to hash.

I don't think there is an universal answer: the fingerprint is probably highly property dependent, since there is no single property that fully characterizes a molecule. (This is also the likely reason for there being dozens of different definitions for fingerprints; the same situation exists in partial charge analysis that lack a unique definition.)

• But the structure of a molecule isn't unique? I mean, you can prepare a table with structural data from number of bonds, type of bonds, elements, etc. In this case, you are only counting. For charges, it is something different as you need to calculate them using approximations/theories. – Camps Jun 3 '20 at 13:12
• I mean there's an infinite number of ways you can calculate a fingerprint. It all depends what you include in your fingerprint measure. What you're looking at is defining a norm $(R^{3N},R^{3N}) \to R$ with $N$ atoms – Susi Lehtola Jun 3 '20 at 15:15
• @SusiLehtola - I'd completely agree with your answer and comment above, except that "fingerprints" in a cheminformatics sense are often generated without use of 3D coordinates (which would be conformer dependent). I think the partial charge example is useful - there is intellectual thought applied because there is no unique definition. – Geoff Hutchison Jun 4 '20 at 2:05