SeqEyes — Interactive Pulseq MRI Sequence Viewer for Python
SeqEyes is a lightweight Python package that provides interactive
visualization of Pulseq text (.seq) and binary (.bseq) MRI sequences in Jupyter notebooks.
It works as a drop‑in replacement for pypulseq.Sequence.plot(),
rendering an interactive viewer directly in Jupyter notebook cell
output — just like Plotly.
Features
- 🎛️ Interactive waveform viewer — zoom, pan, per‑channel amplitude zoom
- 📍 Tooltip with block details (RF amplitude, gradient strength, ADC params)
- 🗺️ 3D k‑space trajectory viewer — rotate, zoom, depth‑sorted rendering
- 🎨 8 colour themes — system, light, dark, dracula, nord, and more
- 📏 Unit conversion — time (s / ms / µs), gradient (Hz/m / mT/m / G/cm)
- 📐 Minimap with TR/TE overlay and viewport indicator
- 💾 Export to standalone HTML — shareable, no Python needed
- 🔌 Drop‑in pypulseq integration —
seq.plot()just works
Installation
pip install seqeyes-python
For pypulseq integration:
pip install seqeyes-python[pypulseq]
Quick Start
import seqeyes
# Enable SeqEyes (once per session) — seq.plot() is now interactive
seqeyes.set(theme="dark", time_disp="ms")
# Build your sequence with pypulseq as usual
seq.plot() # interactive viewer in Jupyter
seq.plot(show_blocks=True) # per‑call overrides
seq.plot(time_range=(0, 0.05)) # zoom to first 50 ms
# Restore matplotlib at any time
seqeyes.reset()
In a plain .py script (no Jupyter), seq.plot() opens the viewer
in a desktop pop‑up window (requires pywebview) or falls back to
your default browser.
Using without pypulseq
from seqeyes import SeqEyesViewer
with open('my_sequence.seq') as f:
viewer = SeqEyesViewer(f.read(), theme="dark")
viewer # renders inline in Jupyter
Open either supported file format directly:
from seqeyes import SeqEyesViewer
SeqEyesViewer.from_file("my_sequence.seq", theme="dark")
SeqEyesViewer.from_file("my_sequence.bseq", theme="dark")
API Reference
| Function | Description |
|---|---|
seqeyes.set(**kwargs) |
Enable SeqEyes and set global defaults (theme, show_blocks, time_disp, grad_disp, time_range) |
seqeyes.reset() |
Restore matplotlib seq.plot() and clear all defaults |
SeqEyesViewer(source, ...) |
Low-level viewer for raw .seq text or .bseq bytes |
SeqEyesViewer.from_file(path, ...) |
Open a local .seq or .bseq file without pypulseq |
Viewer Controls
| Action | How |
|---|---|
| Zoom | Scroll wheel |
| Pan | Click + drag |
| Amplitude zoom (per channel) | Ctrl + scroll wheel |
| Tooltip | Hover over waveform |
| Toggle channels | Click legend labels |
| K‑Space viewer | Click "K‑Space" button |
| Rotate k‑space | Click + drag in panel |
| Minimap navigation | Click on minimap strip |
| Open another file | 📂 Open button |
Requirements
- Python ≥ 3.9
- numpy ≥ 1.21
- pypulseq ≥ 1.4 (optional, for
seq.plot()integration) - pywebview ≥ 5 (optional, for native desktop pop‑up windows)
License
MIT
Metadata
Release files for seqeyes-python 0.3.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| seqeyes_python-0.3.13.tar.gz | 689.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| seqeyes_python-0.3.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 875.5 kB
Release files / seqeyes_python-0.3.13.tar.gz
| Download URL | seqeyes_python-0.3.13.tar.gz |
|---|---|
| Size | 689.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6294bf9a5ca8a1c3422098ed425bd279ed74a7f6642f53b1d03b21f59c0d22d1
|
|
BLAKE2b-256 checksum How to use checksums |
cefb9afe12d9a7200eeb93dd711507624577bb384d9d638b68af896b0d105df9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.
Transparency logRelease files / seqeyes_python-0.3.13-py3-none-any.whl
| Download URL | seqeyes_python-0.3.13-py3-none-any.whl |
|---|---|
| Size | 186.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
209c7f012a1352723265c30a265c9461caa267e892f5dbad6e6e00feeb7772bb
|
|
BLAKE2b-256 checksum How to use checksums |
aac4402c4261f5bfc827959c2b6c8f9395a4edd01b0d56a0690cebce80e18341
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.
Transparency log