Wednesday, 22 February 2012

Gannet Beta version available through github

Gannet is now freely available through this link to github.Click on the GANNETMaster BETA Download.zip link. (This link allows me to log downloads).

Gannet:

  • analyses GABA-edited MRS data saved as GE P-file, Philips .data or .sdat, or Siemens .rda.
  • is designed for batch analysis of entire study datasets
  • is matlab-based 
  • saves pdf output showing each dataset.

This software is provided without warranty.

We are managing version control of the code through github which also allows downloads.  It may be possible to dowmload without signing in, but it might be worth getting an account if you intend to use Gannet, so you can watch the repository richardedden/GannetMASTER.


I will post soon about how to get started and will add some example data files.  The analysis code pulls a lot of information about acquisitions from the file headers, but some assumptions are made (based on our own defaults), for example about the ordering of OFF and ON within the data.

Monday, 20 February 2012

GABA phantom recipe

It seems that there is some value in a standardized GABA phantom for cross-platform testing etc... This recipe is also a reasonable place to start if you want a 'will-work-without-much-thought' option.  Everything is available form Sigma Aldrich.

  • Container: 1 liter Nalgene bottle style 2125
  • Buffer: One PBS sachet P5368
  • GABA: 1.03 g (RMM 103.1) A2129 

Make up to 1 liter with deionized water.  pH can be adjusted using NaOH/HCl (but to a first approximation does not need to be).

Wednesday, 15 February 2012

Setting up a MEGA-PRESS scan with the Philips patch

***These instructions are no longer current 9/2014***

These instructions are intended to help anyone with our patch get things set up for GABA editing. They are Philips- and patch-specific.


  1. Start with a short-TE PRESS scan
  2. In Initial, increase the TE to 68 ms.
  3. In Geometry, change the voxel size to ~3x3x3 cm^3.
  4. In Contrast:
    • Change Gradient mode to Maximum and PNS mode to high.
    • Select MEGA basic in BASING pulse options.
    • Pulse duration 14ms, freq1 7.46 ppm, freq2 1.9 ppm. [OFF first, edit 8/19/12]
  5. In Motion, set phase cycles and averages to 8, startup acquisitions 0 and turn off frequency correction.
  6. In Dyn/ang, Dynamic study individual, 40 dynamic scans.
  7. In Postproc, turn off spectral correction.
  8. Set up a separate non-water-suppressed PRESS scan for quantification relative to water.

Wednesday, 11 January 2012

Beta versions of Gannet on the way

Over the Christmas period, John and Nick have ironed out some remaining discrepancies between Cardiff code and the master Gannet version, including handling transatlantic differences such as default units for output figures.

We anticipate that this will lead to a beta version of Gannet that will be made available here by the end of January, which will be publicised to our current collaborators and freely downloadable.

Sunday, 18 December 2011

Co-registering the MRS voxel to an image

This is 'the problem that will not die', and at various times, I have spent weeks on the problem without much to show for it. This document outlines the route for a solution.
As a taster, here is a triply rotate MRS voxel on a triply rotated T1 image. First the scanner screenshot:
 
And now the reconstructed voxel (overlaid on the image):
 
We may be nearly there.

Monday, 12 December 2011

Anonymizing Siemens .rda files

In working towards a useful distribution version with example data files, we need to make sure that all files are de-identified. This script does the trick (matlab):


a=dir('*.rda');
for number=1:size(a)
    a(number).name
    fid = fopen(a(number).name,'r+');
    tline = fgets(fid);
    position=ftell(fid);
    tline = fgets(fid);
    magic=tline;
    size(magic)
    for ii=14:(size(magic,2)-2)
      magic(ii)='*';
    end
    fseek(fid,position,'bof');
    fwrite(fid,magic,'char');
    fclose(fid);
end

Thursday, 8 December 2011

Cross-vendor harmonisation: alpha and kappa

One aim we have to overcome differences in GABA concentration measurements across vendor.  Currently there are two main ways to quantify GABA signal:

  1. As an integral ratio to Creatine in the 'off' spectrum.
  2. As a concentration in institutional units (i.u.), relative to the unsuppressed water signal.
The main advantage of method 2 is that differences between scanners (mentioned below) can be accommodated to give values that can be compared across studies and across scanners.

The concentration c_G of GABA in i.u. can be expressed as:
where subscript G and w refer to water and GABA and where factors R account for T1 and T2 relaxation, kappa is the editing efficiency of GABA signal (typically around 50%) and alpha is the signal fraction of macromolecular signal.  In this framework, only two things change specifically by vendor* - the editing efficiency and the MM signal fraction and appropriate correction factors should result in cross-vendor comparable i.u. values.

The editing efficiency will depend on multiple factors including the slice-selective refocusing pulse spatial profile and bandwidth.  Finite bandwidth refocusing leads to a loss of edited signal efficiency related to the chemical-shift displacement (see e.g. our 2007 paper).

The MM signal fraction will depend on editing pulse selectivity. Although editing pulses are placed at 1.9 ppm in the GABA-editing experiment, they partially invert MM spins at 1.77 ppm, which are coupled to MM signals at 3 ppm, leading to a significant MM contribution to the edited signal.  The degree of this inversion at 1.7 ppm will depend on the inversion pulse shape and length, with length largely being limited by the ~70 ms echo time preferred for edited experiments and the B1.

So here is the plan - measure kappa for each MEGA-PRESS implementation and somehow get a handle on differences in alpha.  



* ..but we mustn't forget that the R terms vary by TE and TR which may vary site-to-site.