Skip to main content

Work in Progress

Quality of Ersilia predictions

Quality scoring for Ersilia Model Hub predictions. eosquality describes how a model's output for a molecule compares with the same model's behaviour on a reference library and with its training sets. The scores are not ground truth: they do not estimate whether a prediction is correct. Per-column normalisation is done with eosframes.

Installation

Install the latest version of eosquality directly from GitHub:

pip install git+https://github.com/ersilia-os/eosquality.git

The CLI is then available as eosquality. Start by setting it up, which fetches the reference library:

eosquality setup

This downloads about 1.3 GB and stores the library under ~/.eosquality/indices/.

Quick start

The typical workflow is two commands: fit once per Ersilia model, then run on any query dataset against the saved artifacts. fit takes the model's predictions on the reference library (-r), its per-output-column training sets (-t), or both, and fits the matching scores. File and folder names carry the model id and version ([prefix_]<eos_id>_<version>, e.g. reference_eos4e40_v1.csv); a name without them is an error. See the CLI docs.

Fitting a reference library

The input CSV must hold the model's predictions on the exact molecules of the canonical Ersilia reference library for your installed eosquality version, in library order. It needs a key column, an input (SMILES) column, and one numeric column per model output. The artifacts folder (-a) stores the fitted scores.

There is one and only one reference library per major version of eosquality, so the molecule set is fixed by your install. If the SMILES entries in the input CSV don't match that library, fit refuses with an error.

eosquality fit -r reference_eos4e40_v1.csv -a artifacts_eos4e40_v1/
# optionally with training sets: -t training_eos4e40_v1/
# skip a score: --exclude ref_match

Please check Isaura for a large store of pre-calculations across Ersilia models.

Fitting training sets

-t takes a folder with one <output_column>.csv per model output, each with a smiles column. Given both -r and -t, the scores cover only the output columns that have a training set.

eosquality fit -r reference_eos4e40_v1.csv -t training_eos4e40_v1/ -a artifacts_eos4e40_v1/

Running against new samples

At querying time, run loads a fitted artifacts folder and scores any query CSV containing Ersilia results for the same model. A training-only artifact needs nothing but SMILES, in an input or smiles column. The output CSV has key, input, and the columns of each fitted score (see below): percentiles in (0, 1] with their *_raw values, and 1 / 0 match flags. Reference scores are named ref_…, training scores trn_….

eosquality run -i query_eos4e40_v1.csv -a artifacts_eos4e40_v1/ -o quality_eos4e40_v1.csv

Scores

Typicality and extremity compare a query against the model's own predictions on the reference library, which is not ground truth; each is calibrated so that reference molecules score roughly Uniform(0, 1). The match flags are exact lookups against the library's molecules. Training-modality scores compare it against the model's training sets instead, calibrated so that training molecules score roughly Uniform(0, 1).

Score Columns Question
Typicality ref_typicality_pct, ref_typicality_raw Are the predicted values ones the model commonly produces?
Extremity ref_extremity_pct, ref_extremity_raw Are the predicted values far from the centre of the model's output range?
Reference match ref_match, ref_scaffold Is the same structure, or the same Murcko scaffold, in the reference library? 1 or 0.
Training similarity trn_tanimoto_pct, trn_tanimoto_raw How close is the molecule to the model's training molecules (Morgan fingerprints), compared with how close they are to each other? Raw is the mean Tanimoto similarity to the 5 nearest; higher is closer.
Training physchem trn_physchem_pct, trn_physchem_raw The same question in physicochemical descriptor space.
Training match trn_match, trn_scaffold Is the same structure, or the same Murcko scaffold, in a training set? 1 or 0.

The _pct columns are calibrated percentiles and the _raw columns the underlying values. run --details also writes the per-column values and the nearest training molecules.

Documentation

License

GPL-3.0-or-later; see LICENSE.

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 eosquality 0.2.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 eosquality 0.2.1
File Size Uploaded
eosquality-0.2.1.tar.gz 142.2 kB Details

Built distribution (wheel)

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

Total release size: 289.6 kB

Release files / eosquality-0.2.1.tar.gz

Download URL eosquality-0.2.1.tar.gz
Size 142.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e07d04a1c5a814be71734676c81657592ab72a84e63e554c920cab6c3e3b344b
BLAKE2b-256 checksum
How to use checksums
6b74473805118af874561b10d944705d764a982fa5ef2c27235fb6592a3240d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / eosquality-0.2.1-py3-none-any.whl

Download URL eosquality-0.2.1-py3-none-any.whl
Size 147.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6ec6dc6a2b057f55d3eef979137499321f14ce037e2090a961ba06ae48bc34cc
BLAKE2b-256 checksum
How to use checksums
5db7543f7f5a34c5358bd5e3dd2178601939c8000424291572fd9a6e35d1509a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

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