Skip to content

MolFeat plugin registry

This document explains how to register a plugin in MolFeat for listing on our website.

The MolFeat plugin registry aims to be the home for all publicly available MolFeat plugins. It collects information on the type of plugins provided by your package, which MolFeat versions it is compatible with, etc.

If you are starting to develop a new plugin or if you already have one, please register it here. We strongly encourage to register at early stages of development, both to reserve the name of your plugin and to inform the community of your ongoing work.

How to register a plugin

  1. Fork this repository
  2. Add your plugin to the end of the plugins.yaml file, e.g.
    ...
    molfeat-new:
        entry_point_prefix: new
        home_url: ~
        documentation_url: ~
        molfeat_version: ~
    
  3. Create a Pull Request to this repository

Valid keys for each plugin

  • top-level key (required): The name under which your plugin will be distributed. By convention, names of MolFeat plugins are lowercase and prefixed by molfeat- (e.g molfeat-myplugin)
  • entry_point_prefix (required): The prefix of all entry points provided by the plugin. By convention, a plugin molfeat-xxx should use entry_point_prefix: xxx. For example: molfeat-myplugin uses the entry point prefix myplugin and provides numerous entry points, all of which start with myplugin..
  • home_url (required): The link to the homepage of the plugin, for example its github repository.
  • molfeat_version (required): The molfeat version required for your plugin to work.
  • documentation_url (optional): The link to the online documentation for your plugin, for example on readthedocs.org .

Model Card in pull request

In you pull request, please provide a json or yaml file (or its content) that should list information on available models that are offered in your plugin.

If your plugin does not provide any additional model, you can ignore this step. An example of such a file is provided below. You will need to provide all keys:

# name of the featurizer, str
name: awesome-featurizer 
# description of your featurizer, str
description: Concise description for the awesome-featurizer
# type of input the featurizer takes, str
inputs: smiles 
# link to the reference of the featurizer
reference: https://link-to-the-awesome-paper/
# type of featurizer, Literal["pretrained", "hand-crafted", "hashed"]
type: "pretrained" 
# output representation of the featurizer, Literal["graph", "line-notation", "vector", "tensor", "other"]
representation: vector 
# Whether 3D information are required, Optional[bool]
require_3D: false 
# up to 5 tags you want to add for searching your featurizer, List[str]
tags:
    - pretrained
    - 3D
    - GNN
authors: # list the authors, List[str]
    - Awesome Team 1