spacexerq fd1f64f4a4 rebuild from scrap 3 napja
..
.github fd1f64f4a4 rebuild from scrap 3 napja
benchmark_seq2xml fd1f64f4a4 rebuild from scrap 3 napja
sim fd1f64f4a4 rebuild from scrap 3 napja
.gitignore fd1f64f4a4 rebuild from scrap 3 napja
CODE_OF_CONDUCT.md fd1f64f4a4 rebuild from scrap 3 napja
CONTRIBUTING.md fd1f64f4a4 rebuild from scrap 3 napja
LICENSE fd1f64f4a4 rebuild from scrap 3 napja
README.md fd1f64f4a4 rebuild from scrap 3 napja
__init__.py fd1f64f4a4 rebuild from scrap 3 napja
coil2xml.py fd1f64f4a4 rebuild from scrap 3 napja
examine_seq_diag.py fd1f64f4a4 rebuild from scrap 3 napja
make_some_seqs.py fd1f64f4a4 rebuild from scrap 3 napja
phantom.py fd1f64f4a4 rebuild from scrap 3 napja
pull_request_template.md fd1f64f4a4 rebuild from scrap 3 napja
pulseq_jemris_simulator.py fd1f64f4a4 rebuild from scrap 3 napja
pulseq_library.py fd1f64f4a4 rebuild from scrap 3 napja
py2jemris_demo.ipynb fd1f64f4a4 rebuild from scrap 3 napja
recon_jemris.py fd1f64f4a4 rebuild from scrap 3 napja
record_seq2xml_times.py fd1f64f4a4 rebuild from scrap 3 napja
requirements.txt fd1f64f4a4 rebuild from scrap 3 napja
rf_1.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_10.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_11.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_12.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_13.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_14.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_15.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_16.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_17.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_18.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_19.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_2.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_20.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_21.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_22.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_23.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_24.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_25.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_3.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_4.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_5.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_6.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_7.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_8.h5 fd1f64f4a4 rebuild from scrap 3 napja
rf_9.h5 fd1f64f4a4 rebuild from scrap 3 napja
sample.h5 fd1f64f4a4 rebuild from scrap 3 napja
seq2xml.py fd1f64f4a4 rebuild from scrap 3 napja
seq2xml_fixed_delay.py fd1f64f4a4 rebuild from scrap 3 napja
sim2xml.py fd1f64f4a4 rebuild from scrap 3 napja
sim_jemris.py fd1f64f4a4 rebuild from scrap 3 napja
sim_py2jemris_ismrm2021.py fd1f64f4a4 rebuild from scrap 3 napja
sim_seq_validation.py fd1f64f4a4 rebuild from scrap 3 napja
utest_py2jemris_script.py fd1f64f4a4 rebuild from scrap 3 napja

README.md

py2jemris

Python library for interfacing with the JEMRIS MR simulator.

  • Convert Pulseq/PyPulseq sequence files (.seq) into JEMRIS format for simulation
  • Construct custom Tx/Rx coil maps and numerical phantoms
  • Perform JEMRIS simulation pipeline for rapid .seq file testing

Introduction

The JEMRIS project provides a fast and robust Bloch simulation core for Magentic Resonance Imaging (MRI) experiments, along with sequence design functions. The sequence representation in JEMRIS is high level, consisting of nested loops and parameter dependencies across sequence components [1]. In contrast, the Pulseq MR sequence standard represents the sequence in unrolled, consecutive blocks, with no interdependencies between blocks [2].

Importantly, Pulseq is mainly intended for sequence development and can be interfaced to three main vendors for open-source acquisition. While JEMRIS can convert its sequences (typically, an .xml sequence construction file with a list of .h5 waveform data files) into the Pulseq format, it does not allow the reverse operation - converting any Pulseq sequence into a form ready for JEMRIS simulation. We developed py2jemris in order to incorporate simulations into our fully open-source sequence development cycle, as PyPulseq [3] scripting allows flexible and rapid open-source sequence construction.

Usage

py2jemris is intended for rapid MR sequence development - it enables dual simulation/acquisition using the same sequence file.

Get Started

To get started, clone the repository and read the function docstrings. You will need to have JEMRIS installed on your system. A Wiki page and a Google Colab Notebook will be available soon.

References

  1. Stöcker, T., Vahedipour, K., Pflugfelder, D., & Shah, N. J. (2010). High‐performance computing MRI simulations. Magnetic resonance in medicine, 64(1), 186-193.
  2. Layton, K. J., Kroboth, S., Jia, F., Littin, S., Yu, H., Leupold, J., ... & Zaitsev, M. (2017). Pulseq: a rapid and hardware‐independent pulse sequence prototyping framework. Magnetic resonance in medicine, 77(4), 1544-1552.
  3. Ravi, K. S., Geethanath, S., & Vaughan, J. T. (2019). PyPulseq: A Python Package for MRI Pulse Sequence Design. Journal of Open Source Software, 4(42), 1725.