Editing Glutathione

Over the last year, we have been expanding our horizons to editing things that aren't GABA.  Probably the next most popular editing target is glutathione (GSH), so I thought I'd post some thoughts about how to take a GABA scan and modify it to edit GSH.

Editing Frequencies

To address the most obvious change first, the editing-on frequency changes from 1.9 ppm for GABA to 4.56 ppm for GSH (based on shifts from Govindaraju et al.).  The editing-off frequency is less critical, but putting it at 8 ppm seems safe.

Echo time

The least obvious issue to resolve is echo time, which we recently wrote a paper about (Chan et al. 2017, the subject of a recent MRM piece). To cut a long story short, it doesn't make a lot of difference whether you stick with medium-TE (~70 ms) or go longer (~120 ms), although the longer TE is slightly better (and certainly expected to be better).  Longer TE also has secondary advantages, like accommodating longer more selective editing pulses or longer, higher-bandwidth refocusing pulses.  But beware, some editing implementations e.g. the Siemens WIP, don't move the editing pulses when you increase TE, so it is impossible to edit well at longer TEs.  


Another important consideration, if you are planning a GSH editing study, is that it is now possible to edit GABA and GSH in the same scan without substantially impacting SNR (Saleh et al. 2016).  So if you're planning to edit GSH, why not edit GABA too?


Gannet performs post-processing frequency-and-phase correction of data to minimize subtraction artefacts due to motion and scanner drift.  For simple GSH editing, the 'NAA' alignment works pretty well. ('SpecReg' fails due to editing pulses impacting water). For HERMES, we have a new Gannet version in progress.

Hackathon Live Update Stream

Non-Live webcam feed!

Non-Live webcam feed!

455PM: A quick summary: We haven't come up with a method that makes things better. BUT, we have learned several important things:

1. NAA-based correction can do a lot to clean up the GSH-diff spectrum. 

2. Metrics matter.  By taken a mean 'quality score', we shot ourselves in the foot. We will reassess all data based on median, and maybe normalized by the group average SD subtraction artifacts, not within-subject... 

255PM: Bumped out of the large conference room.

1239PM: In terms of actual progress. We have tested 6 methods. None of them do very well. Onwards and upwards!

1200PM: Pizza arrives as ably planned by Mark (picking up from the organizational travesty that was Nick's lunch arrangement).  

933AM: Donutgate: the number of declared donuts doesn't match the number of eats donuts.

930AM: Donut scores: Georg 2 Nick 2 Richard 2 Ashley 1 Muhammad 0 Tao 1 Kim 1 Mark 1

922AM: Nick just left the room. Minus 70 Edden points.

920: Pretend to set up a live webcam feed.

905AM: Preliminary chat over.  Repositories forked and coding has begun. 

840AM: Skype to Jamie Near in Canada.

755AM: Room setup. Do we have enough extension leads? 

730AM: Dunkin' Donuts stop for fuel.

559AM: I remembered to grab my charged-overnight laptop on the way out of the house. A good start.

Frequency Correction Hackathon February 23 2015

The alignment of editing-ON and editing-OFF scans is an issue for all J-difference-edited MRS, but especially for HERMES editing, where at least four sub-experiments (with different signal characteristics) must be aligned.  

We are going to be taking a shotgun approach to improving frequency-and-phase correction for HERMES.  Tomorrow, we will focus on HERMES of GABA and GSH, trialling a (hopefully large) number of methods on 4x10 subjects in vivo data (collected at three sites) and simulated data.  We will implement the best method(s) in Gannet and hope to publish the results soon after.


Editing, faster

MEGA-PRESS editing of GABA.  It has been a reliable workhorse for the last decade, but I wonder how much longer it will rule the editing roost.  I am posting this through a haze of man flu and cough syrup, so forgive my mixed metaphors and apocalyptic tone.

MEGA-PRESS is fundamentally inefficient.  In spite of exciting all metabolite signals in a 3 cm slice of brain, through the application of two slice-selective spin echo pulses, the vast majority of signal is silenced, and then, by difference-encoding a single target metabolite, the majority of signals are consigned to the sum spectrum and ignored.  

Editing is slow, mainly because of the signal averaging required to measure low-concentration metabolites. Single-voxel single-metabolite editing is both slow and inefficient, because if you're forced to spend ten minutes doing something, you might as well do something else at the same time.

We have recently been exploring multiplexed edited experiments, and it turns out to be a rich seam to explore.  Why not join us?  Parallel imaging reconstruction allows the simultaneous acquisition of multiple excited voxels using PRIAM, and we have recently shown that MEGA-PRIAM can simultaneously edit multiple voxels.  We have also shown that MEGA-PRESS experiments can be run simultaneously to edit multiple metabolite targets, so long as the editing encoding schemes are orthogonal, using HERMES.  Thus far, HERMES has been demonstrated for simultaneous detection of NAA/NAAG and GABA/GSH, and there is a lot more to come.  It is worth noting that HERMES and PRIAM are compatible methods, and combining them allows the simultaneous editing of multiple metabolites in multiple voxels.  And finally, for now, SHERPA is an alternative approach to MEGA-PRIAM for the simultaneous edited detection of multiple voxels.  It draws on the HERMES principle of orthogonal editing encoding, but applies it spatially, using gradients to make editing pulses spatially selective.  The field of accelerated editing is just beginning and there are a lot more exciting ideas to explore.

Gannet Supporter Pro License

At Gannet HQ, we spend a lot of time listening to the podcasts provided by maximumfun.org, including the life-changingly wonderful Judge John Hodgman. This podcast network runs on the basic assumption that people who like something might be willing to support it financially.  So I thought it might be worth trying for Gannet.

If you like Gannet and would like to support the work we do, please consider purchasing a Gannet Supporter Pro License.  When you do so, you will be sent a beautiful t-shirt from Zazzle, that you can wear to your conference of choice, and to bars, and at a push weddings.

Depending on how this appears on your credit card statement, it might even be a  claimable expense.  Net proceeds from sales of Gannet Pro Supporter Licenses will be used to purchase coffee and further fuel the development of the software.

If you are a female supporter of Gannet, Zazzle will allow you to choose a lady-shaped t-shirt option.  

Gannet remains a free-to-use software.  Thank you for using and supporting Gannet.


GABA phantom recipe

This is an edited repost from 2012 on the old blog.

It seems that there is some value 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 

Edits from the original, also add:

  • Sodium Azide NaN3: 1g  (to prevent bug growth) S2002
  • Glycine: 0.751g (internal reference) 50046

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

ISMRM MRS Workshop, Konstanz, Germany

It was a great pleasure to attend the ISMRM MRS Workshop last week, and an even greater one to give the talk on Edited MRS.  I reviewed editing approaches (J-difference and MQF), landmark papers in editing (Rothman, Rothmans, Mescher, Star-Lack, Henry, Terpstra) and then presented our new work on accelerated editing, with HERMES, MEGA-PRIAM and HERMES-PRIAM.  

NEW Philips Patch Dissemination for HERMES

We encourage collaborators, currently using our MEGA-PRESS patch to measure GABA, to upgrade to the HERMES patch for future studies.  This patch allows you to measure Glutathione (the most abundant antioxidant in the brain) 'for free', as described in the post below, but also has some useful upgrades to the GABA-only editing. 

We are extremely excited about the HERMES experiment, and expect it to overtake MEGA-PRESS as the most widely used edited experiment.  Drop us an email to request the new patch.

Simultaneous Editing of GABA and GSH with HERMES

The two most widely edited metabolites are GABA, the main inhibitory neurotransmitter, and Glutathione (GSH), the most abundant redox compound in the brain.  They give edited signals at 3 ppm and 2.95 ppm respectively, making them ideal candidates for simultaneous HERMES editing.

Building on Kim Chan's work, Muhammad Saleh has implemented a HERMES experiment that simultaneously and separably edits GABA and GSH.  HERMES uses a Hadamard editing scheme to encode the ON/OFF of J-difference orthogonally for GABA (at 1.9 ppm) and GSH (at 4.56 ppm). The inversion profiles of the four Experiments A-D look like:

Applying these pulses, evolution of couplings in the GABA molecule is refocused in the GABA-ON scans, and evolution of couplings in the GSH molecule is refocused in the GSH-ON scans, so that the combination A-B+C-D will give the GSH-edited spectrum, and A+B-C+D will give the GABA-edited spectrum.

Figure 3-01.png

In vivo, this allows single experiment to acquire data equivalent to two consecutive MEGA-PRESS acquisitions.

GannetCoRegister for Siemens

We receive a number of support requests on GannetCoRegister for Siemens. We hope that Gannet’s co-registration for Siemens data does the correct job in most cases. However, on occasion, there can be hiccups. This post attempts to explain their origin, how to avoid them, and how to fix them.


At first glance, it seems trivial to correctly draw a box on a brain. Unfortunately, it is not, and the process has pitfalls. One reason is a lack of standardization and documentation. Unlike imaging metadata (at least some of which are agreed upon in DICOM fields), there is no universal vendor-independent data structure that carries the parameters of an MRS voxel, that is, dimension, position and rotation. Siemens, Philips and GE all have their own conventions and formats of defining and storing the voxel parameters, and they may even vary between sequence and/or software versions.

On top of that, the rotated-and-offset voxel is usually planned in the context of an oblique-and-offset anatomical image. Sometimes, the image on which the voxel is planned is not the one it is intended to be coregistered to. That makes three frames of reference, which may not even share the same coordinate system, e.g. when the table moves during scans. 


Despite a few caveats, GannetCoRegister will very likely work smoothly for you, if you adhere to a few Golden Rules.

  • Place your voxel in the image that you want to use for coregistration. This is usually an axial 3D MPRAGE. It is common to acquire three separate orthogonal 2D scans for voxel planning, because the Siemens software does not automatically provide sagittal and coronal reconstructions of the MPRAGE. We would encourage users not to do this - reconstruct the T1 manually, or ask your tech for help!
  • If the above is not possible, make sure that all your images are acquired in REF or FIXED mode. Running a sequence in ISO mode will reset the isocenter, move the table, and create a new frame of reference.
  • Take screenshots of each planned voxel.
  • Double check the reconstructed voxel for each dataset. Thoroughly compare it to the screenshot taken while planning the voxel on the scanner. See the Troubleshooting section below if you believe the reconstruction is not correct.

If you follow these, and still meet with issues, please let us know, so we can revise or further clarify them.


If your reconstructed voxel does not appear correct, you may try the following fixes:

  • If the voxel appears to be in the correct position, but the dimensions (or rotations) look swapped, you can edit GannetMask_Siemens.m (lines 80-83 as of today).
MRS_struct.p.voxoff = [rda.VOIPositionSag rda.VOIPositionCor rda.VOIPositionTra];
MRS_struct.p.voxsize = [rda.VOIThickness rda.VOIReadoutFOV rda.VOIPhaseFOV];
MRS_Rot(:,1) = rda.row.'.* [-1 -1 1]';
MRS_Rot(:,2) = rda.column.';

The first line determines the voxel offset (and should be fine in all cases). The second line determines the voxel dimensions, while the third and fourth rotate the voxel in space. You may try to swap the dimension variables, or modify the -1 and 1 values in the multiplication array.

  • If you have planned your voxel in an image other than your MPRAGE and get wrong results, you can try fixing this with SPM. Coregister (estimate & reslice) your MPRAGE to the image you used for planning, and feed the new image to GannetCoRegister. This will reconcile the coordinate systems defined in the nifti headers, but the coregistration of the two images might be suboptimal (depending on the quality of the planning image).

Please let us know when you encounter difficulties using GannetCoRegister or GannetSegment, along with the specific sequence and Siemens software version you are using. Your feedback will help improve future versions of Gannet!