Skip to main content
Isaura logo

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.


Python uv Docker Code style: black License


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


Step 1 — Clone and install

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

Using uv? Run uv sync instead and activate the environment with source .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-public and isaura-private are reserved — they cannot be fully destroyed, but individual model versions inside them can be removed with --model-id and --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.

Ersilia Logo

Metadata

Release files for isaura 2.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for isaura 2.4.1
File Size Uploaded Provenance
isaura-2.4.1.tar.gz 1.4 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for isaura 2.4.1
File Interpreter ABI Platform
isaura-2.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.8 MB

Release files / isaura-2.4.1.tar.gz

Download URL isaura-2.4.1.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
ba7b7b9f3dc4914d43cab1318e8305e88bc9a3c47bcda2080c413182234dcadd
BLAKE2b-256 checksum
How to use checksums
55bcbb5381108a90b1e62bb26d842bf67bdebdeca8f1d22d28a53b3a6d277714
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.12.3 Linux/6.17.0-1020-azure

Release files / isaura-2.4.1-py3-none-any.whl

Download URL isaura-2.4.1-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4bdfb74a5e5a0002a430902e57de5feedaf27fa8e05ae8e7f7ec23debadff995
BLAKE2b-256 checksum
How to use checksums
277ae49335dd2254ec57873d700a4e85edaa09c658a81fe6306518f1b3fd959f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.12.3 Linux/6.17.0-1020-azure

Security for isaura 2.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page