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.
PMCID: PMC6896769