A lightweight ISMRMRD-compatible image reconstruction server written in MATLAB, inspired by Kristoffer Knudsen's Gadgetron Python ISMRMRD Server.
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.
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:
- https://github.com/kspaceKelvin/python-ismrmrd-server instruction number 4.
- http://gadgetron.github.io/ has a
gadgetron_ismrmrd_client
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.
- Alexander Fyrdahl (alexander.fyrdahl@gmail.com) - Initial work -
- Prakash Kumar (prakashk@usc.edu) - modifications for NUFFT support -