A lake of precalculated properties of biomedical entities based on the Ersilia Model Hub
Project description
Ersilia's Precalculation Store
Fast, reproducible access to precalculated model outputs from the Ersilia Model Hub — with a CLI and Python API built for batch workflows.
Installation · CLI · Configuration · Docs
Why Isaura?
Isaura is Ersilia's precalculation store: it persistently stores model outputs so researchers can retrieve results instantly instead of repeatedly running time-consuming inference. This delivers a major research speed-up — especially in low-resource settings where compute, bandwidth, or infrastructure are limited — by turning repeated calculations into reusable shared artifacts. To support equitable access, Ersilia also provides free access to public precalculations, making high-value model outputs available even when local compute isn't.
Isaura provides a structured store for model results so you can:
- ⚡ Skip recomputation by reusing precalculated outputs
- 🧱 Keep artifacts versioned and organized (model → version → bucket/project)
- 📦 Store and retrieve results via S3-compatible object storage (MinIO)
- 🔎 Enable fast retrieval using its engine built on top of DuckDB
Installation
Prerequisites
- Python 3.10+ — download here
- Git — download here
- Docker Desktop — download here — must be open before starting local services
Step 1 — Clone and install
git clone https://github.com/ersilia-os/isaura.git
cd isaura
pip install -e .
Using uv? Run
uv syncinstead and activate the environment withsource .venv/bin/activate.
A local configuration file is created automatically at ~/.isaura/.env with sensible defaults the first time you run any isaura command.
Step 2 — Start local services
Make sure Docker Desktop is open, then run:
isaura engine --start
This starts a local MinIO instance and automatically creates the isaura-public and isaura-private buckets. You can explore the MinIO console at http://localhost:9001 (user: minioadmin123, password: minioadmin1234).
Step 3 — (Optional) Set up remote credentials
If you have access to Ersilia's remote store, add your cloud credentials interactively:
isaura configure --remote
You will be prompted for the cloud endpoint and access keys. Credentials are saved locally to ~/.isaura/.env — nothing is sent anywhere.
Step 4 — Verify your setup
isaura configure --test-credentials
This checks connectivity for local and cloud (if configured) and prints a result table. All rows you care about should show ✓ connected.
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ Target ┃ Bucket ┃ Result ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ Local │ isaura-public │ ✓ connected │
│ Cloud public │ isaura-public │ ✓ connected │
│ Cloud private │ isaura-private │ ✓ connected │
└───────────────┴────────────────┴─────────────┘
CLI
Configuration
isaura configure # show current configuration
isaura configure --remote # add or update remote/cloud credentials
isaura configure --update # update a single credential interactively
isaura configure --show-secrets # show all credential values unmasked
isaura configure --test-credentials # test local and cloud connectivity
Local services
isaura engine # show status of Docker and MinIO
isaura engine --start # start local MinIO
isaura engine --stop # stop local MinIO
Projects
A project is a named MinIO bucket used as a staging area before data reaches the canonical isaura-public or isaura-private buckets.
isaura info # list local projects with access type and creation date
isaura info --remote # list remote projects
isaura create -pn myproject --access public # create a new local project
isaura destroy -pn myproject # destroy an entire project
isaura destroy -pn myproject -m eos8a4x -v v1 # destroy a specific model version
isaura-publicandisaura-privateare reserved — they cannot be fully destroyed, but individual model versions inside them can be removed with--model-idand--version.
Writing outputs
Store model outputs in a project bucket:
isaura write -i data/ersilia_output.csv -m eos8a4x -v v1 -pn myproject
The model ID in --model-id is validated against the filename — if you accidentally pass a file from a different model, isaura will warn you before writing anything.
Reading outputs
Retrieve stored outputs for a set of inputs:
# explicit version
isaura read -i data/inputs.csv -m eos8a4x -v v1 -pn myproject -o data/outputs.csv
# omit --version to automatically use the latest stored version
isaura read -i data/inputs.csv -m eos8a4x -pn myproject -o data/outputs.csv
--project-name is required. --output is optional — without it results are printed but not saved.
Inspecting what is stored
Check which molecules from an input file are already cached:
isaura inspect --model_id eos8a4x -v v1 --access public -i data/inputs.csv -o reports/available.csv
Browse all models in a project:
isaura catalog -pn myproject # local
isaura catalog -pn isaura-public -r # remote
Publishing to the cloud
The cloud hosts two canonical buckets: isaura-public and isaura-private. Write to a local project first, persist it into the canonical bucket, then push to cloud.
Step 1 — write to your local project:
isaura write -i data/ersilia_output.csv -m eos8a4x -v v1 -pn myproject
Step 2 — persist into the canonical bucket:
isaura persist -m eos8a4x -v v1 -pn myproject
This routes molecules tagged public → isaura-public and private → isaura-private based on the project's access setting.
Step 3 — push to cloud:
isaura push -m eos8a4x -v v1 -pn isaura-public
Cloud credentials must be configured first with
isaura configure --remote.
Pulling from the cloud
Download precalculations from the remote store into your local MinIO:
# explicit version
isaura pull -i data/inputs.csv -m eos8a4x -v v1 -pn isaura-public
# omit --version to automatically pull the latest stored version
isaura pull -i data/inputs.csv -m eos8a4x -pn isaura-public
Storage statistics
Generate a JSON inventory of all models in a bucket:
isaura stats -pn isaura-public -o ./reports
isaura stats -pn myproject --remote -o ./reports
Configuration
Configuration is stored in ~/.isaura/.env and created automatically on first run. You can view or update it at any time with:
isaura configure # view current config
isaura configure --update # update any value interactively
isaura configure --remote # add cloud credentials
See the full list of available variables: CONFIGURATION →
Docs
- 📘 How it works: here
- ⚙️ Configuration: here
- 🧰 CLI and API reference: here
- 🧪 Benchmark: here
- 🩹 Troubleshooting / recovery: here
About the Ersilia Open Source Initiative
The Ersilia Open Source Initiative is a tech-nonprofit organization fueling sustainable research in the Global South. Ersilia's main asset is the Ersilia Model Hub, an open-source repository of AI/ML models for antimicrobial drug discovery.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file isaura-2.3.0.tar.gz.
File metadata
- Download URL: isaura-2.3.0.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.12.3 Linux/6.17.0-1015-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cff0037365ad87cd6b14241b5af4156bea44459e8808251c78eefc03be86d645
|
|
| MD5 |
7e85b8bddca7229d37dfc70e713f32ad
|
|
| BLAKE2b-256 |
44197131a34670a22e23bfc18df9fe2200fc4c586caf9eff97e8da0d26594a50
|
File details
Details for the file isaura-2.3.0-py3-none-any.whl.
File metadata
- Download URL: isaura-2.3.0-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.12.3 Linux/6.17.0-1015-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bde5f9cf8477f6c04900d661117a78c403245e72ec5215ef2c6f9fc2cc7b94dd
|
|
| MD5 |
1f731e397c3849ae7f42c59aee9e92b8
|
|
| BLAKE2b-256 |
7354b9b35498c2ae5704cb03a93c7c161fce483619272e722ed324dc1bd0c646
|