Replies: 1 comment 5 replies
-
|
@namgyunlee This maybe of interest to you. |
Beta Was this translation helpful? Give feedback.
5 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hi all,
thanks for this amazing work! I wanted to discuss an undocumented Pulseq extension (i.e, rotation), I hope this is the appropriate place for it.
Motivation
Pulseq format does a fantastic job in keeping the size of the seqfile small when the sequence mostly consists of repetitions of scaled waveforms (which is true for most Cartesian imaging). However, I feel the base format is not so efficient when it comes to Non Cartesian sequences (pulseq/pulseq#31). Luckily, many Non Cartesian trajectories can be efficiently described as rotated versions of a single waveform (see, for instance, this), potentially enabling a significant reduction of memory footprint and faster loading times, even in older scanner platforms.
Apparently, C++ implementation of Pulseq already defines a Rotation event extension, representing the rotation of the gradient matrix for each block. This extension, as far as I know, has never been exposed to MATLAB or Python codebases, perhaps because the main Siemens interpreters do not support it? I am not a Siemens user myself, so I cannot verify this.
Proposal
I exposed the rotation extension in my own PyPulseq fork, since the GE interpreter potentially supports this kind of waveform manipulation already (@jfnielsen). I also adapted the plotting tools and helpers routines extracting gradients, waveforms and so on. Before opening a pull request, I would like to know if that sounds like a good idea. Personally, I do not see this as a too much intrusive modification, as per Pulseq specification extensions are explicitly designed to add new features without having to go through a major release. As an example, code for sequences aiming to be compatible with different interpreters (supporting rotation or not), could contain this kind of code snippet for the gradient rotation:
Thanks again!
Matteo
Beta Was this translation helpful? Give feedback.
All reactions