MLCIL/scikit-fingerprints
MLCIL/scikit-fingerprints has 403 GitHub stars and 36 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 20:49 UTC. Last push 2026-11-02.
Scikit-learn compatible library for molecular fingerprints and chemoinformatics
What you can do
- over 30, e.g. ECFP, Avalon, MACCS, Mordred, PubChem
- all with a uniform .transform() API
- over 30, e.g. Lipinski Rule of 5, PAINS, REOS
- both substructural and physicochemical
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
The scikit-learn compatible library for molecular fingerprints and chemoinformatics.
Easily and efficiently compute molecular fingerprints, molecular filters, distances & similarity measures, and more.
Go from SMILES to production-grade chemoinformatics ML pipelines in a few lines of code.
Documentation · Examples & tutorials · API Reference · Publication
Table of Contents
Install
You can install from PyPI, using pip or uv.
pip install scikit-fingerprints
If you want to use neural fingerprints (embeddings from pretrained neural networks), install optional dependencies with:
pip install "scikit-fingerprints[neural]"
See INSTALL.md for more details.
If you need bleeding-edge features and don't mind potentially unstable or undocumented functionalities, you can also install directly from GitHub:
pip install git+https://github.com/MLCIL/scikit-fingerprints.git
Python versions from 3.11 to 3.13 are supported on all major operating systems. Tests are run on Linux Ubuntu, Windows, and macOS.
Quickstart
Simply input SMILES strings into the molecular fingerprint instance:
from skfp.fingerprints import ECFPFingerprint
smiles = ["O=S(=O)(O)CCS(=O)(=O)O", "O=C(O)c1ccccc1O"]
fp = ECFPFingerprint()
X = fp.transform(smiles) # SMILES in, NumPy array out
Build a full molecular ML pipeline with scikit-learn:
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import make_pipeline, make_union
from skfp.datasets.moleculenet import load_clintox
from skfp.fingerprints import ECFPFingerprint, MACCSFingerprint
from skfp.metrics import extract_pos_proba, multioutput_auroc_score
from skfp.model_selection import scaffold_train_test_split
from skfp.preprocessing import MolFromSmilesTransformer
smiles, y = load_clintox()
smiles_train, smiles_test, y_train, y_test = scaffold_train_test_split(
smiles, y, test_size=0.2
)
pipeline = make_pipeline(
MolFromSmilesTransformer(),
make_union(ECFPFingerprint(count=True), MACCSFingerprint()),
RandomForestClassifier(random_state=0),
)
pipeline.fit(smiles_train, y_train)
y_pred_proba = extract_pos_proba(pipeline.predict_proba(smiles_test))
print(f"AUROC: {multioutput_auroc_score(y_test, y_pred_proba):.2%}")
Key features
-
- over 30, e.g. ECFP, Avalon, MACCS, Mordred, PubChem
- all with a uniform
.transform()API
-
- over 30, e.g. Lipinski Rule of 5, PAINS, REOS
- both substructural and physicochemical
Similarity & distance measures
- 14 measures, e.g. Tanimoto, Dice, MCS
- compatible with kNN, UMAP, HDBSCAN, and other distance-based models
- efficient bulk similarity distribution computation
-
- 11 methods, e.g. kNN, centroid distance, TOPKAT
- evaluate the reliability of algorithms for new molecules
-
- MoleculeNet, Therapeutics Data Commons, MoleculeACE, and LRGB
- train-test splits built-in
Native scikit-learn integration
- use
Pipeline,FeatureUnion,GridSearchCV, and more - build, save, and deploy ML pipelines for chemoinformatics
- use
Other features
- fast and efficient: parallelized, sparse matrices support, C++ RDKit under the hood
- efficient hyperparameter tuning with fingerprints caching
- MIT licensed, permissive academic and commercial use
Tutorials
Step-by-step Jupyter notebooks, both for learning and deploying production-grade features:
- Introduction to scikit-fingerprints
- Fingerprint types
- Molecular pipelines
- Conformers and 3D fingerprints
- Hyperparameter tuning
- Dataset splits
- Datasets and benchmarking
- Similarity and distance metrics
- Molecular filters
- Molecular clustering
Publications and citing
Publications using scikit-fingerprints:
- J. Adamczyk, W. Czech "Molecular Topological Profile (MOLTOP) - Simple and Strong Baseline for Molecular Graph Classification" ECAI 2024
- J. Adamczyk, P. Ludynia "Scikit-fingerprints: easy and efficient computation of molecular fingerprints in Python" SoftwareX
- J. Adamczyk, P. Ludynia, W. Czech "Molecular Fingerprints Are Strong Models for Peptide Function Prediction" ArXiv preprint
- J. Adamczyk "Towards Rational Pesticide Design with Graph Machine Learning Models for Ecotoxicology" CIKM 2025
- J. Adamczyk, J. Poziemski, F. Job, M. Król, M. Makowski "MolPILE - large-scale, diverse dataset for molecular representation learning" ArXiv preprint
- J. Adamczyk, J. Poziemski, P. Siedlecki "Evaluating machine learning models for predicting pesticide toxicity to honey bees" Ecotoxicology and Environmental Safety 2026
- J. Adamczyk, A. Staniszewski "scikit-fingerprints: A Python Library for Scikit-Learn-Compatible Molecular Fingerprints and Chemoinformatics" JCIM 2026
- M. Fitzner et al. "BayBE: a Bayesian Back End for experimental planning in the low-to-no-data regime" RSC Digital Discovery
- J. Xiong et al. "Bridging 3D Molecular Structures and Artificial Intelligence by a Conformation Description Language" bioRxiv preprint
- S. Mavlonazarova et al. "Untargeted Metabolomics Reveals Organ-Specific and Extraction-Dependent Metabolite Profiles in Endemic Tajik Species Ferula violacea Korovin" Plant Direct 2026
- Q. Qian et al. "AutoMPP: Automated Task-Specific Multifingerprint Fusion for Property Prediction of Small Molecules and Macrocycles" ChemMedChem 2026
- B. Liu et al. "Machine learning prediction of bile salt export pump inhibition with Boruta feature selection in imbalanced data" Frontiers in Pharmacology 2026
- P. Charoenkwan et al. "Interpretable QSAR modelling for PPAR-γ agonist prediction by integrating a stacking strategy, docking, and MD simulations" Molecular Diversity 2026
If your publication should be on that list, please make an issue on GitHub.
If you use scikit-fingerprints in your work, please cite our two publications in SoftwareX and Journal of Chemical Information and Modeling (JCIM), both open access. If you have space to cite only one, we recommend citing the SoftwareX paper if you use only molecular fingerprints, or JCIM one if you use molecular filters or other functionalities.
@article{scikit_fingerprints,
author = {Adamczyk, Jakub and Ludynia, Piotr},
title = {Scikit-fingerprints: Easy and efficient computation of molecular fingerprints in Python},
journal = {SoftwareX},
volume = {28},
pages = {101944},
year = {2024},
issn = {2352-7110},
doi = {10.1016/j.softx.2024.101944},
url = {https://www.sciencedirect.com/science/article/pii/S2352711024003145},
}
@article{scikit_fingerprints_2,
author = {Adamczyk, Jakub and Staniszewski, Adam},
title = {scikit-fingerprints: A Python Library for Scikit-Learn-Compatible Molecular Fingerprints and Chemoinformatics},
journal = {Journal of Chemical Information and Modeling},
year = {2026},
month = {10},
issn = {1549-9596},
doi = {10.1021/acs.jcim.6c02602},
url = {https://doi.org/10.1021/acs.jcim.6c02602},
}
Both are also available as preprints on ArXiv: SoftwareX paper and JCIM paper.
Contributing
Contributions are welcome! Please read CONTRIBUTING.md for details.
Note that LLM-generated contributions are strictly forbidden. We do not accept PRs by AI agents or primarily created with code generation tools. They will result in a ban and spam report to GitHub. Usage of LLMs is only allowed to polish human contributions.
License
MIT -- see LICENSE.md for details.
Explore related projects
tensorflow/tensorflow
An Open Source Machine Learning Framework for Everyone
201,427 starshuggingface/transformers
🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.
168,711 starsAUTOMATIC1111/stable-diffusion-webui
Stable Diffusion web UI
165,261 starsComfy-Org/ComfyUI
The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. The fastest local inference engine in the world.
145,835 stars