Recipe-driven, reproducible analysis of experimental data
Project description
LabRecipe
LabRecipe is an open-source Python 3.12+ package for recipe-driven, reproducible analysis of one local experimental CSV, TSV, or explicitly bounded named-sheet XLSX dataset. A strict YAML recipe names data roles and units, explicit preprocessing, transparent analyses, figures, and output policies; one run produces a traceable evidence bundle.
LabRecipe never silently sorts, drops, interpolates, coerces dtypes, infers units, smooths, chooses a baseline, or tunes a parameter. Raw input bytes are immutable and hashed before parsing. Every derived stage, metric, figure, diagnostic, and artifact remains traceable to the raw hash and fully resolved recipe.
Install
python -m pip install labrecipe
For bounded XLSX input:
python -m pip install "labrecipe[excel]"
Tested quickstart
From a repository checkout, run the committed analytical linear control into a new directory:
labrecipe validate examples/clean_time_series/recipe.yaml
labrecipe inspect examples/clean_time_series/recipe.yaml
labrecipe plan examples/clean_time_series/recipe.yaml
labrecipe run examples/clean_time_series/recipe.yaml --output clean-bundle
The same engine is available from Python:
from labrecipe import run_recipe
result = run_recipe(
"examples/clean_time_series/recipe.yaml",
"clean-bundle-api",
)
print(result.manifest.identity.run_id)
Both workflows publish only a complete, hash-validated bundle and refuse to replace an existing target.
What version 0.1 covers
- strict, safely loaded, versioned recipes with complete submitted/resolved identities;
- immutable CSV/TSV and optional bounded XLSX ingestion with structured quality diagnostics;
- explicit group-safe transforms for missingness, structure, units, smoothing, signal processing, normalization, and baseline correction;
- contextual summaries, distributions, scatter/correlation, and conservative outlier/change candidates that are never promoted automatically to physical conclusions;
- evidence-bearing PNG and optional SVG/PDF figures;
- deterministic serialization, artifact-specific numerical tolerances, complete provenance, and atomic no-overwrite publication;
- equivalent validate, inspect, plan/explain, and run behavior through Python and CLI.
Single-dataset local batch analysis is the v1 boundary. Instrument control, arbitrary executable recipe content, external plugins, multi-file cohort workflows, and GUI/cloud services are not part of this release.
Documentation and examples
- Quickstart
- Recipe schema
- CLI and Python API
- Method assumptions
- Troubleshooting
- Reproducibility contract
- Representative example corpus
Contributing and citation
See CONTRIBUTING.md and DEVELOPMENT.md before proposing a change. Security issues follow SECURITY.md. Cite the software using CITATION.cff.
LabRecipe is licensed under Apache-2.0.
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 labrecipe-0.1.1.tar.gz.
File metadata
- Download URL: labrecipe-0.1.1.tar.gz
- Upload date:
- Size: 332.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d6420208035a837ff50eaad62d5227acd4f69084ce618a3f9a53122ec60a130
|
|
| MD5 |
40617435d72c68bafdf01e2c15e85d98
|
|
| BLAKE2b-256 |
31a07d46b450c91e9e9db55022308f6905489e7a2586884329644cd490f09220
|
Provenance
The following attestation bundles were made for labrecipe-0.1.1.tar.gz:
Publisher:
release.yml on JK1234567899999/labrecipe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
labrecipe-0.1.1.tar.gz -
Subject digest:
0d6420208035a837ff50eaad62d5227acd4f69084ce618a3f9a53122ec60a130 - Sigstore transparency entry: 2171882690
- Sigstore integration time:
-
Permalink:
JK1234567899999/labrecipe@426ca4c1e14cd7640e3a9d29160eb3d4e6e3e004 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/JK1234567899999
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@426ca4c1e14cd7640e3a9d29160eb3d4e6e3e004 -
Trigger Event:
push
-
Statement type:
File details
Details for the file labrecipe-0.1.1-py3-none-any.whl.
File metadata
- Download URL: labrecipe-0.1.1-py3-none-any.whl
- Upload date:
- Size: 152.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a8d66a3124ae84c6dd96c1d5dba7c5ab943dda08e7a2f511142eab1e53adf7c
|
|
| MD5 |
d8f44e07407b3c4229f0f2c6a590d2f7
|
|
| BLAKE2b-256 |
e7dbae4aa571a844920a9a0426aa38867b062142218f70a66b7683c9ee239431
|
Provenance
The following attestation bundles were made for labrecipe-0.1.1-py3-none-any.whl:
Publisher:
release.yml on JK1234567899999/labrecipe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
labrecipe-0.1.1-py3-none-any.whl -
Subject digest:
5a8d66a3124ae84c6dd96c1d5dba7c5ab943dda08e7a2f511142eab1e53adf7c - Sigstore transparency entry: 2171882698
- Sigstore integration time:
-
Permalink:
JK1234567899999/labrecipe@426ca4c1e14cd7640e3a9d29160eb3d4e6e3e004 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/JK1234567899999
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@426ca4c1e14cd7640e3a9d29160eb3d4e6e3e004 -
Trigger Event:
push
-
Statement type: