sequence


Namesequence JSON
Version 0.8.1 PyPI version JSON
download
home_pageNone
SummarySimulator of QUantum Network Communication (SeQUeNCe) is an open-source tool that allows modeling of quantum networks including photonic network components, control protocols, and applications.
upload_time2025-09-18 19:40:16
maintainerNone
docs_urlNone
authorNone
requires_python<3.14,>=3.11
licenseNone
keywords quantum network discrete event simulator
VCS
bugtrack_url
requirements numpy scipy qutip qutip-qip matplotlib dash dash-core-components dash-html-components dash-bootstrap-components dash-table dash-cytoscape plotly pandas tqdm networkx pytest jupyterlab ipywidgets gmpy2
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <picture>
   <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/sequence-toolbox/SeQUeNCe/master/docs/Sequence_Icon_Name_Dark.png">
   <img src="https://raw.githubusercontent.com/sequence-toolbox/SeQUeNCe/master/docs/Sequence_Icon_Name.svg" alt="sequence icon" width="450" class="center">
  </picture>
</p>

<h3><p align="center">Quantum Networking in SeQUeNCe: Customizable, Scalable, Easy Debugging</p></h3>



<div align="center">

[![PyPi](https://img.shields.io/pypi/v/sequence)](https://pypi.org/project/sequence/)
![pyversions](https://img.shields.io/pypi/pyversions/sequence)
[![Documentation](https://img.shields.io/readthedocs/sequence-rtd-tutorial)](https://sequence-rtd-tutorial.readthedocs.io/)
[![Qutip](https://img.shields.io/badge/integration%20-Qutip-blue)](https://qutip.org/)
[![Paper](https://img.shields.io/badge/10.1088%2F2058-9565%2Fac22f6?label=DOI)](https://iopscience.iop.org/article/10.1088/2058-9565/ac22f6)
[![PyPI Downloads](https://static.pepy.tech/badge/sequence/month)](https://pepy.tech/projects/sequence)
<!-- [![Download-month](https://img.shields.io/pypi/dm/sequence)](https://pypistats.org/packages/sequence) -->

</div>



<br>

## SeQUeNCe: Simulator of QUantum Network Communication

SeQUeNCe is an open source, discrete-event simulator for quantum networks. As described in our [paper](http://arxiv.org/abs/2009.12000), 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.

## Installing
SeQUeNCe requires [Python](https://www.python.org/downloads/) 3.10 or later. You can simply install SeQUeNCe using `pip`:
```
pip install sequence
```

If you wish to make your own edits to the codebase, SeQUeNCe should be installed in [development mode](https://setuptools.pypa.io/en/latest/userguide/development_mode.html) (a.k.a. editable install).
To do so, clone and install the simulator as follows:
```
git clone https://github.com/sequence-toolbox/SeQUeNCe.git
cd SeQUeNCe
pip install --editable . --config-settings editable_mode=strict
```

For Linux and Mac users, you could use `make install_editable` instead of `pip install --editable . --config-settings editable_mode=strict`


## 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},
}
```

<!-- * X. Wu, A. Kolar, J. Chung, D. Jin, T. Zhong, R. Kettimuthu and M. Suchara. "SeQUeNCe: Simulator of QUantum Network Communication." GitHub repository, https://github.com/sequence-toolbox/SeQUeNCe, 2021. -->

## Running the GUI
Once SeQUeNCe has been installed as described above, simply 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](/example) folder. These include both quantum key distribution and entanglement distribution examples.

### Starlight Experiments
Code for the experiments performed in our paper can be found in the file `starlight_experiments.py`. This script uses the `starlight.json` file (also within the example folder) to specify the network topology.

### Jupyter Notebook Examples
The example folder contains several scripts that can be run with jupyter notebook for easy editing and visualization. These examples include:
* `BB84_eg.ipynb`, which uses the BB84 protocol to distribute secure keys between two quantum nodes
* `two_node_eg.ipynb`, which performs entanglement generation between two adjacent quantum routers
* `three_node_eg_ep_es.ipynb`, which performs entanglement generation, purification, and swapping for a linear network of three quantum routers

## 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](https://www.graphviz.org/download/).

To view a network, simply 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](https://caitaozhan.github.io/) at [czhan@anl.gov](mailto:czhan@anl.gov).

## Papers that Used and/or Extended SeQUeNCe

* X. Wu et al., ["Simulations of Photonic Quantum Networks for Performance Analysis and Experiment Design"](https://ieeexplore.ieee.org/document/8950718), IEEE/ACM Workshop on Photonics-Optics Technology Oriented Networking, Information and Computing Systems (PHOTONICS), 2019

* X. Wu, A. Kolar, J. Chung, D. Jin, T. Zhong, R. Kettimuthu and M. Suchara. ["SeQUeNCe: A Customizable Discrete-Event Simulator of Quantum Networks"](https://iopscience.iop.org/article/10.1088/2058-9565/ac22f6), Quantum Science and Technology, 2021

* V. Semenenko et al., ["Entanglement generation in a quantum network with finite quantum memory lifetime"](https://pubs.aip.org/avs/aqs/article/4/1/012002/2835237/Entanglement-generation-in-a-quantum-network-with), AVS Quantum Science, 2022

* A. Zang et al., ["Simulation of Entanglement Generation between Absorptive Quantum Memories"](https://ieeexplore.ieee.org/abstract/document/9951205), IEEE QCE 2022

* M.G. Davis et al., ["Towards Distributed Quantum Computing by Qubit and Gate Graph Partitioning Techniques"](https://ieeexplore.ieee.org/abstract/document/10313645), IEEE QCE 2023

* R. Zhou et al., ["A Simulator of Atom-Atom Entanglement with Atomic Ensembles and Quantum Optics"](https://ieeexplore.ieee.org/abstract/document/10313610), IEEE QCE 2023

* X. Wu et al., ["Parallel Simulation of Quantum Networks with Distributed Quantum State Management"](https://dl.acm.org/doi/abs/10.1145/3634701), ACM Transactions on Modeling and Computer Simulation, 2024

* C. Howe, M. Aziz, and A. Anwar, ["Towards Scalable Quantum Repeater Networks"](https://arxiv.org/abs/2409.08416), arXiv preprint, 2024

* A. Zang et al., ["Quantum Advantage in Distributed Sensing with Noisy Quantum Networks"](https://arxiv.org/abs/2409.17089), arXiv preprint, 2024

* L. d'Avossa et al., ["Simulation of Quantum Transduction Strategies for Quantum Networks"](https://arxiv.org/abs/2411.11377), arXiv preprint, 2024

* F. Mazza et al., ["Simulation of Entanglement-Enabled Connectivity in QLANs using SeQUeNCe"](https://arxiv.org/abs/2411.11031), IEEE ICC 2025

* C. Zhan et al., ["Design and Simulation of the Adaptive Continuous Entanglement Generation Protocol"](https://arxiv.org/abs/2502.01964), QCNC 2025. [GitHub Repository](https://github.com/caitaozhan/adaptive-continuous)


Please do a Pull Request to add your paper here! 

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sequence",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.11",
    "maintainer_email": "Caitao Zhan <czhan@anl.gov>",
    "keywords": "quantum, network, discrete, event, simulator",
    "author": null,
    "author_email": "\"Xiaoliang Wu, Joaquin Chung, Alexander Kolar, Alexander Kiefer, Eugene Wang, Tian Zhong, Rajkumar Kettimuthu, Martin Suchara, Robert Hayek, Ansh Singal, Caitao Zhan\" <czhan@anl.gov>",
    "download_url": "https://files.pythonhosted.org/packages/d6/33/d5bc48721a1e3596f8dbc9bc5445a760a4998949821e07b660f77d063f9c/sequence-0.8.1.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <picture>\n   <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/sequence-toolbox/SeQUeNCe/master/docs/Sequence_Icon_Name_Dark.png\">\n   <img src=\"https://raw.githubusercontent.com/sequence-toolbox/SeQUeNCe/master/docs/Sequence_Icon_Name.svg\" alt=\"sequence icon\" width=\"450\" class=\"center\">\n  </picture>\n</p>\n\n<h3><p align=\"center\">Quantum Networking in SeQUeNCe: Customizable, Scalable, Easy Debugging</p></h3>\n\n\n\n<div align=\"center\">\n\n[![PyPi](https://img.shields.io/pypi/v/sequence)](https://pypi.org/project/sequence/)\n![pyversions](https://img.shields.io/pypi/pyversions/sequence)\n[![Documentation](https://img.shields.io/readthedocs/sequence-rtd-tutorial)](https://sequence-rtd-tutorial.readthedocs.io/)\n[![Qutip](https://img.shields.io/badge/integration%20-Qutip-blue)](https://qutip.org/)\n[![Paper](https://img.shields.io/badge/10.1088%2F2058-9565%2Fac22f6?label=DOI)](https://iopscience.iop.org/article/10.1088/2058-9565/ac22f6)\n[![PyPI Downloads](https://static.pepy.tech/badge/sequence/month)](https://pepy.tech/projects/sequence)\n<!-- [![Download-month](https://img.shields.io/pypi/dm/sequence)](https://pypistats.org/packages/sequence) -->\n\n</div>\n\n\n\n<br>\n\n## SeQUeNCe: Simulator of QUantum Network Communication\n\nSeQUeNCe is an open source, discrete-event simulator for quantum networks. As described in our [paper](http://arxiv.org/abs/2009.12000), the simulator includes 5 modules on top of a simulation kernel:\n* Hardware\n* Entanglement Management\n* Resource Management\n* Network Management\n* Application\n\nThese 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.\n\n## Installing\nSeQUeNCe requires [Python](https://www.python.org/downloads/) 3.10 or later. You can simply install SeQUeNCe using `pip`:\n```\npip install sequence\n```\n\nIf you wish to make your own edits to the codebase, SeQUeNCe should be installed in [development mode](https://setuptools.pypa.io/en/latest/userguide/development_mode.html) (a.k.a. editable install).\nTo do so, clone and install the simulator as follows:\n```\ngit clone https://github.com/sequence-toolbox/SeQUeNCe.git\ncd SeQUeNCe\npip install --editable . --config-settings editable_mode=strict\n```\n\nFor Linux and Mac users, you could use `make install_editable` instead of `pip install --editable . --config-settings editable_mode=strict`\n\n\n## Citation\nPlease cite us, thank you!\n```\n@article{sequence,\nauthor = {Xiaoliang Wu and Alexander Kolar and Joaquin Chung and Dong Jin and Tian Zhong and Rajkumar Kettimuthu and Martin Suchara},\ntitle = {SeQUeNCe: a customizable discrete-event simulator of quantum networks},\njournal = {Quantum Science and Technology},\nvolume = {6},\nyear = {2021},\nmonth = {sep},\ndoi = {10.1088/2058-9565/ac22f6},\nurl = {https://dx.doi.org/10.1088/2058-9565/ac22f6},\npublisher = {IOP Publishing},\n}\n```\n\n<!-- * X. Wu, A. Kolar, J. Chung, D. Jin, T. Zhong, R. Kettimuthu and M. Suchara. \"SeQUeNCe: Simulator of QUantum Network Communication.\" GitHub repository, https://github.com/sequence-toolbox/SeQUeNCe, 2021. -->\n\n## Running the GUI\nOnce SeQUeNCe has been installed as described above, simply run the `gui.py` script found in the root of the project directory\n```\npython gui.py\n```\n\n## Usage Examples\nMany examples of SeQUeNCe in action can be found in the [example](/example) folder. These include both quantum key distribution and entanglement distribution examples.\n\n### Starlight Experiments\nCode for the experiments performed in our paper can be found in the file `starlight_experiments.py`. This script uses the `starlight.json` file (also within the example folder) to specify the network topology.\n\n### Jupyter Notebook Examples\nThe example folder contains several scripts that can be run with jupyter notebook for easy editing and visualization. These examples include:\n* `BB84_eg.ipynb`, which uses the BB84 protocol to distribute secure keys between two quantum nodes\n* `two_node_eg.ipynb`, which performs entanglement generation between two adjacent quantum routers\n* `three_node_eg_ep_es.ipynb`, which performs entanglement generation, purification, and swapping for a linear network of three quantum routers\n\n## Additional Tools\n\n### Network Visualization\nThe 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](https://www.graphviz.org/download/).\n\nTo view a network, simply run the script and specify the relative location of your json file:\n```\npython utils/draw_topo.py example/starlight.json\n```\nThis script also supports a flag `-m` to visualize BSM nodes created by default on quantum links between routers.\n\n## Contact\nIf you have questions, please contact [Caitao Zhan](https://caitaozhan.github.io/) at [czhan@anl.gov](mailto:czhan@anl.gov).\n\n## Papers that Used and/or Extended SeQUeNCe\n\n* X. Wu et al., [\"Simulations of Photonic Quantum Networks for Performance Analysis and Experiment Design\"](https://ieeexplore.ieee.org/document/8950718), IEEE/ACM Workshop on Photonics-Optics Technology Oriented Networking, Information and Computing Systems (PHOTONICS), 2019\n\n* X. Wu, A. Kolar, J. Chung, D. Jin, T. Zhong, R. Kettimuthu and M. Suchara. [\"SeQUeNCe: A Customizable Discrete-Event Simulator of Quantum Networks\"](https://iopscience.iop.org/article/10.1088/2058-9565/ac22f6), Quantum Science and Technology, 2021\n\n* V. Semenenko et al., [\"Entanglement generation in a quantum network with finite quantum memory lifetime\"](https://pubs.aip.org/avs/aqs/article/4/1/012002/2835237/Entanglement-generation-in-a-quantum-network-with), AVS Quantum Science, 2022\n\n* A. Zang et al., [\"Simulation of Entanglement Generation between Absorptive Quantum Memories\"](https://ieeexplore.ieee.org/abstract/document/9951205), IEEE QCE 2022\n\n* M.G. Davis et al., [\"Towards Distributed Quantum Computing by Qubit and Gate Graph Partitioning Techniques\"](https://ieeexplore.ieee.org/abstract/document/10313645), IEEE QCE 2023\n\n* R. Zhou et al., [\"A Simulator of Atom-Atom Entanglement with Atomic Ensembles and Quantum Optics\"](https://ieeexplore.ieee.org/abstract/document/10313610), IEEE QCE 2023\n\n* X. Wu et al., [\"Parallel Simulation of Quantum Networks with Distributed Quantum State Management\"](https://dl.acm.org/doi/abs/10.1145/3634701), ACM Transactions on Modeling and Computer Simulation, 2024\n\n* C. Howe, M. Aziz, and A. Anwar, [\"Towards Scalable Quantum Repeater Networks\"](https://arxiv.org/abs/2409.08416), arXiv preprint, 2024\n\n* A. Zang et al., [\"Quantum Advantage in Distributed Sensing with Noisy Quantum Networks\"](https://arxiv.org/abs/2409.17089), arXiv preprint, 2024\n\n* L. d'Avossa et al., [\"Simulation of Quantum Transduction Strategies for Quantum Networks\"](https://arxiv.org/abs/2411.11377), arXiv preprint, 2024\n\n* F. Mazza et al., [\"Simulation of Entanglement-Enabled Connectivity in QLANs using SeQUeNCe\"](https://arxiv.org/abs/2411.11031), IEEE ICC 2025\n\n* C. Zhan et al., [\"Design and Simulation of the Adaptive Continuous Entanglement Generation Protocol\"](https://arxiv.org/abs/2502.01964), QCNC 2025. [GitHub Repository](https://github.com/caitaozhan/adaptive-continuous)\n\n\nPlease do a Pull Request to add your paper here! \n",
    "bugtrack_url": null,
    "license": null,
    "summary": "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.",
    "version": "0.8.1",
    "project_urls": {
        "Changelog": "https://github.com/sequence-toolbox/SeQUeNCe/blob/master/CHANGELOG.md",
        "Documentation": "https://sequence-rtd-tutorial.readthedocs.io/",
        "Homepage": "https://github.com/sequence-toolbox/SeQUeNCe",
        "Issues": "https://github.com/sequence-toolbox/SeQUeNCe/issues"
    },
    "split_keywords": [
        "quantum",
        " network",
        " discrete",
        " event",
        " simulator"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f71fbea69bd927d97b4906eb56633d4054971be88246168bc310ba9b8d245f0a",
                "md5": "eea66150002d9076a55195bfb8e5f8b3",
                "sha256": "070b7a8039c472d89cad68a94ef43628c1b6fdfda6b76fb4ce11320ab9055018"
            },
            "downloads": -1,
            "filename": "sequence-0.8.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "eea66150002d9076a55195bfb8e5f8b3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.14,>=3.11",
            "size": 196798,
            "upload_time": "2025-09-18T19:40:14",
            "upload_time_iso_8601": "2025-09-18T19:40:14.487078Z",
            "url": "https://files.pythonhosted.org/packages/f7/1f/bea69bd927d97b4906eb56633d4054971be88246168bc310ba9b8d245f0a/sequence-0.8.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d633d5bc48721a1e3596f8dbc9bc5445a760a4998949821e07b660f77d063f9c",
                "md5": "26f04098314afaaa7ffa6cf4c275f794",
                "sha256": "525846cf767e8eb4f0e4e5a98f71b1c50f6d15acfbce0d5ace294d0a840a0294"
            },
            "downloads": -1,
            "filename": "sequence-0.8.1.tar.gz",
            "has_sig": false,
            "md5_digest": "26f04098314afaaa7ffa6cf4c275f794",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.11",
            "size": 155947,
            "upload_time": "2025-09-18T19:40:16",
            "upload_time_iso_8601": "2025-09-18T19:40:16.064660Z",
            "url": "https://files.pythonhosted.org/packages/d6/33/d5bc48721a1e3596f8dbc9bc5445a760a4998949821e07b660f77d063f9c/sequence-0.8.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-18 19:40:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sequence-toolbox",
    "github_project": "SeQUeNCe",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "2.1"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    ">=",
                    "1.14.1"
                ]
            ]
        },
        {
            "name": "qutip",
            "specs": [
                [
                    ">=",
                    "5.0.4"
                ]
            ]
        },
        {
            "name": "qutip-qip",
            "specs": [
                [
                    ">=",
                    "0.4"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.10"
                ]
            ]
        },
        {
            "name": "dash",
            "specs": [
                [
                    ">=",
                    "1.20.0"
                ]
            ]
        },
        {
            "name": "dash-core-components",
            "specs": []
        },
        {
            "name": "dash-html-components",
            "specs": []
        },
        {
            "name": "dash-bootstrap-components",
            "specs": []
        },
        {
            "name": "dash-table",
            "specs": []
        },
        {
            "name": "dash-cytoscape",
            "specs": []
        },
        {
            "name": "plotly",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": []
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    ">=",
                    "4.54.0"
                ]
            ]
        },
        {
            "name": "networkx",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "jupyterlab",
            "specs": []
        },
        {
            "name": "ipywidgets",
            "specs": []
        },
        {
            "name": "gmpy2",
            "specs": []
        }
    ],
    "lcname": "sequence"
}
        
Elapsed time: 0.50612s