chemfp

chemfp performs high-performance generation and similarity searching of molecular fingerprints for large-scale Tanimoto comparisons and k-nearest-neighbor retrieval.


Key Features:

  • Fingerprint Formats: FPS is a line-oriented text format supporting metadata such as fingerprint type and provenance, and the FPB binary format enables faster loading of fingerprints.
  • AVX2-accelerated popcount: Uses AVX2-optimized popcount operations to compute Tanimoto similarities, achieving approximately 130 million 1024-bit fingerprint Tanimotos per second on a single x86-64 core.
  • BitBound algorithm: Integrates the BitBound algorithm for efficient k=1000 nearest-neighbor searches, with example timings of 27 ms/query for 1.8 million 2048-bit Morgan fingerprints (ChEMBL 24) and 220 ms/query for 970 million PubChem fingerprints.
  • Memory bandwidth optimization: Sorts fingerprints by popcount to improve memory coherency and addresses memory-bandwidth-limited behavior to enable efficient multithreaded N×N similarity matrix construction.
  • Benchmark dataset: Provides a benchmark dataset to facilitate head-to-head comparisons of similarity search implementations.

Scientific Applications:

  • Drug discovery: Rapid similarity-based compound selection and comparison in drug discovery workflows.
  • Virtual screening: Identification of compounds similar to query molecules using Tanimoto similarity on large fingerprint sets.
  • Large-scale database querying: Similarity searches across millions to hundreds of millions of fingerprints such as ChEMBL and PubChem.
  • Algorithm benchmarking and development: Performance benchmarking and evaluation of fingerprint-based search algorithms and implementations.

Methodology:

Uses FPS and FPB fingerprint formats, AVX2-accelerated popcount implementations for Tanimoto calculations, the BitBound pruning algorithm for k-nearest searches, sorting by popcount to improve memory coherency, and multithreaded construction of N×N similarity matrices.

Topics

Details

Programming Languages:
Python
Added:
1/9/2020
Last Updated:
12/11/2020

Operations

Publications

Dalke A. The chemfp Project. Unknown Journal. 2019. doi:10.26434/chemrxiv.7877846.v2.

Dalke A. The chemfp project. Journal of Cheminformatics. 2019;11(1). doi:10.1186/s13321-019-0398-8. PMID:33430977. PMCID:PMC6896769.

Links