ersilia
The Ersilia Model Hub, a repository of AI/ML models for infectious and neglected disease research.
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
Keywords from Contributors
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
Metadata Files
README.md
💊 Welcome to the Ersilia Model Hub!
Table of Contents
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.
- To find your models of interest, visit the Ersilia Model Hub browser
- For high-level documentation, check the Ersilia Book
- For a low-level documentation for developers, see the Ersilia API reference
Quick Start Guide
Installation
Please check the package requirements in the Installation Guide. In brief:
- You need to install the Ersilia CLI. This is the central tool to manage models in the Ersilia Model Hub.
- 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:
- A good place to start is checking open GitHub Issues
- If you have identified a bug in the code, please open a new issue using the Bug Report template
- Share any feedback with the community using GitHub Discussions for the project
- If you wish to contribute to our main codebase, please make sure to follow our guidelines for codebase quality and consistency
- Check our Contributing Guide for more details
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:
- Turon, Hlozek, et al. Nature Communications, 2023
- Van Heerden, et al. ACS Omega, 2023
- Offensperger, Tin, Duran-Frigola, et al. Science, 2024
- Turon, et al. ACS Med Chem Lett, 2024
In addition, our views on how the Ersilia Model Hub can be deployed effectively in Africa can be found in these two articles:
- Turon and Duran-Frigola, Artificial Intelligence in the Life Sciences, 2024
- Turon and Duran-Frigola, ACS Infectious Disease Research, 2024
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
- Website: ersilia.io
- Twitter: ersiliaio
- Repositories: 64
- Profile: https://github.com/ersilia-os
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
Top Committers
| Name | 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... | ||
Committer Domains (Top 20 + Academic)
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
Pull Request Labels
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
- Homepage: https://ersilia.io
- Documentation: https://ersilia.io/model-hub
- License: GPLv3
-
Latest release: 0.1.48
published 4 months ago
Rankings
Maintainers (1)
Dependencies
- 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
- peter-evans/slash-command-dispatch a28ee6cd74d5200f99e247ebc7b365c03ae0ef3c composite
- 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
- 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
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- actions/setup-python 61a6322f88396a6271a6ee3565807d608ecaddd1 composite
- GrantBirki/json-yaml-validate 1652fde01b1be71dfa7131148819e67639792673 composite
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- actions/setup-python 61a6322f88396a6271a6ee3565807d608ecaddd1 composite
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- actions/upload-artifact 0b7f8abb1508181956e8e162db84b466c27e18ce composite
- actions-js/push 156f2b10c3aa000c44dbe75ea7018f32ae999772 composite
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- actions/upload-artifact 0b7f8abb1508181956e8e162db84b466c27e18ce composite
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- de-vri-es/setup-git-credentials v2 composite
- actions/checkout f43a0e5ff2bd294095638e18286ca9a3d1956744 composite
- dmnemec/copy_file_to_another_repo_action c93037aa10fa8893de271f19978c980d0c1a9b37 composite
- python 3.10 build
- ubuntu 20.04 build
- ubuntu 20.04 build
- ubuntu 20.04 build
- python 3.7-slim-buster build
- ersiliaos/base latest build
- bentoml/model-server 0.11.0-py37 build
- bentoml/model-server 0.11.0-slim-py37 build
- bentoml/model-server 0.11.0-slim-py37 build
- bentoml/model-server 0.11.0-py37 build
- bentoml/model-server 0.11.0-slim-py37 build
- 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"