You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added GannetVersion.m, VersionCheck.m, and UpdateGannet.m; these new functions let users know the version of Gannet they have, if a newer release of Gannet is available, and will allow them to automatically update if wanted
Added ToolboxCheck.m to check for missing MATLAB toolboxes needed to run Gannet
Error dialog boxes are displayed at the end of the analysis pipeline if an error occurred (during a batch analysis, Gannet will skip to the next dataset and continue running)
Users can now choose to use weighted (the default) or conventional signal averaging in GannetPreInitialise.m (outlier scans are removed when using conventional averaging, as before)
Added a new (optional) method for robust, weighted signal averaging: weighted averaging by criterion function minimization (WACFM) using the generalized Cauchy distribution as the cost function; see doi: 10.1016/j.bbe.2015.06.002 for more details; additionally, instead of weighting difference pairs, the subspectra of each editing subexperiment are weighted to generate weighted subspectra, which are then subtracted; see SignalAveraging.m
Yair Altman's export_fig toolbox is included as an optional toolbox that, if added to MATLAB's search path, Gannet will use to append all output PDFs from each module into a single PDF (a flag must be set in GannetPreInitialise.m to do this); this is very useful for easy QA of lots of data; note that Ghostscript needs to be installed for the appending of PDFs to work (NB: macOS users should use this version or use Homebrew to install Ghostscript)
Implemented use of hyperlinks in info and error messages printed in the command window so that users can: (1) directly run a certain function (such as UpdateGannet.m when VersionCheck.m informs the user a new release is available); (2) go straight to the line of code where an encountered error can be fixed (such as errors in GannetPreInitialise.m); or (3) go to a website by clicking on the printed URL (such as to download SPM12); the relevant code has been borrowed from export_fig
Added an option in GannetPreInitialise.m that allows users, when using robust spectral registration, to use the averaged pre-aligned subspectra as references for aligning the averaged post-aligned subspectra (this may be helpful when robust spectral registration makes the alignment of already good-quality pre-aligned spectra worse)
PaperPlot.m now allows users to plot an exemplary voxel mask co-registered to the respective structural image
Added GannetMask_GE_nii.m; GE users can now use NIfTI images instead of DICOMs to co-register their MRS voxels to structural images
Added the ability to trim datasets
Extended the ability to concatenate files, including over multiple subjects
Added a flag in GannetPreInitialise.m (MRS_struct.p.hide) to prevent output figures from displaying (useful when processing a large batch of files)
Gannet is now licensed under the BSD 3-Clause License
Alpha tissue correction is now performed on a by-metabolite basis rather than fixing the intrinsic WM:GM concentration to 1:2 (alpha) for all metabolites (assuming for now the ratio is 1:2 for GABA and Glx and 1:1 for GSH, EtOH and Lac); the alpha that is assumed is displayed in the GannetQuantify output figure
Removed MRS_struct.p.ON_OFF_order from GannetPreInitialise.m; the order of editing pulses is now determined automatically; the relevant code has been borrowed from Osprey (this has only been tested to a limited extent so may require further tweaking)
The exception to this change is phantom data, where users will still need to specify the order of editing pulses
Minor changes
Datasets with differing number of averages can now be batch-processed together
Turned off the progress bar displayed when loading Siemens TWIX data to reduce loading time
Renamed some files for the sake of clarity and style; removed obsolete GannetMask.m
Signal averaging and subtraction are now done in the new function SignalAveraging.m
Various improvements to RobustSpectralRegistration.m (formerly Robust_Spectral_Registration.m) for better handling of data acquired using very strong water suppression
The assumed concentration of pure water in GannetFit.m and GannetFitPhantom.m (PureWaterConc) has been changed from 55 to 55.51 mol/kg; this puts it in line with the same constant used in GannetQuantify.m
Added edits from Ralph Noeske (GE Berlin) to GERead.m for better handling of data when nechoes == 1; also changed the scaling factor if nechoes > 1 (hopefully this makes water-referenced measurements consistent across all data encoding flavors)
In GERead.m and PhilipsRead_data.m, instead of using the first point in the FID for signal weighting, the most common point that is the max in the magnitude signal across all FIDs is now used
Some changes to SiemensDICOMRead.m and DICOMRead.m for smarter handling of data files: for each dataset, metabolite and water data files should be stored in separate folders
Improved ExportToCSV.m; a single .csv file is now exported for HERMES datasets; useful variables such as signal areas and Cr fit quality metrics are now also exported
Set up SPM12 for batch tissue segmentation only when tissue segmentation has not already been run and do it only once in a batch
AllFramesFT (for the last loaded dataset) is now also saved in MRS_struct.spec
When saving the MRS_struct structure, the .mat file is now saved using version 7.3 (for the rare case when the structure is >= 2 GB on 64-bit computers)
Removed MRS_struct.p.sdat from GannetPreInitialise.m and the corresponding code from GannetLoad.m (this feature was never really used by users afaik)
Improved global zero-order phasing in SpectralRegistrationHERMES.m
Many cosmetic/aesthetic changes
The module output figures now show information useful for reporting acquisition parameters and results (in line with the MRSinMRS checklist)
Co-registered/segmented voxel masks displayed in GannetCoRegister, GannetSegment, and GannetQuantify output figures are now shown in yellow rather than grayscale
Smarter stacking of HERMES difference spectra in PlotPrePostAlign.m and PlotPrePostAlign2.m (formerly GannetPlotPrePostAlign.m and GannetPlotPrePostAlign2.m)
The Gannet documentation website URL is printed at the bottom of every output figure
Removed irrelevant messages from being printed in the command window during the analysis pipeline, replacing them with more useful messages
Minor rearranging of results text in GannetSegment and GannetQuantify output figures
Slight change to the y-axis labels of the Cr frequency spectrogram in the GannetLoad output figure
Better reordering of MRS_struct.out subfields created in GannetFit.m
Bug fixes
Frequency and phase offset estimates are now tracked correctly and saved when running any of the spectral registration-based alignment methods
Removed old debugging conditional statement in TWIXDeIdentify.m
Explicitly specify color of water frequency trace in GannetLoad output figure as there appears to be a bug since MATLAB R2019b when using hold to overlay plots
Added EtOH signal parameters to GannetQuantify.m
In SiemensTwixRead.m, if no water reference is provided, use the most common point that is the max in the magnitude signal across all FIDs instead of just using the first point
Fixed an orientation problem in GannetMask_GE.m
Removed unnecessary complex conjugate transpose during FFT of water data in GannetLoad.m
Turned off warnings about legacy number generator in RobustSpectralRegistration.m (for when rng and randn are run in SignalFilter.m) if they are already turned on