Skip to main content
QICK (Quantum Instrumentation Control Kit) is an open-source RFSoC-based qubit controller. The qick_dataerai package — distributed in a Dataerai-enabled build of QICK — connects a QICK experiment to Dataerai: when a program runs, it uploads the experiment configuration, the raw acquired IQ data, and any analysis outputs as Dataerai assets, linked by typed provenance relationships. The result is a verifiable lineage for every measurement — configuration → raw data → analysis — so any result can be traced back to the exact configuration and raw data that produced it.

How it captures provenance

Each run creates assets and links them with directed relationships (the edge points from the derived asset to its origin):
  • raw_data  --acquired_with-->  config
  • analysis  --analysis_of-->  raw_data
Every asset in a run also shares a run_id — stored in its metadata and as a qick-run:<id> tag — and is tagged qick-dataerai, so you can find one run, or every QICK run, by searching for the tag.

Install

1

Install QICK with the Dataerai integration

Install the Dataerai-enabled build of QICK, which adds the qick_dataerai package on top of QICK:
This pulls the Python SDK and matplotlib alongside QICK. If your QICK build doesn’t expose the dataerai extra, install the Python SDK and matplotlib yourself, then add qick_dataerai from the Dataerai-enabled QICK distribution.
2

Install the Dataerai binary and sign in

The SDK drives the local dataerai daemon. Install the CLI (which bundles the binary) and sign in:

Capture a run

The one-call helper captures a configuration, an acquisition, and an analysis figure, wiring all the provenance edges:

What gets stored

The analysis_mode on an analysis link records how the measurement affected the sample (non_destructive, altering, destructive, in_situ, ex_situ, invasive, non_invasive).
Provenance capture is best-effort by default: if an upload or link fails, the run records the error and continues, so it never crashes your experiment. Pass on_error="fail_fast" to raise instead.

Under the hood

qick_dataerai is a thin layer over the Python SDK: it upload()s each artifact and calls create_relationship to wire the edges. You can build the same provenance graphs for any other instrument or pipeline with those two calls.

Next steps

Python SDK

The upload and create_relationship methods this builds on.

Provenance & relationships

The lineage model behind the links.