ersilia

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

https://github.com/ersilia-os/ersilia

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README
  • Academic publication links
    Links to: sciencedirect.com, nature.com, science.org, acs.org, zenodo.org
  • Committers with academic emails
    9 of 85 committers (10.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

drug-discovery global-south machine-learning model-hub neglected-tropical-disease open-source

Keywords from Contributors

annotation mesh transformers cryptocurrencies attribution energy-system generic sequencers optimism interactive
Last synced: 4 months ago · JSON representation ·

Repository

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

Basic Info
  • Host: GitHub
  • Owner: ersilia-os
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage: https://ersilia.io
  • Size: 39.1 MB
Statistics
  • Stars: 274
  • Watchers: 19
  • Forks: 165
  • Open Issues: 34
  • Releases: 18
Topics
drug-discovery global-south machine-learning model-hub neglected-tropical-disease open-source
Created over 5 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Citation Authors Codemeta

README.md

Ersilia logo

💊 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 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

In Ersilia, you can find models related to antibiotic activity prediction, ADMET prediction, molecular representation, generative chemistry, and much more.

Quick Start Guide

Installation

Please check the package requirements in the Installation Guide. In brief:

  1. You need to install the Ersilia CLI. This is the central tool to manage models in the Ersilia Model Hub.
  2. Each model is packaged independently in its own environment.

To install the Ersilia CLI, create a Conda environment and activate it:

bash conda create -n ersilia python=3.10 conda activate ersilia

Then, clone the current repository and install with pip:

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

Alternatively, you can directly install from PyPi: bash pip install ersilia

Check that Ersilia is properly installed: bash ersilia --help

To install each model, you have two options. You can either package them from source, in which case only Conda is required, or as Docker containers. We highly recommend having Docker installed and active in your computer. In any case, the Ersilia CLI takes care of the packaging seamlessly.

Running a Model

Once the Ersilia package is installed, you can use the CLI to run any model seamlessly. First, select a model from the Ersilia Model Hub and fetch it. Each model in the Ersilia Model Hub has an associated identifier. For example, the broad spectrum activity prediction model from Stokes et al. (2020) has the identifier eos4e40. You can fetch it as follows:

bash ersilia fetch eos4e40

Now you can serve the model:

bash ersilia serve eos4e40

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

bash 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:

bash ersilia example -n 5 -f my_input.csv

Now you can run the model:

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

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

bash ersilia close

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

bash ersilia delete eos4e40

Basic Commands

Below is a list of the most important commands of the Ersilia CLI:

| Command | Description | |------------|--------------------------------------------------| | catalog | List a catalog of models | | close | Close model | | delete | Delete model from local computer | | example | Generate input examples for the model of interest | | fetch | Fetch model from the Ersilia Model Hub | | info | Get model information | | run | Run a served model | | serve | Serve model | | test | Test a model |

Please see the a full reference of all commands available here.

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:

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

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 this 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 following the eos-template. There is a demo repository explaining the steps one-by-one.

License and Citation

This repository is open sourced under the GPL-3 License.

If you find this software useful, please cite us:

Ersilia Model Hub: a repository of AI/ML models for infectious and neglected tropical diseases
Gemma Turon, Abel Legese, Dhanshree Arora, Miquel Duran-Frigola
Version: 0.1.43
DOI: 10.5281/zenodo.7274645
GitHub: https://github.com/ersilia-os/ersilia

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:

In addition, our views on how the Ersilia Model Hub can be deployed effectively in Africa can be found in these two articles:

To see a full list of all Ersilia publications, please visit this link.

About Us

The Ersilia Open Source Initiative is a tech non-profit organization with the mission to equip laboratories, universities, and clinics in the Global South with AI/ML tools for infectious disease research. We work on the principles of open science, decolonized research, and egalitarian access to knowledge and research outputs. You can support Ersilia by clicking here.

Funding

The Ersilia Model Hub is our flagship project. The tool is funded via a combination of sources. Full disclosure can be found in our website. Highlighted supporters include the Mozilla Builders Accelerator, Fast Forward, Splunk Pledge, the AI2050 Program by Schmidt Sciences, and the Spanish Ministry of Science, Innovation, and Universities (grant PID2023-148309OA-I00 funded by MICIU/AEI/10.13039/501100011033).

Owner

  • Name: Ersilia Open Source Initiative
  • Login: ersilia-os
  • Kind: organization
  • Email: hello@ersilia.io
  • Location: United Kingdom

Ersilia is a charity developing open source tools to facilitate global health drug discovery, with a focus on neglected diseases, for equal healthcare

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite it as below.
authors:
- family-names: Turon
  given-names: Gemma
  orcid: https://orcid.org/0000-0001-6798-0275
- family-names: Legese
  given-names: Abel
- family-names: Arora
  given-names: Dhanshree
  orcid: https://orcid.org/0009-0005-1303-4044
- family-names: Duran-Frigola
  given-names: Miquel
  orcid: https://orcid.org/0000-0002-9906-6936
title: 'Ersilia Model Hub: a repository of AI/ML models for infectious and neglected
  tropical diseases'
version: 0.1.48
doi: 10.5281/zenodo.7274645
date-released: ''
url: https://github.com/ersilia-os/ersilia

CodeMeta (codemeta.json)

{
  "@context": [
    "https://doi.org/10.5063/schema/codemeta-2.0",
    "https://w3id.org/software-iodata",
    "https://raw.githubusercontent.com/jantman/repostatus.org/master/badges/latest/ontology.jsonld",
    "https://schema.org",
    "https://w3id.org/software-types"
  ],
  "@type": "SoftwareSourceCode",
  "applicationCategory": "Scientific/Engineering > Artificial Intelligence",
  "author": [
    {
      "@type": "Person",
      "email": "gemma@ersilia.io",
      "familyName": "Turon Rodrigo",
      "givenName": "Gemma"
    },
    {
      "@type": "Person",
      "email": "dhanshree@ersilia.io",
      "familyName": "Arora",
      "givenName": "Dhanshree"
    },
    {
      "@type": "Person",
      "email": "miquel@ersilia.io",
      "familyName": "Duran Frigola",
      "givenName": "Miquel"
    }
  ],
  "codeRepository": "https://github.com/ersilia-os/ersilia/v0.1.51",
  "dateCreated": "2021-01-01",
  "dateModified": "2024-10-01",
  "datePublished": "2022-10-06",
  "description": "A hub of AI/ML models for open source drug discovery and global health",
  "identifier": "10.5281/zenodo.13864883",
  "keywords": [
    "drug-discovery",
    "ersilia",
    "global-health",
    "infectious-diseases",
    "machine-learning",
    "model-hub",
    "open-science"
  ],
  "license": "http://spdx.org/licenses/GPL-3.0-only",
  "name": "Ersilia Model Hub",
  "operatingSystem": "OS Independent",
  "runtimePlatform": [
    "Python 3",
    "Python 3.10",
    "Python 3.11",
    "Python 3.12",
    "Python 3.7",
    "Python 3.8",
    "Python 3.9"
  ],
  "softwareHelp": "https://ersilia.gitbook.io",
  "softwareRequirements": [
    {
      "@type": "SoftwareApplication",
      "identifier": "PyYAML",
      "name": "PyYAML",
      "runtimePlatform": "Python 3",
      "version": ">=6.0.1,<7.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "boto3",
      "name": "boto3",
      "runtimePlatform": "Python 3",
      "version": ">=1.28.40,<2.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "click",
      "name": "click",
      "runtimePlatform": "Python 3",
      "version": ">=8.1.7,<9.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "docker",
      "name": "docker",
      "runtimePlatform": "Python 3",
      "version": ">=6.1.3,<7.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "dockerfile-parse",
      "name": "dockerfile-parse",
      "runtimePlatform": "Python 3",
      "version": ">=2.0.1,<3.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "emoji",
      "name": "emoji",
      "runtimePlatform": "Python 3",
      "version": ">=2.8.0,<3.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "fuzzywuzzy",
      "name": "fuzzywuzzy",
      "runtimePlatform": "Python 3",
      "version": ">=0.18.0,<0.19.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "h5py",
      "name": "h5py",
      "runtimePlatform": "Python 3",
      "version": ">=3.7.0,<4.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "inputimeout",
      "name": "inputimeout",
      "runtimePlatform": "Python 3",
      "version": ">=1.0.4,<2.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "jinja2",
      "name": "jinja2",
      "runtimePlatform": "Python 3",
      "version": ">=3.1.2,<4.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "loguru",
      "name": "loguru",
      "runtimePlatform": "Python 3",
      "version": ">=0.6.0,<0.7.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "numpy",
      "name": "numpy",
      "runtimePlatform": "Python 3",
      "version": "<=1.26.4"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "psutil",
      "name": "psutil",
      "runtimePlatform": "Python 3",
      "version": ">=5.9.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "pytest",
      "name": "pytest",
      "runtimePlatform": "Python 3",
      "version": ">=7.4.0,<8.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "requests",
      "name": "requests",
      "runtimePlatform": "Python 3",
      "version": "<=2.31.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "scipy",
      "name": "scipy",
      "runtimePlatform": "Python 3",
      "version": "<=1.10.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "sphinx",
      "name": "sphinx",
      "runtimePlatform": "Python 3",
      "version": ">=5.3.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "tqdm",
      "name": "tqdm",
      "runtimePlatform": "Python 3",
      "version": ">=4.66.1,<5.0.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "validators",
      "name": "validators",
      "runtimePlatform": "Python 3",
      "version": ">=0.21.0,<0.22.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "validators",
      "name": "validators",
      "runtimePlatform": "Python 3",
      "version": "==0.20.0"
    }
  ],
  "targetProduct": [
    {
      "@type": "CommandLineApplication",
      "executableName": "bentoml",
      "name": "bentoml",
      "runtimePlatform": "Python 3"
    },
    {
      "@type": "CommandLineApplication",
      "executableName": "ersilia",
      "name": "ersilia",
      "runtimePlatform": "Python 3"
    }
  ],
  "url": "https://ersilia.io",
  "downloadUrl": "https://github.com/ersilia-os/ersilia/archive/refs/tags/v0.1.37.tar.gz",
  "version": "0.1.51",
  "relatedLink": "https://ersilia.gitbook.io",
  "developmentStatus": "active",
  "issueTracker": "https://github.com/ersilia-os/ersilia/issues"
}

Committers

Last synced: almost 2 years ago

All Time
  • Total Commits: 1,351
  • Total Committers: 85
  • Avg Commits per committer: 15.894
  • Development Distribution Score (DDS): 0.503
Past Year
  • Commits: 420
  • Committers: 31
  • Avg Commits per committer: 13.548
  • Development Distribution Score (DDS): 0.598
Top Committers
Name Email Commits
miquelduranfrigola m****a@g****m 672
gemmaturon g****a@e****o 133
Grant Birkinbine g****i@g****m 69
dependabot[bot] 4****] 65
Anthony Cui a****1@c****u 30
Dhanshree Arora D****A 27
Ankit Honey h****t@g****m 21
Harshita sharma 7****4 20
Priyansh Singh 6****9 17
Jaya Gupta j****a@g****m 14
SKi m****s 12
Amna-28 a****8@g****m 12
lehcar (rachel) 3****r 10
pauline-banye p****e@g****m 10
AnshuKumari197 8****7 9
Holden Schermer h****n@d****u 8
Eric e****5@g****m 8
Adeola f****1@g****m 8
AC-Dap A****p 8
Chooi Je Qin 4****i 8
GemmaTuron 6****n 8
Betty Mirembe 9****y 7
Jaya Gupta 8****2 7
Rufaida98 9****8 7
Sukriti-sood s****1@g****m 7
Anamika Yadav a****v@g****m 7
Grant Birkinbine g****e@g****m 6
sayantani11 i****i@g****m 5
Riley Pittman r****n@D****t 5
Dennis Onyeka d****5@g****m 5
and 55 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 635
  • Total pull requests: 462
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 8 days
  • Total issue authors: 181
  • Total pull request authors: 55
  • Average comments per issue: 8.2
  • Average comments per pull request: 1.21
  • Merged pull requests: 312
  • Bot issues: 1
  • Bot pull requests: 113
Past Year
  • Issues: 182
  • Pull requests: 174
  • Average time to close issues: 28 days
  • Average time to close pull requests: 6 days
  • Issue authors: 18
  • Pull request authors: 32
  • Average comments per issue: 3.74
  • Average comments per pull request: 1.65
  • Merged pull requests: 87
  • Bot issues: 1
  • Bot pull requests: 15
Top Authors
Issue Authors
  • GemmaTuron (130)
  • miquelduranfrigola (109)
  • DhanshreeA (93)
  • arnaucoma24 (19)
  • Abellegese (16)
  • seanmarcia (9)
  • ankitskvmdam (7)
  • Richiio (7)
  • arinetf3321 (6)
  • samuelmaina (6)
  • leilayesufu (5)
  • Zainab-ik (5)
  • Hamidatmohd (5)
  • Inyrkz (5)
  • kurysauce (5)
Pull Request Authors
  • DhanshreeA (117)
  • dependabot[bot] (114)
  • Abellegese (83)
  • Malikbadmus (31)
  • dzumii (26)
  • miquelduranfrigola (25)
  • GemmaTuron (16)
  • OlawumiSalaam (11)
  • carcablop (8)
  • GrantBirki (7)
  • honeyankit (7)
  • Ajoke23 (6)
  • musasizivictoria (6)
  • HellenNamulinda (4)
  • adebisi4145 (4)
Top Labels
Issue Labels
bug (158) new-model (136) enhancement (41) help wanted (24) good first issue (23) on-hold (13) github_actions (13) model-bug (10) medium (9) GitHub SBV Actions 💪 (9) discussion (9) critical (9) low (8) high (6) documentation (6) question (6) dependencies (2) duplicate (2) model-idea (1)
Pull Request Labels
dependencies (115) github_actions (111) bug (4) enhancement (1) python (1) good first issue (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 251 last-month
  • Total docker downloads: 194
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 45
  • Total maintainers: 1
pypi.org: ersilia

A hub of AI/ML models for open source drug discovery and global health

  • Versions: 45
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 251 Last month
  • Docker Downloads: 194
Rankings
Docker downloads count: 3.4%
Forks count: 4.6%
Stargazers count: 5.9%
Dependent packages count: 7.3%
Average: 9.7%
Downloads: 14.9%
Dependent repos count: 22.1%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/approve-dispatch.yml actions
  • GrantBirki/comment eab1bc94aa728cf526dcd6639bfd067512d4a5cb composite
  • GrantBirki/issue-template-parser v6.1.0 composite
  • GuillaumeFalourd/clone-github-repo-action 62795acaa4a02f89824de75c7025459a9cabaa45 composite
  • actions-js/push 156f2b10c3aa000c44dbe75ea7018f32ae999772 composite
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
  • actions/setup-python 61a6322f88396a6271a6ee3565807d608ecaddd1 composite
.github/workflows/approve-trigger.yml actions
  • peter-evans/slash-command-dispatch a28ee6cd74d5200f99e247ebc7b365c03ae0ef3c composite
.github/workflows/ersilia-base-image-to-dockerhub.yml actions
  • actions/checkout master composite
  • docker/build-push-action v4 composite
  • docker/login-action v2 composite
  • docker/metadata-action v4 composite
  • docker/setup-buildx-action v2 composite
  • docker/setup-qemu-action v2 composite
.github/workflows/ersilia-installer-to-dockerhub.yml actions
  • actions/checkout master composite
  • docker/build-push-action v4 composite
  • docker/login-action v2 composite
  • docker/metadata-action v4 composite
  • docker/setup-buildx-action v2 composite
  • docker/setup-qemu-action v2 composite
.github/workflows/install.yml actions
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
  • actions/setup-python 61a6322f88396a6271a6ee3565807d608ecaddd1 composite
.github/workflows/json-check.yml actions
  • GrantBirki/json-yaml-validate 1652fde01b1be71dfa7131148819e67639792673 composite
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
.github/workflows/pr_check.yml actions
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
.github/workflows/predict-model-input.yml actions
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
.github/workflows/predict-model.yml actions
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
.github/workflows/python-publish.yml actions
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
  • actions/setup-python 61a6322f88396a6271a6ee3565807d608ecaddd1 composite
.github/workflows/quick-manual-model-test.yml actions
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
  • actions/upload-artifact 0b7f8abb1508181956e8e162db84b466c27e18ce composite
.github/workflows/tag-to-version.yml actions
  • actions-js/push 156f2b10c3aa000c44dbe75ea7018f32ae999772 composite
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
.github/workflows/test-colab.yml actions
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
  • actions/upload-artifact 0b7f8abb1508181956e8e162db84b466c27e18ce composite
.github/workflows/test.yml actions
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
.github/workflows/update-model-actions-from-eos-template-input.yml actions
  • de-vri-es/setup-git-credentials v2 composite
.github/workflows/write_secrets.yml actions
  • actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
  • dmnemec/copy_file_to_another_repo_action c93037aa10fa8893de271f19978c980d0c1a9b37 composite
.devcontainer/Dockerfile docker
  • python 3.10 build
dockerfiles/circleci/Dockerfile docker
  • ubuntu 20.04 build
dockerfiles/easyinstallimage/Dockerfile docker
  • ubuntu 20.04 build
dockerfiles/installer/Dockerfile docker
  • ubuntu 20.04 build
dockerfiles/model-deploy/base/Dockerfile docker
  • python 3.7-slim-buster build
dockerfiles/model-deploy/model/Dockerfile docker
  • ersiliaos/base latest build
ersilia/hub/fetch/inner_template/Dockerfile docker
  • bentoml/model-server 0.11.0-py37 build
test/models/eos0t01/Dockerfile docker
  • bentoml/model-server 0.11.0-slim-py37 build
test/models/eos0t02/Dockerfile docker
  • bentoml/model-server 0.11.0-slim-py37 build
test/models/eos0t03/Dockerfile docker
  • bentoml/model-server 0.11.0-py37 build
test/models/eos0t04/Dockerfile docker
  • bentoml/model-server 0.11.0-slim-py37 build
ersilia/cli/commands/setup.py pypi
ersilia/hub/fetch/actions/setup.py pypi
pyproject.toml pypi
  • PyYAML ^6.0.1
  • boto3 ^1.28.40
  • click ^8.1.7
  • docker ^6.1.3
  • dockerfile-parse ^2.0.1
  • emoji ^2.8.0
  • fuzzywuzzy ^0.18.0
  • h5py ^3.7.0
  • inputimeout ^1.0.4
  • isaura 0.1
  • jinja2 ^3.1.2
  • levenshtein ^0.21.1
  • loguru ^0.6.0
  • pyairtable <2
  • pytest ^7.4.0
  • python >=3.7
  • sphinx >=5.3.0
  • tqdm ^4.66.1
  • validators --- - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: 0.20.0 python: 3.7.* - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "~0.21.0" python: ">=3.8"
setup.py pypi