MRI Together

Join us for a live demonstration of TOPPE at MRI Together, a global workshop on open science and reproducible MR research hosted by ESMRMB, Dec 17-21, 2021.
Session: Pulseq & TOPPE on GE
Time: Dec 15 at 18:00-20:00 UTC

Table of Contents

  1. Introduction
  2. Download the source code
  3. Getting started
  4. Using TOPPE as a Pulseq interpreter



TOPPE is a simple, modular framework for rapid prototyping of pulse sequences on General Electric MRI scanners.

This framework is currently being updated to version 4.

All content related to this project, except the GE EPIC source code for the interpreter, is hosted on Github:

Working with TOPPE involves three basic steps:

TOPPE workflow

  1. Design the RF and gradient waveforms you want to play out on the scanner, using any suitable method.
  2. Create TOPPE sequence files (gray boxes). This is done by first writing each unique sequence block, or module, to a ‘.mod’ file using the ‘mat2mod.m’ MATLAB script. You then create a file named ‘scanloop.txt’ that specifies the order in which to play out the modules, waveform amplitudes, and other dynamic sequence information. Finally, create a small file named ‘modules.txt’ that lists the various modules.
  3. Copy the files you created to /usr/g/bin/ to the scanner, and run the TOPPE binary executable (green box) which loads the files and executes the sequence. The TOPPE executable only needs to be compiled and installed once per scanner software upgrade.


The following example shows the TOPPE files for a sequence containing four different modules:

TOPPE files



TOPPE MATLAB code is open source and is available at:

Alternatively, from a console you can copy the entire MATLAB repository to a local folder as follows:

git clone

EPIC code

The TOPPE binary executable (psd) is written in ‘EPIC’ and is available for download in the following private Github repository:

Or from a console:

git clone

For access, please email your Github user name to or

Access is limited to institutions that have signed the GE Research Community Sharing License, available at


Compiling the TOPPE interpreter

The TOPPE binary psd (‘toppev2c’) is compiled in the usual way, i.e.:

prep_psd_dir; psdqmake hw;

Copy the resulting executable files, e.g., toppev2c and toppev2c.psd.o for DV25 and earlier, to /usr/g/bin/ on the scanner.

Running an example TOPPE sequence (UPDATED May 2019)

The examples/ISMRM2019_SoftwareDemo folder contains two complete examples to get you started: 2D GRE and 2D EPI. See the file in that folder for usage.

These sequences will be/was demonstrated at ISMRM in Montreal on Sun May 12 during the educational session titled ‘Open-Source Software Tools for MR Pulse Design, Simulation & Reconstruction’. The specific demonstration is titled ‘Live Cross-Vendor Sequence Programming with Pulseq’.

The TOPPE User Guide

Additional details and instructions are provided in this MRM paper and in the TOPPE user guide

Latex source code for this guide is open source, available in the TOPPE repository,

Discussion forum!forum/mr-pulse-sequence-prototyping-with-toppe

USING TOPPE AS A GE INTERPRETER FOR Pulseq (under development)

Pulseq ( is a platform-independent file format for specifying arbitrary MR sequences. In preliminary work we have used TOPPE as a GE interpreter of Pulseq files, which involves converting a Pulseq file to TOPPE files using the ‘seq2ge.m’ MATLAB script included in the TOPPE distribution. We also provide a script ‘ge2seq.m’ for converting TOPPE to Pulseq format. For more details about Pulseq, see the following paper: DOI: 10.1002/mrm.26235

TOPPE files


  1. Get the TOPPE Matlab toolbox
    $ git clone
  2. Convert the Pulseq (.seq) file to a set of TOPPE files. In Matlab:
    >> addpath ‘<pathToToppe>/pulseq’     
    >> seq2ge(<.seq file>)
  3. Execute (TOPPE) sequence as described above.

Contact us

TOPPE is being developed at the fMRI laboratory at University of Michigan.

For questions, contact Jon-Fredrik Nielsen at or