Skip to main content

Integration of rdkit functionality into sklearn pipelines.

Project description

MolPipeline

MolPipeline is a Python package providing RDKit functionality in a Scikit-learn like fashion.

Background

The open-source package scikit-learn provides a large variety of machine learning algorithms and data processing tools, among which is the Pipeline class, allowing users to prepend custom data processing steps to the machine learning model. MolPipeline extends this concept to the field of chemoinformatics by wrapping default functionalities of RDKit, such as reading and writing SMILES strings or calculating molecular descriptors from a molecule-object.

A notable difference to the Pipeline class of scikit-learn is that the Pipline from MolPipeline allows for instances to fail during processing without interrupting the whole pipeline. Such behaviour is useful when processing large datasets, where some SMILES strings might not encode valid molecules or some descriptors might not be calculable for certain molecules.

Publications

The publication is freely available here.

Installation

pip install molpipeline

Usage

See the notebooks folder for basic and advanced examples of how to use Molpipeline.

A basic example of how to use MolPipeline to create a fingerprint-based model is shown below (see also the notebook):

from molpipeline import Pipeline
from molpipeline.any2mol import AutoToMol
from molpipeline.mol2any import MolToMorganFP
from molpipeline.mol2mol import (
    ElementFilter,
    SaltRemover,
)

from sklearn.ensemble import RandomForestRegressor

# set up pipeline
pipeline = Pipeline([
      ("auto2mol", AutoToMol()),                                     # reading molecules
      ("element_filter", ElementFilter()),                           # standardization
      ("salt_remover", SaltRemover()),                               # standardization
      ("morgan2_2048", MolToMorganFP(n_bits=2048, radius=2)),        # fingerprints and featurization
      ("RandomForestRegressor", RandomForestRegressor())             # machine learning model
    ],
    n_jobs=4)

# fit the pipeline
pipeline.fit(X=["CCCCCC", "c1ccccc1"], y=[0.2, 0.4])
# make predictions from SMILES strings
pipeline.predict(["CCC"])
# output: array([0.29])

Molpipeline also provides custom estimators for standard cheminformatics tasks that can be integrated into pipelines, like clustering for scaffold splits (see also the notebook):

from molpipeline.estimators import MurckoScaffoldClustering

scaffold_smiles = [
    "Nc1ccccc1",
    "Cc1cc(Oc2nccc(CCC)c2)ccc1",
    "c1ccccc1",
]
linear_smiles = ["CC", "CCC", "CCCN"]

# run the scaffold clustering
scaffold_clustering = MurckoScaffoldClustering(
    make_generic=False, linear_molecules_strategy="own_cluster", n_jobs=16
)
scaffold_clustering.fit_predict(scaffold_smiles + linear_smiles)
# output: array([1., 0., 1., 2., 2., 2.])

License

This software is licensed under the MIT license. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

molpipeline-0.8.5.tar.gz (100.9 kB view details)

Uploaded Source

Built Distribution

molpipeline-0.8.5-py3-none-any.whl (149.4 kB view details)

Uploaded Python 3

File details

Details for the file molpipeline-0.8.5.tar.gz.

File metadata

  • Download URL: molpipeline-0.8.5.tar.gz
  • Upload date:
  • Size: 100.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for molpipeline-0.8.5.tar.gz
Algorithm Hash digest
SHA256 a3b7bd5cbc3d08dd92cd4f6ae62248f2e10cb76266710e0036a4a60d4b41b316
MD5 fbfa55a668f76a5332d7936b8e00369c
BLAKE2b-256 5f1bc277db8fa6a4fcc5d0b38acb8f5166a227b5ae8ab9f60a70dbb04b874609

See more details on using hashes here.

File details

Details for the file molpipeline-0.8.5-py3-none-any.whl.

File metadata

  • Download URL: molpipeline-0.8.5-py3-none-any.whl
  • Upload date:
  • Size: 149.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for molpipeline-0.8.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3bf4e5facdbe56ae5f9d696d5a876e10a596c339d24409e03cfe294eafa1b3ce
MD5 d045247c6943304240d57dd3c4b6e1da
BLAKE2b-256 064a1ad8d64ef7df31ec9442a599ad206e3053f50447fec7292ef878feb03157

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page