Tuesday, 3 March 2015

Setting up a MEGA-PRESS scan from PRESS

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 to 16, averages to 2, startup acquisitions 0.
    • -------------------------------------------------------------
    • EDIT 5/5/2015 Even the window-averaged frequency correction is not consistent. Current best advice is to turn it off.
    • Turn on frequency correction, and set freq stab window to 8. 
    • Set+freq stab odd dyn: yes (in the dyn/ang tab). This makes sure the frequency only updates on the first TR of an odd dynamic scan, helping minimize subtraction artefacts.
    • ----------------------------------------------------------------------
  6. In Dyn/ang, Dynamic study individual, 160 dynamic scans.
  7. In Postproc, turn on spectral correction. Set Apply Spectral Correction to no. Acquire 16 averages. 
Make sure you read this post as well: http://gabamrs.blogspot.com/2014/10/frequency-stabilization.html.

Friday, 20 February 2015

3rd International Symposium on MRS of GABA

Registration and abstract submission are now open for the 3rd International Symposium on MRS of GABA, to be held on the 14th and 15th of October 2015 at the Hilton Buena Vista Orlando, Florida, USA.

See you there!

Wednesday, 4 February 2015

When Gannet goes wrong

There are two extremely common ways the analysis can fall over.  And by 'extremely common', I just mean that I write more emails than I want to explaining the fixes. So here they are for posterity.

Both problems can be nicely summarized as "My spectra are negative".   


If your GannetLoad output spectra look like this, the experiment is working fine, and one of two things have happened with the processing: either the data are phased negatively, or the ON and OFF spectra have been incorrectly identified.

Solution 1: spectra are phased negatively.
If the bottom-left panel from GannetLoad looks like this:

i.e. a cold (blue) stripe on a hot (red/yellow) background, then the spectra are phased negatively.  This happens when the residual water signal is negative with respect to the rest of the spectrum (common using Philips-MOIST). The simple solution is to change the MRS_struct.p.WaterPositive parameter in GannetPreInitialise.m. 
If you successfully do that and rerun the data, then they should look more like this:
i.e. a hot (red/yellow) stripe on a cold (blue) background. Your GABA difference spectra should now be positive.

Solution 2: ON and OFF are incorrectly identified.
If the creatine stripe is correct (red on blue; spectra phased positively) and the difference spectra are still negative, then the issue is the ordering of ON and OFF spectra.  The simple solution is to change the MRS_struct.p.onofforder parameter in GannetPreInitialise.m. It is either 'onfirst' or 'offfirst' depending on the acquisition order.

So here's the summary:

"Gannet makes my GABA difference spectra negative".

"Are your creatine signals phased positively?".

If yes, change MRS_struct.p.onofforder; if no, change MRS_struct.p.WaterPositive.

There is a third scenario, which is probably not that bad, but is worth fixing anyway - that is, when both these parameters are set wrong.  In that case, the GABA spectrum will be positive, but the Creatine stripes will appear negative.  So flip 'onfirst'/'offfirst' and the WaterPositive setting.

Friday, 30 January 2015

GannetCoRegister and GannetSegment


Two additional functions that have been added to the Gannet for Philips SDAT data and GE data: GannetCoRegister and GannetSegment. 


GannetCoRegister registers the MRS voxel to the T1-weighted image (MPRage for Philips, FSPGR for GE) and creates a binary mask of the MRS voxel using the same geometry as the T1-weighted image. It uses a subroutine, GannetMask, which can also be used as a stand-alone function (for information on GannetMask, see posting from Dec 2014). GannetCoRegister is integrated into the Gannet workflow and to create voxel masks for each MRS file that have been processed with GannetLoad.


GannetSegment segments the T1-weighted image (using SPM) and then determines the tissue fractions (gray matter, white matter and CSF) for the voxel and provides a CSF-corrected GABA estimate (where the corrGABAconc = GABAconc/(1-fCSF) where GABAconc is the original concentration estimate of GABA and fCSF is the fraction of CSF in the voxel.  


For this to work you need to have SPM8 installed.


GE data
The folder containing the dicom images of the FSPGR (or other anatomical image) and the "rotator image" that is acquired parallel to the voxel plane and used to plan the MRS voxel are used in GannetCoRegister.

MRS = GannetLoad({‘Pfile.7'})

MRS = GannetFit(MRS)

MRS = GannetCoRegister(MRS, {‘FSPGR_dcm_directory'}, {‘rotator_directory’})

MRS = GannetSegment(MRS)


Philips SDAT data

MRS = GannetLoad({‘GABA.sdat'}, {‘waterref.sdat’})

MRS = GannetFit(MRS)

MRS = GannetCoRegister(MRS, {‘MPRAGE.nii’})

MRS = GannetSegment(MRS)


GannetCoRegister outputs one MRS_file1_mask.nii for each MRS dataset.  It also saves a pdf image of the voxel overlaid on a 3-plane view of the image at planes that transect the voxel. GannetSegment outputs segmented images for gray matter, white matter and CSF, adds the tissue fractions of the voxel to MRS_struct and saves a pdf image that includes the tissue fractions and a CSF-corrected GABA value. Note, GannetCoRegister can be run prior to GannetFit but GannetFit must be run prior to GannetSegment. 


For more details and more information, please refer to the updated manual. 

If you use these tools, please cite: Harris, Puts, Edden. 2015. Tissue correction for GABA-edited MRS: considerations of voxel composition, tissue segmentation and tissue relaxation. J Magn Reson Imaging. In Press. 

Sunday, 14 December 2014

GannetMask and GannetSegment

These new functions are still a work in progress, but by way of documentation for anyone brave enough to try, here is the gist of things.

 MRS_struct  = GannetLoad({'gabafile.SDAT'},{'waterfile.SDAT'});
 MRS_struct  = GannetFit(MRS_struct);
 MRS_struct=GannetMask_Philips('gabafile.SPAR','T1.nii',MRS_struct,1);
 MRS_struct =  GannetSegment(MRS_struct);

 

Tuesday, 7 October 2014

Frequency Stabilization

Edit 9/14/2015: This post is superceded by today's post.

We have written a couple of papers on subtraction artefacts (Evans et al. JMRI 2013) and field drift (Harris et al. MRM 2014).  Obviously as a subtraction technique, stability is important for MEGA-PRESS.  However, one aspect that we have not emphasised is the impact of drift on editing efficiency. As the field drifts, the offset of editing pulses moves from their intended target and the editing efficiency of GABA (and MM) changes.  This is especially important for MM-suppressed editing, where small drifts can rapidly lead to positive or negative MM signals bleeding back in.  MM suppression relies upon editing pulses that are symmetrically disposed about the MM signal to properly null MM.  This symmetry is destroyed by the field drift that occurs due to scanner heating/cooling and subject movement.

The Philips scanner has a Frequency Stabilization (FS) function programmed in. Basically, it performs a whole-slice gradient echo measurement to determine changes in the offset. This quick, small-flip-angle water measurement, which is interleaved within the TR, is strongly recommended not to be used for proton spectroscopy, largely because it is inaccurate.  In the new patches for releases 5.1.2, 6.1.7 and 5.1.8, we have added a buffer-averaging feature to this stabilization.  Offset updates are based not on a single FS measurement, but on the average of the previous n measurements (where n is set by the parameter Frequency Stabilization window, which appears when FS is turned ON).  The idea being that the original implementation's main failing is that it is noisy, and averaging helps address that.  In a way MEGA-PRESS is the ideal application for an averaged approach, since we do not want to update the frequency every TR.  This approach seems to be beneficial, but is still being investigated.  If you would like to apply it in your experiments, some suggested parameters are given below.

Strengths
  • In the presence of moderate instability, MM suppression is improved by locking the frequency.
  • This method is more accurate than the Philips standard FS (which can still be used by changing the window to 1).
  • The FS feature can turn off without warning (although possibly less now that the averaging removes spikes).
  • This is largely untested.
  • The averaged window approach tends to lag behind in the case of drift, and respond more slowly in the case of sudden movement.

Weaknesses

Parameters
Frequency Stabilization: yes (in the motion tab)
Frequency Stab window: 16 (same tab). This is a trade-off between averaging benefit and lag...
+freq stab odd dyn: yes (in the dyn/ang tab). This makes sure the frequency only updates on the first TR of an odd dynamic scan, helping minimize subtraction artefacts.

Wednesday, 10 September 2014

Piperidate

For anyone that finds it irritating to spell out GABA in papers, why not use the old-school piperidate instead?  Maybe it'll catch on.