Skip to main content

Circadian Workbench

Circadian Workbench is a local-first desktop application and Python package for circadian activity analysis. It imports supported ClockLab and tabular recordings, provides core rhythm views plus a reviewed non-cohort question workbench, and preserves settings and provenance in project, result, figure, and recovery outputs.

Install

pip install "circadian-workbench[desktop]"
circadian-workbench-desktop

Python 3.10 or newer is required. The application runs only on the local machine; it has no account, login, hosted-service, or data-upload requirement.

Offline guide for people and AI callers

The installed package includes searchable workflows, input requirements, method choices, output explanations and troubleshooting. Reading it loads no recordings and does not start the application:

from circadian_workbench import context

print(context.read())
print(context.read("quickstart"))
print(context.search("missing values"))
print(context.read("troubleshooting", format="json"))

Terminal access uses python -m circadian_workbench.context quickstart or python -m circadian_workbench.context --search "missing values" and returns JSON.

Ask one question

No Python is needed:

circadian ask mouse01.awd period
circadian --list-questions

The same scientific engine is available through a small Python front door:

import circadian_workbench as workbench

recording = workbench.open("mouse.awd")
result = recording.detrend(window_hours=24).compare_periods()
result.plot().save("periods.svg")

The figure and its data, statistics, evidence and replay script are saved under .circadian-agent. The original recording is unchanged. No server is needed for Python calls. For a text answer use result.show(); named measurements, tables and series expose results with units.

Numeric traces do not need to be turned into files or pandas DataFrames. This complete example generates a seven-day synthetic signal:

import math
import circadian_workbench as workbench

hours = list(range(168))
values = [20 + 4 * math.cos(2 * math.pi * hour / 24) for hour in hours]
result = workbench.trace(hours, values, name="Synthetic cell",
                        settings={"period_min_hours": 22, "period_max_hours": 26}).compare_periods()
result.show()

For arrays already extracted by another package, use the same short workflow:

import circadian_workbench as workbench

recording = workbench.trace(
    hours,
    values,
    settings={"period_min_hours": 20, "period_max_hours": 28},
)
result = recording.compare_periods()
result.plot(theme="classic").save("periods.svg")

Workbench owns the implemented circadian method catalogue and shared argument definitions. Motion and Auto-Organotypic consume the installed public interface; their new trace entrance is the Workbench function itself. Common figures use one shared builder for scientific data, labels, units, geometry and style. Existing consumer measurement wrappers keep their explicit legacy settings.

Argument meanings, units, choices and installed defaults are shared by Python, the browser and machine calls. Explicit method arguments override per-call settings, which override bound settings, which override fixed defaults. Display options belong to result.plot(...); output folders belong to .save(..., root=...). Earlier runs never choose a new method or theme. Reproduction requires the same data, settings, seeds and recorded software environment, not arbitrary upgrades. result.run_record captures the complete call and software/code identity. result.script verifies the recorded inputs and environment and then checks the recomputed result; the saved figure producer also verifies the declared figure. A mismatch is reported without changing software or choosing defaults from previous runs. This is not a promise of identical raster pixels across different operating systems and font engines.

See the installed Callers and automation guide for populations, phases, measurement channels, result fields, errors, provenance and the version 1 local web application programming interface.

Main capabilities

  • Actograms, profiles, onset/offset fits, fixed cosinor, non-parametric measures, spectral estimators, bouts, and quality checks.
  • Period comparison, rhythmicity, instantaneous phase, entrainment and perturbation, immobility sleep, ultradian rhythm, temperature compensation, within-recording synchrony/spatial/coupling analyses, prospective power, and model prediction.
  • Editable SVG and vector PDF publication bundles with exact plotted data and embedded ReproFig provenance.
  • Verified application snapshots and disposable restore rehearsal.
  • Public task-oriented documentation, also installed with the application, and machine-readable scientific action contracts.

Scientific status

This is beta research software. The distribution distinguishes implemented and internally tested methods from independent validation. Retain original recordings, inspect warnings, and verify outputs for the intended use.

Complete multi-recording experimental management is reserved for a future separately agreed workflow.

Released under the MIT License.

Release files for circadian-workbench 0.9.8

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

Source distribution (sdist)

Source distribution for circadian-workbench 0.9.8
File Size Uploaded
circadian_workbench-0.9.8.tar.gz 4.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for circadian-workbench 0.9.8
File Interpreter ABI Platform
circadian_workbench-0.9.8-py3-none-any.whl Python 3 none any Details

Total release size: 9.6 MB

Release files / circadian_workbench-0.9.8.tar.gz

Download URL circadian_workbench-0.9.8.tar.gz
Size 4.7 MB
Tags Source
SHA-256 checksum
How to use checksums
ac81b1aa785eafafcbe9ec3bb33c0ef3a2124d428f53089541002a93cd24cf5f
BLAKE2b-256 checksum
How to use checksums
6a3246379e7f9de3bcce685f4dc29fa4cc4364c5a2b1a6abe421e4092735e13f
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 Sep 22, 2026.

Transparency log

Release files / circadian_workbench-0.9.8-py3-none-any.whl

Download URL circadian_workbench-0.9.8-py3-none-any.whl
Size 4.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
97a3c19d9d1391bd48bd05909903018b5cc15374a9fcfeda7f8af2745fe5bff0
BLAKE2b-256 checksum
How to use checksums
5ededee7ae2508833a096a9e75711ed514e5ff1562618b5dbbd2e6686f71df5d
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 Sep 22, 2026.

Transparency log

Release history Release notifications | RSS feed

0.13.0

2 release files

This release

0.9.8 This release

2 release files

0.8.2

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.5.0

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