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.
Quickstart · CLI · Python API · Configuration · Docs · Contributing
Why Isaura?
Isaura is Ersilia’s precalculation store: it precomputes and persistently stores model outputs so researchers can retrieve results instantly instead of repeatedly running expensive 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 fast engine developed on top of duckdb and for ANN uses vector search / indexing components (Milvus + NN service)
If you’re integrating Ersilia with Isaura, you typically (check Ersilia Model Hub for more info here):
- run once (generate/store), then
- subsequent runs become fast (retrieve).
Architecture (high level)
-
📝 Write:
CLI / Python API → MinIOPrecomputed outputs are stored as chunked artifacts (e.g., Parquet) undermodel_id/version, and Isaura updates lightweight registries (index/metadata/bloom) for deduplication and fast lookup. -
📥 Read(exact):
CLI / Python API → DuckDB query on MinIO → resultsInputs are matched against the index, then the corresponding rows are fetched directly from the stored chunks. -
⚡ Read (approx / ANN, optional):
CLI / Python API → NN service (+ Milvus) → nearest match → exact fetch from MinIOFor unseen inputs, the NN service finds the closest indexed compound(s); Isaura then retrieves the corresponding stored result from MinIO.
See the deep dive: How it works →
Quickstart
1) Install dependencies & setup env
We recommend using uv.
git clone https://github.com/ersilia-os/isaura.git
cd isaura
uv sync
source .venv/bin/activate
# if you have conda env
# use uv as below
uv pip install -e .
2) Start local services (Docker required)
isaura engine --start
Local dashboards
- MinIO Console:
http://localhost:9001
Default MinIO credentials (local dev):
Username: minioadmin123
Password: minioadmin1234
CLI
Common commands
Write (store outputs)
isaura write -i data/ersilia_output.csv -m eos8a4x -v v2 -pn myproject --access public
Read (retrieve outputs)
isaura read -i data/inputs.csv -m eos8a4x -v v2 -pn myproject -o data/outputs.csv
Copy artifacts to local directory
isaura copy -m eos8a4x -v v1 -pn myproject -o ~/Documents/isaura-backup/
Inspect available entries
isaura inspect -m eos8a4x -v v1 -o reports/available.csv
Python API
from isaura.manage import IsauraWriter, IsauraReader
Write the precalculation
writer = IsauraWriter(
input_csv="data/input.csv",
model_id="eos8a4x",
model_version="v1",
bucket="my-project",
access="public",
)
writer.write()
Read the stored calculation
reader = IsauraReader(
model_id="eos8a4x",
model_version="v1",
bucket="my-project",
input_csv="data/query.csv",
approximate=False,
)
reader.read(output_csv="results.csv")
More examples for CLI and API usage: API and CLI usage
Configuration
Isaura reads configuration from environment variables.
Recommended: .env
Create a .env file in the repo root:
MINIO_ENDPOINT=http://127.0.0.1:9000
NNS_ENDPOINT=http://127.0.0.1:8080
DEFAULT_BUCKET_NAME=isaura-public
DEFAULT_PRIVATE_BUCKET_NAME=isaura-private
Cloud credentials (optional)
export MINIO_CLOUD_AK="<access_key>"
export MINIO_CLOUD_SK="<secret_key>"
export MINIO_PRIV_CLOUD_AK="<access_key>"
export MINIO_PRIV_CLOUD_SK="<secret_key>"
You can define those credentials in the .env as well
See the full list: CONFIGURATION
MinIO Client (optional but recommended)
Install mc to manage buckets:
brew install minio/stable/mc # macOS
# or Linux:
curl -O https://dl.min.io/client/mc/release/linux-amd64/mc && chmod +x mc && sudo mv mc /usr/local/bin/
Configure alias:
mc alias set local http://localhost:9000 minioadmin123 minioadmin1234
mc ls local
Docs
- 📘 How it works: here
- ⚙️ Configuration: here
- 🧰 CLI and API reference: here
- 🧪 Benchmark: here
- 🩹 Troubleshooting / recovery: here
Contributing
PRs are welcome. Please run format + lint before pushing:
uv run ruff format .
If you’re changing CLI behavior, please update 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
Release history Release notifications | RSS feed
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.1.16.tar.gz.
File metadata
- Download URL: isaura-2.1.16.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.12.3 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e89bdaaa867003725356865847712b8a2b9bc7ef46d28e9cb126dc08fc06171
|
|
| MD5 |
6f22b5ef12c5755de6735650655a3fe1
|
|
| BLAKE2b-256 |
0a28967b2c514801d570662d655dd5903ea302200efdee8f9e09bb440434a1a1
|
File details
Details for the file isaura-2.1.16-py3-none-any.whl.
File metadata
- Download URL: isaura-2.1.16-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.12.3 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80f9ef003b7d98dbeda5959df5065cfed853ac954f4e8571a0e5bd101bfc9aa8
|
|
| MD5 |
ef742cf5a451877a76a23d7ebe3bee96
|
|
| BLAKE2b-256 |
93bb7a2eeeac93a13eba3de41225dbbc253f9271b798079534c43aad421b74ee
|