Homepage#
pypulseqpp provides Pulseq sequence design and analysis through a
PyPulseq-compatible Python interface over a C++ core. It includes RF, gradient
and trajectory design, reusable sequence modules, complete sequence
applications, and timing, gradient, PNS, mechanical-resonance and SAR checks.
Its event factories and Sequence methods keep PyPulseq’s signatures and event
conventions; it reads Pulseq text files from version 1.2 onward and writes
Pulseq 1.5.1 text and binary files, or 1.4.1 text for older interpreters. Not
every PyPulseq feature is implemented, and the API reference lists what is.
Passing these checks does not establish scanner or patient safety.
Features#
Pulseq text and binary I/O, event storage, deduplication and repetition analysis.
RF, gradient and non-Cartesian trajectory design.
Composable excitation, preparation and readout
SequenceModuleclasses.Waveform, ADC sampling-location and k-space analysis with publication figures.
Timing, hardware-limit, PNS, mechanical-resonance and VOP-based SAR estimates.
Quick start#
pip install pypulseqpp
from pypulseqpp.sequences import gre2D_sequence
seq = gre2D_sequence(n_x=64, n_y=64, n_slices=1, tr=None)
ok, errors = seq.check_timing()
seq.write("gre2d.seq")
Documentation#
The user guide covers installation and support, and lists what each documentation section contains. The examples are a course in sequence design, from a pulse-acquire experiment to echo planar and non-Cartesian acquisitions, followed by a page for each shipped sequence. Every version of the documentation is published at https://pulserver.github.io/pypulseqpp/.
Citation#
pypulseqpp has no project publication. Cite the foundational formats and APIs used in work built with it:
@article{layton2017pulseq,
title = {Pulseq: a rapid and hardware-independent pulse sequence prototyping framework},
author = {Layton, Kelvin J and Kroboth, Stefan and Jia, Feng and Littin, Sebastian
and Yu, Huijun and Leupold, Jochen and Nielsen, Jon-Fredrik
and St{\"o}cker, Tony and Zaitsev, Maxim},
journal = {Magnetic Resonance in Medicine},
volume = {77},
number = {4},
pages = {1544--1552},
year = {2017},
doi = {10.1002/mrm.26235}
}
@article{ravi2019pypulseq,
title = {PyPulseq: A Python Package for MRI Pulse Sequence Design},
author = {Ravi, Keerthi Sravan and Geethanath, Sairam and Vaughan, John Thomas},
journal = {Journal of Open Source Software},
volume = {4},
number = {42},
pages = {1725},
year = {2019},
doi = {10.21105/joss.01725}
}
License#
MIT, except bundled or vendored third-party components that retain their own licences. See License and third-party notices.