Git Product home page Git Product logo

molfeat's Introduction

molfeat - the hub for all your molecular featurizers

Docs | Homepage


DOI PyPI Conda PyPI - Downloads Conda PyPI - Python Version license GitHub Repo stars GitHub Repo stars test code-check doc release

Molfeat is a hub of molecular featurizers. It supports a wide variety of out-of-the-box molecular featurizers and can be easily extended to include your own custom featurizers.

  • ๐Ÿš€ Fast, with a simple and efficient API.
  • ๐Ÿ”„ Unify pre-trained molecular embeddings and hand-crafted featurizers in a single package.
  • โž• Easily add your own featurizers through plugins.
  • ๐Ÿ“ˆ Benefit from increased performance through a trouble-free caching system.

Visit our website at https://molfeat.datamol.io.

Installation

Installing Molfeat

Use mamba:

mamba install -c conda-forge molfeat

Tips: You can replace mamba by conda.

Note: We highly recommend using a Conda Python distribution to install Molfeat. The package is also pip installable if you need it: pip install molfeat.

Optional dependencies

Not all featurizers in the Molfeat core package are supported by default. Some featurizers require additional dependencies. If you try to use a featurizer that requires additional dependencies, Molfeat will raise an error and tell you which dependencies are missing and how to install them.

  • To install dgl: run mamba install -c dglteam dgl
  • To install dgllife: run mamba install -c conda-forge dgllife
  • To install fcd_torch: run mamba install -c conda-forge fcd_torch
  • To install pyg: run mamba install -c conda-forge pytorch_geometric
  • To install graphormer-pretrained: run mamba install -c conda-forge graphormer-pretrained
  • To install map4: see https://github.com/reymond-group/map4
  • To install bio-embeddings: run mamba install -c conda-forge 'bio-embeddings >=0.2.2'

If you install Molfeat using pip, there are optional dependencies that can be installed with the main package. For example, pip install "molfeat[all]" allows installing all the compatible optional dependencies for small molecule featurization. There are other options such as molfeat[dgl], molfeat[graphormer], molfeat[transformer], molfeat[viz], and molfeat[fcd]. See the optional-dependencies for more information.

Installing Plugins

The functionality of Molfeat can be extended through plugins. The use of a plugin system ensures that the core package remains easy to install and as light as possible, while making it easy to extend its functionality with plug-and-play components. Additionally, it ensures that plugins can be developed independently from the core package, removing the bottleneck of a central party that reviews and approves new plugins. Consult the molfeat documentation for more details on how to create your own plugins.

However, this does imply that the installation of a plugin is plugin-dependent: please consult the relevant documentation to learn more.

API tour

import datamol as dm
from molfeat.calc import FPCalculator
from molfeat.trans import MoleculeTransformer
from molfeat.store.modelstore import ModelStore

# Load some dummy data
data = dm.data.freesolv().sample(100).smiles.values

# Featurize a single molecule
calc = FPCalculator("ecfp")
calc(data[0])

# Define a parallelized featurization pipeline
mol_transf = MoleculeTransformer(calc, n_jobs=-1)
mol_transf(data)

# Easily save and load featurizers
mol_transf.to_state_yaml_file("state_dict.yml")
mol_transf = MoleculeTransformer.from_state_yaml_file("state_dict.yml")
mol_transf(data)

# List all available featurizers
store = ModelStore()
store.available_models

# Find a featurizer and learn how to use it
model_card = store.search(name="ChemBERTa-77M-MLM")[0]
model_card.usage()

How to cite

Please cite Molfeat if you use it in your research: DOI.

Contribute

See developers for a comprehensive guide on how to contribute to Molfeat

Changelogs

See the latest changelogs at CHANGELOG.rst.

Maintainers

  • @cwognum
  • @maclandrol
  • @hadim

License

Under the Apache-2.0 license. See LICENSE.

molfeat's People

Contributors

maclandrol avatar cwognum avatar hadim avatar mercuryseries avatar dessygil avatar therence1 avatar dominvivo avatar sauravmaheshkar avatar rbyrne-momatx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.