Skip to content

usc-mrel/ismrmrd-pypulseq-matlab-server

Repository files navigation

FIRE Matlab Server

A lightweight ISMRMRD-compatible image reconstruction server written in MATLAB, inspired by Kristoffer Knudsen's Gadgetron Python ISMRMRD Server.

Getting Started

Begin by cloning the repository

git clone git@github.com:usc-mrel/mrel-talk-matlab-server.git

The server can either be run as a simple MATLAB-script

matlab -nodesktop -nosplash -r fire_matlab_ismrmrd_server(9002)

or in Octave.

octave-cli --eval "fire_matlab_ismrmrd_server(9002)"

It is also designed to be run from a Docker container

cd docker
docker build --tag=fire_matlab_ismrmrd_server .
docker run -p 9002:9002 -t --name fire_matlab --detach fire_matlab_ismrmrd_server

If you are using the matlab-server together with the FIRE WIP, the Application Guide contains information on creating a chroot-image which can be deployed on the scanner.

Client to send data

It is worth debugging issues using a client with saved MRD data instead of testing everything online. This codebase does not include a client, so there are some options for external clients:

Non-Cartesian Dynamic Imaging

A simple NUFFT implementation is at simple_nufft.m and can be utitlized in the following ways:

Modify the config name of the client sending the data. The config name should correspond to a .mat file in pulseq_metadata folder which holds the following:

  • 'w': density compensation array [1 x N]
  • 'kx': kx trajectory [1 x (N*Nrep)]
  • 'ky': ky trajectory [1 x (N*Nrep)]
  • 'param': dictionary holding 'repetitions', 'spatialResolution', and 'fov'. Spatial Resolution and FOV are used to calculate matrix size.

Authors

About

matlab ismrmrd server, with support for non-cartesian dynamic imaging trajectories.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published