GIfTI

GIfTI library for MATLAB

A MATLAB GIfTI library

This MATLAB class allows to handle GIfTI Geometry file format from the Neuroimaging Informatics Technology Initiative (NIfTI).

It relies on external MATLAB code:

  • Base64, by Peter J. Acklam,
  • dzip, by Michael Kleder,
  • XMLTree, also available from this website.

Note that these tools are already included in the GIfTI library provided here, so you don't need to install them separately.

This library is also part of SPM8.

Installation

This library takes advantage of MATLAB Object-Oriented facilities and all the code is embedded in a @gifti class. To install it, all you need is to make sure that the directoy containing @gifti is in MATLAB path:

  >> addpath /home/login/matlab/gifti

Note that the handling of gzipped data requires Java, so you shouldn't start MATLAB with the -nojvm option and the following line must not return an error:

  >> error(javachk('jvm'));

Example

In the following, we use the files contained in BV_GIFTI.tar.gz (BrainVISA examples), available from the NITRC website.

  >> % Read the GIfTI surface file
  >> g = gifti('sujet01_Lwhite.surf.gii')
  
  g =
  
      vertices: [22134x3 single]
           mat: [4x4 double]
         faces: [44264x3 int32]
       normals: [22134x3 single]
  
  >> % Read the GIfTI shape file
  >> gg = gifti('sujet01_Lwhite.shape.gii')
  
  gg =
  
      cdata: [22134x1 single]
  
  >> % Display mesh
  >> figure; plot(g);
  >> % Display mesh with curvature
  >> figure; plot(g,gg);
GIfTI surface file    GIfTI surface & shape file

In a similar way, a gifti object can be created from scratch and saved to a file:

  >> % Load a MATLAB example dataset and convert it into GIfTI
  >> load mri
  >> Ds = smooth3(squeeze(D));
  >> g = gifti(isosurface(Ds,5))
  
  g =
  
         faces: [32310x3 int32]
      vertices: [16564x3 single]
           mat: [4x4 double]
  
  >> % Display the surface mesh
  >> h = plot(g);
  >> daspect([1,1,.4]); view(45,30); axis tight
  >> lightangle(45,30);
  >> set(h,'SpecularColorReflectance',0,'SpecularExponent',50)
  
  >> % Save as a Base64Binary GIfTI file
  >> save(g,'mri.surf.gii','Base64Binary');

This will have created the file mri.surf.gii in the current directory.

GIfTI MRIsurface file

(Myaa was used to generate the anti-aliased graphics above)