iqm.error_reduction_tools.readout_characterization.data_collection.run_calibration_circuits

iqm.error_reduction_tools.readout_characterization.data_collection.run_calibration_circuits#

iqm.error_reduction_tools.readout_characterization.data_collection.run_calibration_circuits(client, qubits=None, number_of_circuits=50, shots=50000, symmetrize=True, seed=None, equatorial_randomization=True)#

Execute readout error characterization circuits on a quantum computer and collect measurement results.

Generates random basis state preparation circuits and runs them on the specified QC.

Parameters:
  • client (Pulla) – Client for connecting to an IQM quantum computer.

  • qubits (Sequence[str] | None) – Use None to characterize every operational QPU qubit (qubits with a calibrated measure gate), or a list of specific qubit names (e.g., ["QB1", "QB2"]). Explicitly requested qubits that are not operational are dropped with a warning.

  • number_of_circuits (int) – Number of distinct calibration circuits to run.

  • shots (int) – Total measurement shots distributed across all circuits. Each circuit receives shots // number_of_circuits shots.

  • symmetrize (bool) – If True, generates complementary preparation pairs (I↔X).

  • seed (int | None) – Random seed for reproducible preparation string generation.

  • equatorial_randomization (bool) – If True, randomizes X gate phase angles.

Returns:

Submitted job, metadata about the job.

Raises:

ValueError – If shots < number_of_circuits (no shots per circuit), or if no operational qubits remain to characterize.

Return type:

tuple[PullaJob, CalibrationJobInfo]