Qibocal provides calibration protocols using Qibo and Qibolab.
Qibocal key features:
-
Declarative inputs using runcard.
-
Generation of a report.
Qibocal documentation is available at https://qibo.science/qibocal/stable/.
The package can be installed from source:
git clone https://github.com/qiboteam/qibocal.git
cd qibocal
pip install .For development make sure to install the package using uv and to install the pre-commit hooks:
git clone https://github.com/qiboteam/qibocal.git
cd qibocal
uv sync
pre-commit installHere is an example on how to run a Rabi experiment in Qibocal.
from qibocal import create_calibration_platform
from qibocal.protocols import rabi_amplitude
# create platform
platform = create_calibration_platform("qubit")
# define qubits where the protocols will be executed
targets = [0]
# define protocol parameters
params = rabi_amplitude.parameters_type.load(
dict(
min_amp=0.01,
max_amp=0.2,
step_amp=0.02,
nshots=2000,
pulse_length=40,
)
)
# acquire
platform.connect()
data, acquisition_time = rabi_amplitude.acquisition(
params=params, platform=platform, targets=targets
)
platform.disconnect()
# post-processing
results, fit_time = rabi_amplitude.fit(data=data)
# visualize the results
plots, table = rabi_amplitude.report(data=data, results=results, target=targets[0])
plots[0].show()The table is written in HTML and can be visualized in Python with
from IPython import display
display.HTML(table)The same experiment can also be run using the following yaml file
platform: qubit
targets: [0]
actions:
- id: rabi
operation: rabi_amplitude
parameters:
min_amp: 0.01
max_amp: 0.2
step_amp: 0.02
nshots: 2000
pulse_length: 40To run the protocol Qibocal uses the qq run command
qq run <runcard> -o <output_folder>If <output_folder> is specified, the results will be saved in it, otherwise qq will automatically create a default folder containing the current date and the username.
In order to upload the report to a centralized server, send to the server administrators your public ssh key (from the machine(s) you are planning to upload the report) and then use the qq upload <output_folder> command. This program will upload your report to the server and generate a unique URL.
Contributions, issues and feature requests are welcome!
Feel free to check
If you use the package please refer to the documentation for citation instructions.
A non-exhaustive list of possible protocols to be implemented in Qibocal is collected here.

