|
|
2 недель назад | |
|---|---|---|
| .. | ||
| doc | 2 недель назад | |
| new_MRI_pulse_seq | 2 недель назад | |
| py2jemris | 2 недель назад | |
| pypulseq | 2 недель назад | |
| services | 2 недель назад | |
| utilities | 2 недель назад | |
| CODE_OF_CONDUCT.md | 2 недель назад | |
| CONTRIBUTING.md | 2 недель назад | |
| FID_from_scratch.ipynb | 2 недель назад | |
| LICENSE | 2 недель назад | |
| MANIFEST.in | 2 недель назад | |
| README.md | 2 недель назад | |
| TSE_20231019_161845.json | 2 недель назад | |
| TSE_pulse_sequence-Copy1.ipynb | 2 недель назад | |
| TSE_pulse_sequence.ipynb | 2 недель назад | |
| TSE_pulse_sequence_T1.ipynb | 2 недель назад | |
| TSE_splited_gradients.ipynb | 2 недель назад | |
| TSE_splited_gradients_RESTORE.ipynb | 2 недель назад | |
| __init__.py | 2 недель назад | |
| logo.png | 2 недель назад | |
| logo_transparent.png | 2 недель назад | |
| paper.bib | 2 недель назад | |
| paper.md | 2 недель назад | |
| rf_1.h5 | 2 недель назад | |
| rf_2.h5 | 2 недель назад | |
| rf_3.h5 | 2 недель назад | |
| rf_4.h5 | 2 недель назад | |
| rf_5.h5 | 2 недель назад | |
| rf_6.h5 | 2 недель назад | |
| rf_7.h5 | 2 недель назад | |
| rf_8.h5 | 2 недель назад | |
| setup.py | 2 недель назад | |
| t1_SE.ipynb | 2 недель назад | |
| t1_SE_experimental.ipynb | 2 недель назад | |
| t1_SE_final.ipynb | 2 недель назад | |
| t1_SE_final_final.ipynb | 2 недель назад | |
| t1_SE_final_max_grad.ipynb | 2 недель назад | |
| t2_SE_backup.ipynb | 2 недель назад | |
| t2_SE_original.ipynb | 2 недель назад | |
| t2_se_pypulseq_colab.xml | 2 недель назад | |
| version.py | 2 недель назад | |
| write_se_new.ipynb | 2 недель назад | |
| write_t2_se.ipynb | 2 недель назад | |

Compatible with Pulseq 1.4.0
🚨🚨🚨 NOTE: This is the dev branch which hosts the bleeding edge version. For the most recent, stable release,
switch to the master branch by clicking here. 🚨🚨🚨
Pulse sequence design is a significant component of MRI research. However, multi-vendor studies require researchers to be acquainted with each hardware platform's programming environment.
PyPulseq enables vendor-neutral pulse sequence design in Python [1,2]. The pulse sequences can be
exported as a .seq file to be run on Siemens/GE/Bruker hardware by leveraging their respective
Pulseq interpreters. This tool is targeted at MRI pulse sequence designers, researchers, students and other interested
users. It is a translation of the Pulseq framework originally written in Matlab [3].
👉 Currently, PyPulseq is compatible with Pulseq 1.4.0. 👈
It is strongly recommended to first read the Pulseq specification before proceeding. The specification document defines the concepts required for pulse sequence design using PyPulseq.
If you use PyPulseq in your work, cite the following publications:
Ravi, Keerthi, Sairam Geethanath, and John Vaughan. "PyPulseq: A Python Package for MRI Pulse Sequence Design." Journal
of Open Source Software 4.42 (2019): 1725.
Ravi, Keerthi Sravan, et al. "Pulseq-Graphical Programming Interface: Open source visual environment for prototyping
pulse sequences and integrated magnetic resonance imaging algorithm development." Magnetic resonance imaging 52 (2018):
9-15.
Design pulse sequences using pypulseq in your browser! Check out the ⚡ Lightning-start section to
learn how!
Please email me/submit PR/open an issue if any contributors are missing.
>=Python 3.6, virtual environment recommended:
pip install pypulseq
Or, explore an example notebook:
Every example script creates a pulse sequence, plots the pulse timing diagram and writes a .seq file to disk.
Getting started with pulse sequence design using PyPulseq is simple:
First, define system limits in Opts and then create a Sequence object with it:
import pypulseq as pp
system = pp.Opts(max_grad=32, grad_unit='mT/m', max_slew=130, slew_unit='mT/m/ms')
seq = pp.Sequence(system=system)
rf90 = pp.make_sinc_pulse(flip_angle=90, duration=2e-3, system=system, slice_thickness=5e-3, apodization=0.5, time_bw_product=4)
gx = pp.make_trapezoid(channel='x', flat_area=Nx * delta_k, flat_time=6.4e-3, system=system)
adc = pp.make_adc(num_samples=Nx, duration=gx.flat_time, delay=gx.rise_time, system=system) ```
Add these pulse sequence events to the Sequence object from step 2. One or more events can be executed
simultaneously, simply pass them all to the add_block() method. For example, the gx and adc pulse sequence events
need to be executed simultaneously:
seq.add_block(rf90)
seq.add_block(gx, adc)
python
seq.plot()
Generate a .seq file to be executed on a real MR scanner:
seq.write('demo.seq')
Get in touch regarding running the .seq files on your Siemens/GE/Bruker scanner.
PyPulseq adheres to a code of conduct adapted from the Contributor Covenant code of conduct.
Contributing guidelines can be found here.