Skip to main content

Quantum Color Centers Analysis Toolbox

Logo

DOI Documentation PyPI Conda Version PyPI Downloads

Pylint Ruff Tests

QuaCCAToo is a Python library for simulating and analyzing spin dynamics of color centers for quantum technology applications. The library provides several predefined pulsed sequences, analysis methods and quantum systems divided into four integrated modules: qsys, pulsed_sim, analysis and exp_data. The systems' time evolution under pulsed experiments are calculated through quantum master equations based on the provided Hamiltonian, with realistic pulses in the laboratory frame without rotating frame approximations. The software is built on top of QuTip, inheriting its object-oriented framework and the Qobj class. The code is continuously improved and maintained using pytest, ruff, pylint and ty.

For learning more about the package, we recommend first checking the tutorials section.

If you used QuaCCAToo in your work, please cite Digital Twin Simulations Toolbox of the Nitrogen-Vacancy Center in Diamond.

Links

Installation

We strongly recommend using a virtual environment using whichever tool like venv/conda/uv that you prefer so that the system Python remains untouched. For example, with conda:

conda create --name quaccatoo-env python
conda activate quaccatoo-env

The package can then be installed from pip:

pip install quaccatoo

Or from conda-forge:

conda install -c conda-forge quaccatoo

Finally, to check installation:

conda list quaccatoo

Check here for detailed installation instructions.

Note for Windows/macOS Users

QuaCCAToo is best optimized to run on GNU/Linux systems. More specifically, the parallel_map method from QuTip, which QuaCCAToo heavily relies on, does not work properly on Windows. This leads to severe slow downs in simulations and even crashes in some hardware. macOS machines have not been tested by us.

Featured In

  • L. Tsunaki, A. Singh, S. Trofimov, & B. Naydenov. (2025). Digital Twin Simulations Toolbox of the Nitrogen-Vacancy Center in Diamond. Advanced Quantum Technologies, e00691. doi: 10.1002/qute.202500691.
  • L. Tsunaki, A. Singh, K. Volkova, S. Trofimov, T. Pregnolato, T. Schröder, & B. Naydenov. (2025). Ambiguous resonances in multipulse quantum sensing with nitrogen-vacancy centers. Physical Review A, 111(2), 022606. doi: 10.1103/PhysRevA.111.022606.
  • L. Tsunaki, M. Dotan, K. Volkova, & B. Naydenov. (2025). Quantum gates via dynamical decoupling of a central qubit on IBMQ and 15N-vacancy centers in diamond. Physical Review A, 113, 042627. doi: 0.1103/6st7-qh12.
  • S. Trofimov, C. Thessalonikios, V. Deinhart, A. Spyrantis, L. Tsunaki, K. Volkova, K. Höflich, & B. Naydenov. (2026). Local nanoscale probing of electron spins using NV centers in diamond. 10.1016/j.diamond.2026.113530.

If you used QuaCCAToo in your work, please let us know so we can add it to the list!

Class Hierarchy

QuaCCAToo is an object-oriented package organized with the following classes:

  • QSys defines the quantum system of the problem. It has an obligatory intrinsic internal Hamiltonian $H_0$, optional initial state, observable and a set of collapse operators. On QSys, calculates the eigenstates and eigenvalues of the system and has methods for truncating the systems and adding other spins. QuaCCAToo provides NV as a predefined system for nitrogen vacancy centers in diamonds, more systems will be provided soon.
  • PulsedSim contains the logic for performing the simulation of pulsed experiments upon a QSys object. It has attributes of a pulse sequence containing a set of pulses and free evolutions, control Hamiltonian $H_1$, experiment variable and simulation results. Many predefined common pulse sequences are given in predef_seqs and predef_dd_seqs modules. Different pulse shapes are predefined in the pulse_shapes module.
  • ExpData is a class to load experimental data and perform basic data processing, such as rescaling, subtracting columns or performing polynomial baseline corrections.
  • Analysis can be used either on simulation or experimental results, with a series of methods like for fitting (based on lmfit), Fourier transforms and data comparison. The class can also used for plotting the results in multiple forms, including density matrix histograms and Bloch spheres. Several fit models and functions relevant for analysis of color centers are provided in the fit_functions module.

Class diagram

Contribution guidelines

Any contribution or bug report are welcome.

  • To contribute, fork the main branch and make a pull request.
  • We use hatch/hatchling as the build backend. The other development dependencies include pytest, ruff, pylint and ty. They can be installed by running pip install -e '.[dev]' from within the cloned repository. See here for details.
  • Properly document everything in details following the numpy docstring format.
  • Test your branch by running pytest and the tutorial notebooks.
  • Add corresponding tests to every new method, function or functionality in general.
  • Run pylint quaccatoo within the directory to check for code quality and ensure no new warnings are introduced.
  • Please pay attention to linter warnings (ruff check) and format your code with ruff format. Also recommended is to run ty check for type hints.
  • Module level refactors require corresponding changes in the sphinx setup, too.
  • Use US-English, not British-English. Eg: analyze instead of analyse, color instead of colour, center instead of centre.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quaccatoo-1.3.0.tar.gz (78.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quaccatoo-1.3.0-py3-none-any.whl (68.8 kB view details)

Uploaded Python 3

File details

Details for the file quaccatoo-1.3.0.tar.gz.

File metadata

  • Download URL: quaccatoo-1.3.0.tar.gz
  • Upload date:
  • Size: 78.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for quaccatoo-1.3.0.tar.gz
Algorithm Hash digest
SHA256 ab0759d58b2608a0d461483598d34077988cf31fc19199eeffd86220e1e8c560
MD5 ae661ca86d8cb202fb1d1e12d320b138
BLAKE2b-256 88914c0bfcc06ac7df0a2588737bf317163820e0ff2be7f0cc1a4db42ddd487e

See more details on using hashes here.

Provenance

The following attestation bundles were made for quaccatoo-1.3.0.tar.gz:

Publisher: pypi.yml on QISS-HZB/QuaCCAToo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file quaccatoo-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: quaccatoo-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 68.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for quaccatoo-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f6f97510a310e357b54b6c842e6a35e04ed3258de29d3fe9526ce18975c9959
MD5 142d396270d682805fd0f9e17fdc6b6b
BLAKE2b-256 6532d3177b73acd884e5e7aaaf75230e607e7e27cae181fef4b6ac8ea650ca42

See more details on using hashes here.

Provenance

The following attestation bundles were made for quaccatoo-1.3.0-py3-none-any.whl:

Publisher: pypi.yml on QISS-HZB/QuaCCAToo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 files

1.2.1

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

0.7.0

2 files

0.6.3

2 files

0.6.2

2 files

0.5.4

2 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