Software

VDI (Visual Display Interface) is a set of MATLAB libraries meant for the visualization and processing of multiresolution data: MRS, MRSI, fMRI and MRI. It also includes libraries for carrying out automated B0 shimming and LCModel fitting. Some of the things it can do:

  1. Calculate fraction of WM, GM or CSF in each MRSI voxel and carry out linear regression to get global GM, WM concentrations.
  2. Calculate the time course of a BOLD signal inside an MRS voxel.
  3. Apply a spatial mask to an MRSI dataset to zero out voxels in particular regions of interest, or calculate an average MRSI spectrum by summing all voxels inside a given region of interest defined by a high resolution binary mask (e.g.: the average MRS spectrum from the dorsal anterior cingulate cortex).
  4. Automate sending spectra from MATLAB to a Linux computer via SSH, fit them and retrieve the results, all within the MATLAB interface.

To use, simply download, unzip, and add the directory and all subdirectories to the MATLAB path. All versions can be found in the Google Drive repository:

VDI Google Drive Repository

Consult the README.TXT file in the root directory for an introduction, and also the "examples" subdirectory for concrete examples on how to use the library.

How to Acknowledge: When using the VDI library, please cite the VDI software framework using the appropriate bibliographic style. For example:

Tal, A (2020). Visual Display Interface (VDI) [Computer Software]. Retrieved from http://www.vdisoftware.net

Bloch simulations are an essential tool in magnetic resonance, and having a library which can quickly prototype and troubleshoot sequence issues is crucial. Our SpinTool library provides such a framework. It is part of the VDI framework, but it works independently of it and is not distributed with the VDI distribution. It must therefore be downloaded separately. It is written for MATLAB and can be downloaded from here:

SpinTool

As an example, consider how easy it is to code a simple (non-spatially selective) spin-echo experiment on a uniform, 10 mm sample with 100 spins on resonance, starting from the z-axis, with a chemical shift of 0 Hz in the rotating frame and T1=1000 ms, T2=200 ms:

spins = InitSpinsRelax(0, 100, 10, [0;0;1], 1000, 200);
seq = {{'hard', 90, 270}, {'delay', 1}, {'hard', 180, 0}, {'delay', 1}, {'acquire', 1000, 1, 0, 0, 0}};
[spinsOut, fid] = ApplySequence(spins, seq);

The cell array fid holds the resulting decaying FID. Plotting it is straightforward:

figure; plot(real(fid{1}));

The resulting plot looks like this:

To get started, type "help ApplySequence" in MATLAB and read the MATLAB Cheat Sheet (in Word format) in the root directory of SpinTool.

How to Acknowledge: When using SpinTool, please cite the VDI software framework using the appropriate bibliographic style. For example:

Tal, A (2020). Visual Display Interface (VDI) [Computer Software]. Retrieved from http://www.vdisoftware.net

(SpinTool and VDI will always be hosted on the same webpage and/or repository, and might be combined into a single distribution in the future.)