Simulator of QUantum Network Communication (SeQUeNCe) is an open-source tool that allows modeling of quantum networks including photonic network components, control protocols, and applications.
Project description
Quantum Networking in SeQUeNCe: Customizable, Scalable, Easy Debugging
SeQUeNCe: Simulator of QUantum Network Communication
SeQUeNCe is an open source, discrete-event simulator for quantum networks. As described in our paper, the simulator includes 5 modules on top of a simulation kernel:
- Hardware
- Entanglement Management
- Resource Management
- Network Management
- Application
These modules can be edited by users to define additional functionality and test protocol schemes, or may be used as-is to test network parameters and topologies.
Installation
For Users
SeQUeNCe requires Python 3.12 or later. You can install SeQUeNCe using pip:
pip install sequence
Development Environment Setup
If you wish to modify the source code, use an editable installation with either pip or uv:
Editable installations let Python use your local source tree directly, so changes you make to the SeQUeNCe code are available without reinstalling the package after each edit. The pip option is a lightweight way to install the local package into an environment you already manage, while uv can create and synchronize a reproducible virtual environment from the project's dependency files.
(1) Using pip
git clone https://github.com/sequence-toolbox/SeQUeNCe.git
cd sequence
make install_editable
In the Makefile, install_editable will run the following:
pip install --editable . --config-settings editable_mode=strict
The --config-settings editable_mode=strict setting makes the editable install behaves more like a real packaged install.
(2) Using uv
Install uv (Astral Instructions)
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Clone the repository and create the virtual environment
Here we clone the repository and let uv configure the development environment with the target python version.
git clone https://github.com/sequence-toolbox/SeQUeNCe.git
cd sequence
uv sync
Activate the virtual environment
Now that the virtual environment is created with all dependencies installed, you can activate it using the following command.
source .venv/bin/activate # macOS/Linux
source .venv\Scripts\activate # Windows
Running the test suite
SeQUeNCe includes a comprehensive test suite, this can be ran with the following command
uv run pytest tests
Citation
Please cite us, thank you!
@article{sequence,
author = {Xiaoliang Wu and Alexander Kolar and Joaquin Chung and Dong Jin and Tian Zhong and Rajkumar Kettimuthu and Martin Suchara},
title = {SeQUeNCe: a customizable discrete-event simulator of quantum networks},
journal = {Quantum Science and Technology},
volume = {6},
year = {2021},
month = {sep},
doi = {10.1088/2058-9565/ac22f6},
url = {https://dx.doi.org/10.1088/2058-9565/ac22f6},
publisher = {IOP Publishing},
}
Running the GUI
Once SeQUeNCe has been installed as described above, run the gui.py script found in the root of the project directory
python gui.py
Usage Examples
Many examples of SeQUeNCe in action can be found in the example folder. The example includes jupyter notebook demos, and code used in published papers.
Additional Tools
Network Visualization
The example directory contains an example .json file starlight.json to specify a network topology, and the utils directory contains the script draw_topo.py to visualize json files. To use this script, the Graphviz library must be installed. Installation information can be found on the Graphviz website.
To view a network, run the script and specify the relative location of your .json file:
python utils/draw_topo.py example/starlight.json
This script also supports a flag -m to visualize BSM nodes created by default on quantum links between routers.
Contact
If you have questions, please contact Caitao Zhan at czhan@anl.gov.
Here is the updated table with the Code column populated:
Papers that Used and/or Extended SeQUeNCe
Please do a Pull Request to add your paper here!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sequence-1.0.0.dev13413021.tar.gz.
File metadata
- Download URL: sequence-1.0.0.dev13413021.tar.gz
- Upload date:
- Size: 545.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
673aedb59028da78e5e6dce356cf3f2b1c255ba870b22c70a1134b1a0cbebb6b
|
|
| MD5 |
492275c4bfda09b2ef9d42d8f0946332
|
|
| BLAKE2b-256 |
412284f272aff50deb8507794240ac546c2e8e048264e4de7364740b0357bbb2
|
Provenance
The following attestation bundles were made for sequence-1.0.0.dev13413021.tar.gz:
Publisher:
development.yml on sequence-toolbox/SeQUeNCe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sequence-1.0.0.dev13413021.tar.gz -
Subject digest:
673aedb59028da78e5e6dce356cf3f2b1c255ba870b22c70a1134b1a0cbebb6b - Sigstore transparency entry: 1839924641
- Sigstore integration time:
-
Permalink:
sequence-toolbox/SeQUeNCe@0ccaa9da8d132694e149eb07970bbb83a74c40fe -
Branch / Tag:
refs/heads/RnD - Owner: https://github.com/sequence-toolbox
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
development.yml@0ccaa9da8d132694e149eb07970bbb83a74c40fe -
Trigger Event:
push
-
Statement type:
File details
Details for the file sequence-1.0.0.dev13413021-py3-none-any.whl.
File metadata
- Download URL: sequence-1.0.0.dev13413021-py3-none-any.whl
- Upload date:
- Size: 606.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62a74d45a1d79698ace1faea5555167bd9b64cfb21758d5b347958fc008175c1
|
|
| MD5 |
4d80b90d0498001f3b909031b7cb2d3b
|
|
| BLAKE2b-256 |
e12d0e833d37154ffdcd3404a84bfc903e3538b06b483786c52844739007045f
|
Provenance
The following attestation bundles were made for sequence-1.0.0.dev13413021-py3-none-any.whl:
Publisher:
development.yml on sequence-toolbox/SeQUeNCe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sequence-1.0.0.dev13413021-py3-none-any.whl -
Subject digest:
62a74d45a1d79698ace1faea5555167bd9b64cfb21758d5b347958fc008175c1 - Sigstore transparency entry: 1839924764
- Sigstore integration time:
-
Permalink:
sequence-toolbox/SeQUeNCe@0ccaa9da8d132694e149eb07970bbb83a74c40fe -
Branch / Tag:
refs/heads/RnD - Owner: https://github.com/sequence-toolbox
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
development.yml@0ccaa9da8d132694e149eb07970bbb83a74c40fe -
Trigger Event:
push
-
Statement type: