CJE 16 May 2012, but based very heavily on;
NP;
March 2011; revised for new pipeline August 2011
Getting your data from the scanner
With MRS data; there are two
different “types” of data you need: The p-files, which contain the spectra, and
the dicom data which contain the imaging data. These are saved separately.
P-files
can be found in gpfs/mri/direct_transfer/spectro/
and then cd into the folder with your exam number in it (so for exam number 4236
go into the folder 4000). P-files are named examno_seriesno_pfileno.7
and to copy all the p-files from a session (in case of multiple scans) just
type
cp –r examno* $path
Imaging data (for segmentation) can be
found in the normal MRI folder;
/cubric/mri/direct_transfer/YEAR.
They can be unpacked using the sortdicomball command. Make sure you give it the full path.
/cubric/mri/direct_transfer/YEAR.
They can be unpacked using the sortdicomball command. Make sure you give it the full path.
Organising pfiles
This
is very simple and there are very clear functions to use. The easiest thing is
to have a document listing your p-files and commenting on their origin. How you
do this is up to you but for an example for an .m file with your pfiles in it:
pfile_occ
= {
‘2999_08_P00002.7’
%Subject 1, occipital
‘3000_07_P00003.7’
%Subject 2, occipital
‘3001_08_P00006.7’
%Subject 3, occipital
};
pfile_sensorimotor
= {
‘2999_07_P00001.7’
%Subject 1, sensorimotor
‘3000_08_P00004.7’
%Subject 2, sensorimotor
‘3001_07_P00005.7’
%Subject 3, sensorimotor
};
Running the analysis
Add the following directories to your matlab path (with subdirectories);
/cubric/software/matlab.versions/2012b/toolbox/stats
/cubric/software/matlab.versions/2012b/toolbox/matlab/optimfun
Set the p-files (just run the file you made above) and then load the p-files using the command GannetLoad (just type help GannetLoad if needed). e.g.
/cubric/software/matlab.versions/2012b/toolbox/stats
/cubric/software/matlab.versions/2012b/toolbox/matlab/optimfun
Set the p-files (just run the file you made above) and then load the p-files using the command GannetLoad (just type help GannetLoad if needed). e.g.
[MRS_STRUCT]
= GannetLoad(pfile_occ)
GannetLoad will load the pfiles and will
give a whole range of output variables. Images will pop up for each pfile.
These .pdf files are automatically saved in the folder MRSload_output.
-
The top left plot shows the GABA spectrum before
(green line) and after (blue line) frequency realignment. Generally these are
very similar.
-
The top right plot shows the drift in water
frequency which can be an pseudo-indicator of motion. Any scan that are more
than 2 standard deviations from the mean will be discarded (red circle)
-
The lower left plot shows the centre frequency
of the Creatine peak before (top) and after realignment. Blue bard indicate
scans that were rejected (same as the red circle).
Next you will want to fit the data by
using GannetFit. This fits the GABA peak (with a Gaussian) and the Water peak
(with a Voight lineshape) using Matlab's nonlinfit.
[MRS_STRUCT]
= GannetFit(MRS_STRUCT)
Where the MRS_STRUCT behind brackets is
the output from GannetLoad. For
each p-file separately it will plot: the full edited spectrum, GABA-peak and
Water peak + their fit. This will spit out an .pdf file for each pfile as well
(saved in MRSfit_date_timestamp in the folder you ran it from).
-
The top left plot shows the GABA peak (blue) and
the fit (red) and the residuals.
-
The lower left plot shows the Water peak (blue)
and fit (red) and its residuals.
When you look at MRS_STRUCT, you can see
a whole range of different parameters.
-
MRS_STRUCT.gabaiu are your GABA concentration
values in institutional units in the order you ran the pfiles in.
-
MRS_STRUCT.GABAIU_Error or .GABAFitError are the
error of the GABA fit. .WaterFitError does the same for water.
Always inspect the outputs of GannetLoad and GannetFit for artefacts and spectral quality.
Note that for analysing phantom data, use the equivalent commands GannetLoadPhantom and GannetFitPhantom.