Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

openauc-io

Open-source Python tools for ingesting, validating, plotting, generating, and archiving analytical ultracentrifugation data.

Documentation · Quickstart · CLI guide · Report a bug · Ask a question

CI Documentation Python License Version

openauc-io — open analytical ultracentrifugation data workflows

Current capabilities

  • Generic long- and wide-format CSV/TSV ingestion
  • Typed canonical AUC experiment model
  • Structural validation and analysis-readiness reporting
  • Shared and per-scan radial-axis support
  • Scan plotting without interpolation or regridding
  • Checksum-verified AUCX archives
  • Deterministic illustrative synthetic data generation
  • Python API and command-line interface

[!IMPORTANT] No scientific AUC analysis is implemented. openauc-io does not currently perform sedimentation fitting, molecular-weight estimation, meniscus detection, convection assessment, scientific quality control, or physically validated Lamm-equation simulation.

Installation

Not on PyPI. From a clone:

git clone https://github.com/ronfinn/openauc-io.git
cd openauc-io
uv sync --all-groups
uv run openauc version          # 0.1.0a1

Or install a locally built wheel:

uv build
uv pip install dist/openauc-0.1.0a1-py3-none-any.whl

Requires Python 3.11, 3.12 or 3.13. Full detail: Installation.

End-to-end example

import openauc
from openauc.plotting import plot_scans

experiment = openauc.load("examples/data/demo_experiment")
print(experiment.summary())

report = experiment.validate()
ax = plot_scans(experiment)

experiment.export("experiment.aucx")
restored = openauc.load("experiment.aucx")
assert restored.to_dict() == experiment.to_dict()

CLI quickstart

uv run openauc generate demo.aucx --format aucx --scenario moving-boundary \
  --scans 20 --points 300 --seed 42
uv run openauc inspect  demo.aucx
uv run openauc validate demo.aucx --readiness
uv run openauc convert  examples/data/demo_experiment archive.aucx

Exit codes: 0 success, 1 structural validation failed, 2 input error, 3 output exists. See the CLI reference.

Scope

The first alpha provides generic long/wide CSV/TSV import, JSON/YAML manifests, a canonical experiment model, structural validation, scan summaries, basic plotting, the versioned .aucx archive with checksums and provenance, synthetic data generation, a CLI, and documentation.

This project is not a replacement for SEDFIT, SEDPHAT, UltraScan, GUSSI or other established AUC analysis software. It performs no sedimentation modelling or fitting. It is an independent, clean-room implementation and does not copy code or interfaces from those tools.

Four ideas are kept deliberately distinct: representation, structural validation, analysis readiness, and scientific suitability — the last of which is always reported as NOT_ASSESSED. See Scientific boundaries.

Documentation

Five-minute quickstart Try it with generated data
Tutorials Complete Python and CLI workflows
How-to guides Task-shaped recipes and troubleshooting
Concepts Data model, validation tiers, readiness
Formats Generic delimited, manifest v1, AUCX
Python API Curated reference
Known limitations What is missing or bounded

Build the site locally:

uv run mkdocs serve      # http://127.0.0.1:8000/

Development

uv sync --all-groups
uv run ruff check .        # lint
uv run ruff format .       # format
uv run mypy                # type-check (strict)
uv run pytest              # tests
uv run mkdocs build --strict

Or run all of those source-tree gates in one command:

uv run python scripts/release_check.py

It checks the source tree only — it builds, tags, releases and publishes nothing. Building and verifying real distribution artifacts, clean-environment smoke testing, tagging, the GitHub release and the PyPI upload are separate steps, all documented in the release checklist.

See CONTRIBUTING.md and the Architecture Decision Records under docs/decisions/.

Licence

Apache License 2.0. Copyright 2026 Ron Finn. See LICENSE and NOTICE.

Citation

If you use openauc-io, please cite it using the metadata in CITATION.cff.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openauc-0.1.0a1.tar.gz (477.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openauc-0.1.0a1-py3-none-any.whl (91.1 kB view details)

Uploaded Python 3

File details

Details for the file openauc-0.1.0a1.tar.gz.

File metadata

  • Download URL: openauc-0.1.0a1.tar.gz
  • Upload date:
  • Size: 477.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for openauc-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 0fb7a10bdd7b6f6db3f8413bd0432601018d87ab7eebf355a62e1a1a675d1126
MD5 9fe5606c027dec57a622245c4d4e4135
BLAKE2b-256 12a22decbd2a4592f3a1eb0fc4dcd4e1fdd7f8d725a12668028c8214fc507adc

See more details on using hashes here.

Provenance

The following attestation bundles were made for openauc-0.1.0a1.tar.gz:

Publisher: publish.yml on ronfinn/openauc-io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openauc-0.1.0a1-py3-none-any.whl.

File metadata

  • Download URL: openauc-0.1.0a1-py3-none-any.whl
  • Upload date:
  • Size: 91.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for openauc-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 1f93b160e204197b7485a235516fd31abdc2a800c7756c0ec28a450bd2f52a4d
MD5 93e5f36909bf1ed44de9e1563fb5196c
BLAKE2b-256 0e7a86a226d1ff95d3f2e450247316d971fade793b9324ae3dd3a4618b4749a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for openauc-0.1.0a1-py3-none-any.whl:

Publisher: publish.yml on ronfinn/openauc-io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0a1 This release

2 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