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.2.tar.gz (91.2 kB view details)

Uploaded Source

Built Distribution

molpipeline-0.8.2-py3-none-any.whl (131.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for molpipeline-0.8.2.tar.gz
Algorithm Hash digest
SHA256 60d6fe6f7e6b7eb90bd136799e89333f5a421176a30caebd0986b78bae4b11fc
MD5 e916acb0448fe351dc4f8b7401bcbfba
BLAKE2b-256 2e1f2296b9eadd5695b3a09dce1c85d1b6f84ecf67227c93dffdf9093e49d417

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for molpipeline-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 93933cb2cfd421555dbb61165d7b161e348cefbd5e4ef600cbca2ae598665a7f
MD5 f58e58b1de1037daa76fec5cbfa25647
BLAKE2b-256 f1f271d7cb6a8a87d8b3d5b8129aabf7f0ee848fc20e96baca43541be35ee035

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