TOPPE is a modular framework for rapid prototyping of pulse sequences on General Electric MRI scanners. For an overview, see https://toppemri.github.io/.
TOPPE can be used on its own, or as the GE interpreter for Pulseq; the latter allows MR sequences to be ported across vendor platforms (currently, Siemens and GE are supported). For more information on converting to/from Pulseq, see https://github.com/toppeMRI/PulseGEq.
This repository contains various basic functions for writing and reading TOPPE scan files, that are then simply copied to the scanner host computer and loaded by the TOPPE interpreter for execution. The interpreter (EPIC source code) is hosted in a separate repository -- for access, contact [email protected].
The examples/3DGRE folder contains the Matlab function gre.m
, that
creates a set of TOPPE files that together define a 3D RF-spoiled gradient-echo sequence.
For a detailed explanation of these files, see Files.md.
Note: In TOPPE, raster time (sample dwell time) is 4us for both RF and gradient waveforms.
- Get this toolbox and enter the example directory
$ git clone [email protected]:toppeMRI/toppe.git
>> cd examples/3DGRE
- (optional) Edit gre.m to set the desired FOV and matrix size, and scanner hardware specs.
- Create the GRE scan files. In Matlab:
>> addpath ../.. % folder containing the +toppe package
>> gre;
This creates the files modules.txt
, scanloop.txt
, seqstamp.txt
, and two .mod
files (tipdown.mod
and readout.mod
).
The return value is a struct containing hardware parameters, that is needed for plotting.
>> iStart = 1; iStop = 2; % row numbers in scanloop.txt
>> toppe.plotseq(iStart, iStop, sys);
The .mod
file format is a custom format that is used for both RF excitation, readout,
and gradient-only modules.
To plot the contents of these files, do:
>> toppe.plotseq('tipdown.mod');
>> toppe.plotseq('readout.mod', 'gradcoil', 'xrm');
>> nModulesPerTR = 2;
>> toppe.playseq(nModulesPerTR, sys, 'tpause', 0.2, 'nTRskip', 10);
You should observe that the phase- and partition-encoding gradient amplitudes, and the RF phase, are changing.
- Place
modules.txt
,scanloop.txt
,seqstamp.txt
, and the two.mod
files in /usr/g/research/pulseq/gre/ on the scanner host computer. - Copy the file
toppe0.entry
to /usr/g/research/pulseq/ on scanner host. This is the entry point for the interpreter. - Run the interpreter. For details, see the README file in the interpreter source code repository