Skip to content

The Ersilia Model Hub, a repository of AI/ML models for infectious and neglected disease research.

License

Notifications You must be signed in to change notification settings

ersilia-os/ersilia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ‰ Welcome to the Ersilia Model Hub 🌟

Donate Contributor Covenant License: GPL v3 PyPI version fury.io Conda Version Python 3.8 Code style: black DOI documentation Project Status: Active

Table of Contents

  1. Project Description
  2. Quick start guide
  3. Contribute
  4. License and citation
  5. About us

Project Description

The Ersilia Model Hub is a unified platform of pre-trained AI/ML models for 🦠 infectious and neglected disease research. Our mission is to offer an open-source, πŸ›  low-code solution that provides seamless access to AI/ML models for πŸ’Š drug discovery. Models housed in our hub come from two sources:

  • Published models from literature (with due third-party acknowledgement)
  • Custom models developed by the Ersilia team or our valued contributors

You can read more about the project in the Ersilia Book and browse available models in the Ersilia Model Hub.

Quick Start Guide

Please check the package requirements in the Installation Guide. The following steps are a quick start guide to using Ersilia.

First, create a conda environment and activate it:

conda create -n ersilia python=3.10
conda activate ersilia

Then, clone this repository and install with pip:

git clone https://github.com/ersilia-os/ersilia.git
cd ersilia
pip install -e .

Alternatively, you can directly install from PyPi:

pip install ersilia

Once the Ersilia package is installed, you can use the CLI to run predictions. First, select a model from the Ersilia Model Hub and fetch it:

ersilia fetch eos4e40

Note that you can use the model identifier (eos4e40) or its human-readable slug (antibiotic-activity).

Now you can serve the model:

ersilia serve eos4e40

To view some information of the model, type the following:

ersilia info

The simplest way to run a model is by passing a CSV file as input. If you don't have one, you can generate it easily. In this case, we take 5 molecules as an example:

ersilia example -n 5 -f my_input.csv

Now you can run the model:

ersilia run -i my_input.csv -o my_output.csv

To stop the service, you can simply close the model:

ersilia close

Finally, if you don't want to use the model anymore, delete it as follows:

ersilia delete eos4e40

Please see the Ersilia Book for more examples and detailed explanations.

Contribute

The Ersilia Model Hub is a Free, Open Source Software and we highly value new contributors. There are several ways in which you can contribute to the project:

  • A good place to start is checking open issues
  • If you have identified a bug in the code, please open a new issue using the bug template
  • Share any feedback with the community using GitHub Discussions for the project
  • Check our Contributing Guide for more details

The Ersilia Open Source Initiative adheres to the Contributor Covenant code of conduct.

Development Guidelines

To maintain consistency and code quality, we follow certain coding and linting standards. Please adhere to these guidelines when contributing:

Pre-commit Hooks

We use pre-commit and ruff to automate code quality checks. Ensure you install and set up pre-commit and ruff before committing any changes:

  1. Install pre-commit: pip install pre-commit
  2. Set up pre-commit hooks in your local repository by running:
    pre-commit install
  3. When you commit it automatically fix the issues but will fail for critical error such as missing docstring on a public class and public methods.

Manual with Ruff

  1. Run ruff to check for linting errors:
    ruff check .
  2. Automatically fix linting issues (where possible):
    ruff check . --fix

Docstring Style

We adhere to the NumPy-style docstring format. Please document all public methods and functions using this style.

Consistent documentation ensures the code is easy to understand and maintain.

Thank you for your contributions and for helping make the Ersilia Model Hub a better project!

Submit a New Model

If you want to incorporate a new model in the platform, open a new issue using the model request template or contact us using the following form.

After submitting your model request via an issue (suggested), an Ersilia maintainer will review your request. If they approve your request, a new model respository will be created for you to fork and use! There is a demo repository explaining the steps one-by-one.

License and Citation

This repository is open-sourced under the GPL-3 License. Please cite us if you use it!

Authorship

Please note that Ersilia distinguises between software contributors and software authors. The Ersilia Model Hub Authorship guidelines can be found in the Authorship file and current authors can be found in the Citation file. We acknowledge past authors of the software below:

  • Carolina Caballero

Cited by

The Ersilia Model Hub is used in a number of scientific projects. Read more about how we are implementing it in:

About Us

The Ersilia Open Source Initiative is a Non Profit Organization with the mission is to equip labs, universities and clinics in LMIC with AI/ML tools for infectious disease research. Help us achieve our mission!

Funding

The Ersilia Model Hub is the flagship product of Ersilia. It has been funded thanks to a combination of funding sources. Full disclosure can be found in our website. Highlighted supporters include the Mozilla Builders Accelerator, Fast Forward, Splunk Pledge and the AI2050 Program by Schmidt Sciences.