Skip to content

LabOne Q Software User Manual


Welcome to the Zurich Instruments LabOne Q user manual. LabOne Q enables you program quantum experiments on Zurich Instruments QCCS and third party hardware. With LabOne Q, you will experience complex setups as a single machine with intuitive programming in a Python-based domain-specific language, while keeping full control over hundreds of channels. Here, you will find resources for performing everything from basic characterization experiments to complex quantum circuits.

Would you like help getting started? Want a LabOne Q demonstration? Have any questions about your experiment? Please don’t hesitate to contact us at and we will be happy to assist you.

How to use this manual

The manual is organized into sections which contain a variety of information to serve you depending on your use case:

  • The Getting Started chapters will help you begin your LabOne Q journey with installation instructions and your first experiment, as well as an overview of a typical workflow.
  • Functionality & Concepts covers details and explanations of the software in addition to the reference documentation. This is a good place to look if you are looking to understand, for example, what Sections are and how they are used.
  • The API Reference contains basic information about the Python classes and methods you'll use when programming your experiments. This is where to look if you need to know what arguments a function takes or what a parameter defaults to or if you are developer looking to incorporate LabOne Q into your own project.
  • Consult the Learning Guides if you would like hands-on demonstrations to learn about the components of LabOne Q. They are intended to give you the familiarity to master the core functionality of the software. These Learning Guides can be downloaded as Python notebooks at the top of their pages and can also be found on our GitHub.
  • Our How-to Guides are application-based, task-oriented guides that assume some knowledge of the software. They can be thought of as recipes from which you can build your own software and experiments. These how-to guides can be downloaded as Python notebooks at the top of their pages and can also be found on our GitHub.
  • The Release Notes are a great place to see how the software is evolving, to find new features, and to check a list of known issues.

Install LabOne Q

Follow our installation instructions to install LabOne Q or, for hands-on experience, visit the LabOne Q YouTube channel:

LabOne Q Benefits

LabOne Q enables you to program complex setups as a single machine with intuitive programming in a Python-based domain-specific language and control over hundreds of channels. It maximizes system uptime through fast quantum circuit updates and increases the lab throughput by allowing for automated tune-up and calibration.

LabOne Q enables you to define basic characterization experiments as efficiently as complex quantum circuits, such as quantum error correction. LabOne Q is also tailored for optimized scheduling of custom gates, pulses, and waveforms with ultrafast playback and decision logic and waveform replacement thanks to optimized code generation and code execution for Zurich Instruments' advanced signal generators and quantum analyzers.

Intuitive Programming

With LabOne Q, you will take full advantage of Zurich Instruments' system control approach. The software takes care of programming individual Zurich Instruments' quantum computing products and third-party devices, executing experiments and retrieving measurement results while ensuring synchronization and control through one software interface (API). You will define experiments independently of an instrument setup in the domain-specific language (DSL) in Python, and you can manage the connection and execution of experiments on your desired hardware within a session. You don’t need to program the instruments directly (though you have the ability to!); instead, you can focus on scheduling your experiment along with the required gates and pulses directly on the whole quantum system.

High Uptime

LabOne Q separates code generation, handled by the compiler, and execution, handled by the controller. This approach optimizes the balance between execution in the software and on the hardware within and outside of a qubit’s coherence time. While the optimization in the Compiler affects code generation, users maintain full control of the pulses at the sample level within the abstract definition of their quantum circuits in the DSL. LabOne Q guarantees sample-precise radio frequency pulses with optimal operation on the QCCS hardware, so that the burden of optimizing code and resources does not weigh on the experimenter. Users benefit from a maximized usage of the quantum processing unit that enables them to define and schedule experiments continuously, thus achieving a high quantum computer uptime.

Optimized Scheduling

LabOne Q is designed for demanding applications such as error correction protocols, surface code implementations, waveform replacement, and randomized benchmarking on many qubits. Parametric control of pulses, dynamic pulses, modulation frequency and phase updates, real-time branching for feedback, and near-time call-back to user-defined pulse libraries on a higher level are all possible with optimized waveform memory usage and memory-efficient code generation by the compiler and the controller.

Users can easily move from gate to pulse level and to sample-precise control as they program their quantum algorithm or characterization experiments; LabOne Q takes care of scheduling each experiment on Zurich Instruments' hardware.