Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adgt/pulsemaker
A Python widget library for designing pulses and pulse schedules for quantum computing hardware. Can be used in Jupyter notebooks, JupyterLab, and the IPython kernel.
https://github.com/adgt/pulsemaker
quantum-computing
Last synced: 2 months ago
JSON representation
A Python widget library for designing pulses and pulse schedules for quantum computing hardware. Can be used in Jupyter notebooks, JupyterLab, and the IPython kernel.
- Host: GitHub
- URL: https://github.com/adgt/pulsemaker
- Owner: adgt
- License: apache-2.0
- Created: 2020-12-09T22:31:05.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-12-12T23:57:36.000Z (about 3 years ago)
- Last Synced: 2024-09-29T16:20:55.724Z (3 months ago)
- Topics: quantum-computing
- Language: Python
- Homepage:
- Size: 652 KB
- Stars: 23
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Pulsemaker
[![pypi](https://img.shields.io/pypi/v/pulsemaker.svg)](https://pypi.org/project/pulsemaker/)Pulsemaker is a Python widget library for designing pulses and pulse schedules for quantum computing hardware. The library can be used in Jupyter notebooks, JupyterLab, and the IPython kernel.
Currently, the export feature only supports IBM's [Qiskit Pulse](https://qiskit.org/documentation/apidoc/pulse.html), but Rigetti's [Quil-T](https://pyquil-docs.rigetti.com/en/stable/quilt.html) and Pasqal's [Pulser](https://github.com/pasqal-io/Pulser) can be considered if there is enough interest.
To see a workflow that combines both the `PulseDesigner` and the `ScheduleDesigner` into a single dashboard, check out [qonduit](https://github.com/adgt/qonduit).
## Pulse Designer
![PulseDesigner](images/pulseDesigner_02.png)
## Schedule Designer
![ScheduleDesigner](images/scheduleDesigner_02.png)## Getting Started
### InstallationTo install use pip (JupyterLab 3 recommended):
$ pip install pulsemaker
For a development installation,
$ git clone https://github.com/adgt/pulsemaker.git
$ cd pulsemaker
$ pip install -e .### Tutorials / Labs
For a tutorial on how to use the `PulseDesigner` take a look at [Tutorial_PulseDesigner.ipynb](https://nbviewer.jupyter.org/github/adgt/pulseMaker/blob/main/Tutorial_PulseDesigner.ipynb).
For a tutorial on how to use the `ScheduleDesigner` take a look at [Tutorial_ScheduleDesigner.ipynb](https://nbviewer.jupyter.org/github/adgt/pulseMaker/blob/main/Tutorial_ScheduleDesigner.ipynb)
For a fun experience utilizing both components together, try out the [Frequency Sweep lab](Lab_Frequency_Sweep.ipynb).
Otherwise, you can simply run:
```python
from pulsemaker import PulseDesigner, ScheduleDesigner
pulse_d = PulseDesigner()
schedule_d = ScheduleDesigner()
display(pulse_d)
display(schedule_d)
```### API
PulseDesigner()
- `pulse`: waveform data for use in QiskitScheduleDesigner()
- `pulses`: dictionary of pulses in the schedule
- `phases`: dictionary of phases in the schedule
- `freqs`: dictionary of frequencies in the schedule
- `schedule`: schedule in Qiskit format
- `circuit_qasm`: setter for converting qasm to a pulse schedule (write-only)## Development
Follow the instructions above for a development installation. Then, to actively developing on your machine, run Jupyter Lab with the command:
$ jupyter lab
Library files are located under the [pulsemaker](pulsemaker) folder. If you are doing work in JupyterLab or notebooks, then it is recommended to use the following for auto-reloading changes to the Python files:
```
%load_ext autoreload
%autoreload 2
```