Learn R Programming

⚠️There's a newer version (3.4.0) of this package.Take me there.

spant (version 2.7.0)

MR Spectroscopy Analysis Tools

Description

Tools for reading, visualising and processing Magnetic Resonance Spectroscopy data. The package includes methods for spectral fitting: Wilson (2021) and spectral alignment: Wilson (2018) .

Copy Link

Version

Install

install.packages('spant')

Monthly Downloads

605

Version

2.7.0

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Martin Wilson

Last Published

January 28th, 2023

Functions in spant (2.7.0)

Im.mrs_data

Apply Im operator to an MRS dataset.
Mod.mrs_data

Apply Mod operator to an MRS dataset.
Conj.mrs_data

Apply Conj operator to an MRS dataset.
Nspec

Return the total number of spectra in an MRS dataset.
Ndyns

Return the total number of dynamic scans in an MRS dataset.
Npts

Return the number of data points in an MRS dataset.
Imzap

Complex rounding function taken from complexplus package to reduce the number of spant dependencies.
Nx

Return the total number of x locations in an MRS dataset.
Arg.mrs_data

Apply Arg operator to an MRS dataset.
Ncoils

Return the total number of coil elements in an MRS dataset.
Ny

Return the total number of y locations in an MRS dataset.
add_noise

Add noise to an mrs_data object.
Re.mrs_data

Apply Re operator to an MRS dataset.
abfit_opts

Return a list of options for an ABfit analysis.
apodise_xy

Apodise MRSI data in the x-y direction with a k-space filter.
acquire

Simulate pulse sequence acquisition.
abfit_opts_v1_9_0

Return a list of options for an ABfit analysis to maintain comparability with analyses performed with version 1.9.0 (and earlier) of spant.
Nz

Return the total number of z locations in an MRS dataset.
append_basis

Combine a pair of basis set objects.
array2mrs_data

Convert a 7 dimensional array in into a mrs_data object. The array dimensions should be ordered as : dummy, X, Y, Z, dynamic, coil, FID.
back_extrap_ar

Back extrapolate time-domain data points using an autoregressive model.
basis2mrs_data

Convert a basis object to an mrs_data object - where basis signals are spread across the dynamic dimension.
apply_mrs

Apply a function across given dimensions of a MRS data object.
apply_axes

Apply a function over specified array axes.
coherence_filter

Zero all coherence orders other than the one supplied as an argument.
apply_pulse

Simulate an RF pulse on a single spin.
apply_pvc

Convert default LCM/TARQUIN concentration scaling to molal units with partial volume correction.
auto_phase

Perform zeroth-order phase correction based on the minimisation of the squared difference between the real and magnitude components of the spectrum.
calc_peak_info_vec

Calculate the FWHM of a peak from a vector of intensity values.
calc_ed_from_lambda

Calculate the effective dimensions of a spline smoother from lambda.
comb_coils

Combine coil data based on the first data point of a reference signal.
calc_coil_noise_cor

Calculate the noise correlation between coil elements.
calc_coil_noise_sd

Calculate the noise standard deviation for each coil element.
align

Align spectra to a reference frequency using a convolution based method.
collapse_to_dyns

Collapse MRS data by concatenating spectra along the dynamic dimension.
comb_fit_list_result_tables

Combine the fit result tables from a list of fit results.
def_nuc

Return the default nucleus.
append_coils

Append MRS data across the coil dimension, assumes they matched across the other dimensions.
bc_poly

Fit and subtract a polynomial to each spectrum in a dataset.
append_dyns

Append MRS data across the dynamic dimension, assumes they matched across the other dimensions.
bc_constant

Remove a constant baseline offset based on a reference spectral region.
calc_sd_poly

Perform a polynomial fit, subtract and return the standard deviation of the residuals.
comb_metab_ref

Combine a reference and metabolite mrs_data object.
comb_fit_list_fit_tables

Combine all fitting data points from a list of fits into a single data frame.
calc_spec_diff

Calculate the sum of squares differences between two mrs_data objects.
crop_spec

Crop mrs_data object based on a frequency range.
conv_mrs

Convolve two MRS data objects.
comb_fit_tables

Combine all fitting data points into a single data frame.
def_N

Return the default number of data points in the spectral dimension.
def_acq_paras

Return (and optionally modify using the input arguments) a list of the default acquisition parameters.
beta2lw

Covert a beta value in the time-domain to an equivalent linewidth in Hz: x * exp(-i * t * t * beta).
crop_td_pts

Crop mrs_data object data points in the time-domain.
def_ref

Return the default reference value for ppm scale.
elliptical_mask

Create an elliptical mask stored as a matrix of logical values.
ecc

Eddy current correction.
fd2td

Transform frequency-domain data to the time-domain.
est_noise_sd

Estimate the standard deviation of the noise from a segment of an mrs_data object.
bbase

Generate a spline basis, slightly adapted from : "Splines, knots, and penalties", Eilers 2010.
fit_t1_tr_array

Fit a T1 recovery curve, from multiple TRs, to a set of amplitudes.
bc_als

Baseline correction using the ALS method.
ft_dyns

Apply the Fourier transform over the dynamic dimension.
bin_spec

Bin equally spaced spectral regions.
check_tqn

Check the TARQUIN binary can be run
downsample_mrs_td

Downsample an MRS signal by a factor of 2 by removing every other data point in the time-domain. Note, signals outside the new sampling frequency will be aliased.
downsample_mrs_fd

Downsample an MRS signal by a factor of 2 using an FFT "brick-wall" filter.
circ_mask

Create a logical circular mask spanning the full extent of an n x n matrix.
fit_t2_te_array

Fit a T2 relaxation curve, from multiple TEs, to a set of amplitudes.
get_1h_brain_basis_paras_v1

Return a list of mol_parameter objects suitable for 1H brain MRS analyses.
crop_td_pts_end

Crop mrs_data object data points at the end of the FID.
calc_spec_snr

Calculate the spectral SNR.
ft_shift

Perform a fft and ffshift on a vector.
fp_scale

Scale the first time-domain data point in an mrs_data object.
get_1h_brain_basis_paras_v2

Return a list of mol_parameter objects suitable for 1H brain MRS analyses.
dicom_reader

A very simple DICOM reader.
gen_I

Generate the I product operator for a single spin.
crop_xy

Crop an MRSI dataset in the x-y direction
check_lcm

Check LCModel can be run
get_1h_brain_basis_paras

Return a list of mol_parameter objects suitable for 1H brain MRS analyses.
get_head_dyns

Return the first scans of a dynamic series.
crop_td_pts_pot

Crop mrs_data object data points in the time-domain rounding down to the next smallest power of two (pot). Data that already has a pot length will not be changed.
crossprod_3d

Compute the vector cross product between vectors x and y. Adapted from http://stackoverflow.com/questions/15162741/what-is-rs-crossproduct-function
def_fs

Return the default sampling frequency in Hz.
get_lcm_cmd

Print the command to run the LCModel command-line program.
get_mrsi_voxel

Generate a MRSI voxel from an mrs_data object.
diff_mrs

Apply the diff operator to an MRS dataset in the FID/spectral dimension.
get_acq_paras

Return acquisition parameters from a MRS data object.
get_basis_subset

Return a subset of the input basis.
get_td_amp

Return an array of amplitudes derived from fitting the initial points in the time domain and extrapolating back to t=0.
get_mrsi_voxel_xy_psf

Generate a MRSI voxel PSF from an mrs_data object.
decimate_mrs_fd

Decimate an MRS signal to half the original sampling frequency by filtering in the frequency domain before down sampling.
fit_diags

Calculate diagnostic information for object of class fit_result.
fs

Return the sampling frequency in Hz of an MRS dataset.
fit_mrs

Perform a fit based analysis of MRS data.
ft_shift_mat

Perform a fft and fftshift on a matrix with each column replaced by its shifted fft.
get_mol_names

Return a character array of names that may be used with the get_mol_paras function.
get_metab

Extract the metabolite component from an mrs_data object.
get_seg_ind

Get the indices of data points lying between two values (end > x > start).
get_sh_dyns

Return the second half of a dynamic series.
hsvd

HSVD of an mrs_data object.
hsvd_filt

HSVD based signal filter.
decimate_mrs_td

Decimate an MRS signal by filtering in the time domain before downsampling.
fit_res2csv

Write fit results table to a csv file.
get_1h_brain_basis_paras_v3

Return a list of mol_parameter objects suitable for 1H brain MRS analyses.
lb

Apply line-broadening (apodisation) to MRS data or basis object.
get_tqn_cmd

Print the command to run the TARQUIN command-line program.
ift_shift

Perform an iffshift and ifft on a vector.
ift_shift_mat

Perform an ifft and ifftshift on a matrix with each column replaced by its shifted ifft.
def_ft

Return the default transmitter frequency in Hz.
lofdc

Correct linear frequency drift.
mean_dyn_pairs

Calculate the pairwise means across a dynamic data set.
matexp

Matrix exponential function taken from complexplus package to reduce the number of spant dependencies.
gausswin_2d

Create a two dimensional Gaussian window function stored as a matrix.
get_fh_dyns

Return the first half of a dynamic series.
get_2d_psf

Get the point spread function (PSF) for a 2D phase encoded MRSI scan.
get_odd_dyns

Return odd numbered dynamic scans starting from 1 (1,3,5...).
get_ref

Extract the reference component from an mrs_data object.
get_slice

Return a single slice from a larger MRSI dataset.
get_fit_map

Get a data array from a fit result.
fit_t1_ti_array

Fit a T1 recovery curve, from multiple TIs, to a set of amplitudes.
get_subset

Extract a subset of MRS data.
get_voi_seg

Return the white matter, gray matter and CSF composition of a volume.
get_voi_seg_psf

Return the white matter, gray matter and CSF composition of a volume.
get_fp

Return the first time-domain data point.
inv_even_dyns

Invert even numbered dynamic scans starting from 1 (2,4,6...).
get_guassian_pulse

Generate a gaussian pulse shape.
inv_odd_dyns

Invert odd numbered dynamic scans starting from 1 (1,3,5...).
get_mol_paras

Get a mol_parameters object for a named molecule.
mean_dyns

Calculate the mean dynamic data.
max_mrs

Apply the max operator to an MRS dataset.
median_dyns

Calculate the median dynamic data.
ortho3_inter

Display an interactive orthographic projection plot of a nifti object.
get_mrs_affine

Generate an affine for nifti generation.
get_mrsi2d_seg

Calculate the partial volume estimates for each voxel in a 2D MRSI dataset.
peak_info

Search for the highest peak in a spectral region and return the frequency, height and FWHM.
get_even_dyns

Return even numbered dynamic scans starting from 1 (2,4,6...).
get_dyns

Extract a subset of dynamic scans.
plot_voi_overlay_seg

Plot a volume as an overlay on a segmented brain volume.
lw2alpha

Covert a linewidth in Hz to an equivalent alpha value in the time-domain ie: x * exp(-t * alpha).
mod_td

Apply the Modulus operator to the time-domain MRS signal.
get_mrsi_voi

Generate a MRSI VOI from an mrs_data object.
fd_conv_filt

Frequency-domain convolution based filter.
fit_amps

Extract the fit amplitudes from an object of class fit_result.
ppm

Return the ppm scale of an MRS dataset or fit result.
lw2beta

Covert a linewidth in Hz to an equivalent beta value in the time-domain ie: x * exp(-t * t * beta).
mean.mrs_data

Calculate the mean spectrum from an mrs_data object.
mvifftshift

Perform an ifftshift on a matrix, with each column replaced by its shifted result.
rats

Robust Alignment to a Target Spectrum (RATS).
mean_dyn_blocks

Calculate the mean of adjacent dynamic scans.
mrs_data2basis

Convert an mrs_data object to basis object - where basis signals are spread across the dynamic dimension in the MRS data.
fp_phase

Return the phase of the first data point in the time-domain.
mrs_data2mat

Convert mrs_data object to a matrix, with spectral points in the column dimension and dynamics in the row dimension.
re_weighting

Apply a weighting to the FID to enhance spectral resolution.
plot_slice_fit_inter

Plot a 2D slice from an MRSI fit result object.
reexports

Objects exported from other packages
get_voi_cog

Calculate the centre of gravity for an image containing 0 and 1's.
get_uncoupled_mol

Generate a mol_parameters object for a simple spin system with one resonance.
plot_slice_map

Plot a slice from a 7 dimensional array.
fp_phase_correct

Perform a zeroth order phase correction based on the phase of the first data point in the time-domain.
gridplot

Arrange spectral plots in a grid.
rep_array_dim

Repeat an array over a given dimension.
hz

Return the frequency scale of an MRS dataset in Hz.
hsvd_vec

HSVD of a complex vector.
gridplot.mrs_data

Arrange spectral plots in a grid.
image.mrs_data

Image plot method for objects of class mrs_data.
gen_F

Generate the F product operator.
mask_fit_res

Mask fit result spectra depending on a vector of bool values.
img2kspace_xy

Transform 2D MRSI data to k-space in the x-y direction.
gen_F_xy

Generate the Fxy product operator with a specified phase.
print.mrs_data

Print a summary of mrs_data parameters.
qn_states

Get the quantum coherence matrix for a spin system.
get_svs_voi

Generate a SVS acquisition volume from an mrs_data object.
get_tail_dyns

Return the last scans of a dynamic series.
get_voxel

Return a single voxel from a larger mrs dataset.
mask_xy

Mask an MRSI dataset in the x-y direction
recon_twix_2d_mrsi

Reconstruct 2D MRSI data from a twix file loaded with read_mrs.
grid_shift_xy

Grid shift MRSI data in the x/y dimension.
int_spec

Integrate a spectral region.
n2coord

Print fit coordinates from a single index.
plot_slice_map_inter

Plot an interactive slice map from a data array where voxels can be selected to display a corresponding spectrum.
plot_voi_overlay

Plot a volume as an image overlay.
read_basis

Read a basis file in LCModel .basis format.
is.def

Check if an object is defined, which is the same as being not NULL.
rectangular_mask

Create a rectangular mask stored as a matrix of logical values.
mean_mrs_list

Return the mean of a list of mrs_data objects.
mask_xy_corners

Mask the four corners of an MRSI dataset in the x-y plane.
mask_xy_ellipse

Mask the voxels outside an elliptical region spanning the MRSI dataset in the x-y plane.
resample_voi

Resample a VOI to match a target image space using nearest-neighbour interpolation.
scale_spec

Scale mrs_data to a spectral region.
reslice_to_mrs

Reslice a nifti object to match the orientation of mrs data.
rep_dyn

Replicate a scan in the dynamic dimension.
spin_sys

Create a spin system object for pulse sequence simulation.
rep_mrs

Replicate a scan over a given dimension.
sd

Calculate the standard deviation spectrum from an mrs_data object.
set_td_pts

Set the number of time-domain data points, truncating or zero-filling as appropriate.
seq_spin_echo_ideal

Spin echo sequence with ideal pulses.
make_basis_from_raw

Make a basis-set object from a directory containing LCModel formatted RAW files.
set_tqn_cmd

Set the command to run the TARQUIN command-line program.
sim_zero

Simulate an mrs_data object containing complex zero valued samples.
is_fd

Check if the chemical shift dimension of an MRS data object is in the frequency domain.
read_ima_coil_dir

Read a directory containing Siemens MRS IMA files and combine along the coil dimension. Note that the coil ID is inferred from the sorted file name and should be checked when consistency is required between two directories.
read_tqn_fit

Reader for csv fit results generated by TARQUIN.
sim_mol

Simulate a mol_parameter object.
mask_dyns

Mask an MRS dataset in the dynamic dimension.
mean_vec_blocks

Calculate the mean of adjacent blocks in a vector.
nifti_flip_lr

Flip the x data dimension order of a nifti image. This corresponds to flipping MRI data in the left-right direction, assuming the data in save in neurological format (can check with fslorient program).
max_mrs_interp

Apply the max operator to an interpolated MRS dataset.
sim_noise

Simulate an mrs_data object containing simulated Gaussian noise.
sim_resonances

Simulate a MRS data object containing a set of simulated resonances.
seq_spin_echo_ideal_31p

Spin echo sequence with ideal pulses.
sim_basis_tqn

Simulate a basis file using TARQUIN.
sim_brain_1h

Simulate MRS data with a similar appearance to normal brain (by default).
read_tqn_result

Reader for csv results generated by TARQUIN.
mean.list

Calculate the mean spectrum from an mrs_data object.
ortho3

Display an orthographic projection plot of a nifti object.
precomp

Save function results to file and load on subsequent calls to avoid repeat computation.
phase

Apply phasing parameters to MRS data.
pg_extrap_xy

Papoulis-Gerchberg (PG) algorithm method for k-space extrapolation.
smooth_dyns

Smooth data across the dynamic dimension with a Gaussian kernel.
zero_higher_orders

Zero all coherences including and above a given order.
spec_op

Perform a mathematical operation on a spectral region.
print.fit_result

Print a summary of an object of class fit_result.
sim_th_excit_profile

Simulate an ideal pulse excitation profile by smoothing a top-hat function with a Gaussian.
interleave_dyns

Interleave the first and second half of a dynamic series.
kspace2img_xy

Transform 2D MRSI data from k-space to image space in the x-y direction.
zero_td_pts_end

Set mrs_data object data points at the end of the FID to zero.
sd.mrs_data

Calculate the standard deviation spectrum from an mrs_data object.
scale_amp_molal

Apply water reference scaling to a fitting results object to yield metabolite quantities in millimolar (mM) units (mol / kg of tissue water).
read_lcm_coord

Read an LCModel formatted coord file containing fit information.
read_ima_dyn_dir

Read a directory containing Siemens MRS IMA files and combine along the dynamic dimension. Note that the coil ID is inferred from the sorted file name and should be checked when consistency is required.
l2_reg

Perform l2 regularisation artefact suppression.
plot_bc

Convenience function to plot a baseline estimate with the original data.
plot_slice_fit

Plot a 2D slice from an MRSI fit result object.
tdsr

Time-domain spectral registration.
read_pulse_pta

Read a .pta formatted text file compatible with Siemens PulseTool.
read_siemens_txt_hdr

Read the text format header found in Siemens IMA and TWIX data files.
scale_amp_molal_pvc

Apply water reference scaling to a fitting results object to yield metabolite quantities in millimolar (mM) units (mol / kg of tissue water).
mask_xy_mat

Mask a 2D MRSI dataset in the x-y dimension.
mat2mrs_data

Convert a matrix (with spectral points in the column dimension and dynamics in the row dimensions) into a mrs_data object.
scale_amp_molar

Apply water reference scaling to a fitting results object to yield metabolite quantities in millimolar (mM) units (mol / Litre of tissue).
scale_amp_ratio

Scale fitted amplitudes to a ratio of signal amplitude.
resample_basis

Resample a basis-set to match a mrs_data acquisition.
seconds

Return a time scale vector to match the FID of an MRS data object.
resample_img

Resample an image to match a target image space.
set_lw

Apply line-broadening to an mrs_data object to achieve a specified linewidth.
scale_amp_ratio_value

Scale fitted amplitudes to a ratio of signal amplitude.
mrs_data2vec

Convert mrs_data object to a vector.
seq_pulse_acquire_31p

Simple pulse and acquire sequence with ideal pulses.
set_lcm_cmd

Set the command to run the LCModel command-line program.
seq_slaser_ideal

sLASER sequence with ideal pulses.
sum_mrs

Sum two mrs_data objects.
mvfftshift

Perform a fftshift on a matrix, with each column replaced by its shifted result.
varpro_3_para_opts

Return a list of options for VARPRO based fitting with 3 free parameters.
spant_abfit_benchmark

Simulate and fit some spectra with ABfit for benchmarking purposes. Basic timing and performance metrics will be printed.
spant_mpress_drift

Example MEGA-PRESS data with significant B0 drift.
plot.fit_result

Plot the fitting results of an object of class fit_result.
plot.mrs_data

Plotting method for objects of class mrs_data.
seq_cpmg_ideal

CPMG style sequence with ideal pulses.
scale_amp_water_ratio

Scale metabolite amplitudes as a ratio to the unsuppressed water amplitude.
sum_coils

Calculate the sum across receiver coil elements.
sum_mrs_list

Return the sum of a list of mrs_data objects.
seq_press_ideal

PRESS sequence with ideal pulses.
read_mrs

Read MRS data from a file.
seq_mega_press_ideal

MEGA-PRESS sequence with ideal localisation pulses and Gaussian shaped editing pulse.
set_precomp_verbose

Set the verbosity of the precompute function.
recon_imag

Reconstruct complex time-domain data from the real part of frequency-domain data.
read_mrs_tqn

Read MRS data using the TARQUIN software package.
recon_imag_vec

Reconstruct complex time-domain data from the real part of frequency-domain data.
zf

Zero-fill MRS data in the time domain.
zf_xy

Zero-fill MRSI data in the k-space x-y direction.
sum_dyns

Calculate the sum of data dynamics.
seq_steam_ideal_young

STEAM sequence with ideal pulses using the z-rotation gradient simulation method described by Young et al JMR 140, 146-152 (1999).
reson_table2mrs_data

Generate mrs_data from a table of single Lorentzian resonances.
seq_pulse_acquire

Simple pulse and acquire sequence with ideal pulses.
set_def_acq_paras

Set the default acquisition parameters.
rm_dyns

Remove a subset of dynamic scans.
scale_mrs_amp

Scale an mrs_data object by a scalar or vector or amplitudes.
scale_basis_from_singlet

Scale a basis-set to be consistent with spant assumptions for water scaling.
sim_basis

Simulate a basis set object.
shift_basis

Apply frequency shifts to basis set signals.
set_ref

Set the ppm reference value (eg ppm value at 0Hz).
shift

Apply a frequency shift to MRS data.
zero_fade_spec

Fade a spectrum to zero by frequency domain multiplication with a tanh function. Note this operation distorts data points at the end of the FID.
sim_basis_1h_brain

Simulate a basis-set suitable for 1H brain MRS analysis acquired with a PRESS sequence. Note, ideal pulses are assumed.
stackplot

Produce a plot with multiple traces.
stackplot.fit_result

Plot the fitting results of an object of class fit_result with individual basis set components shown.
write_mrs_nifti

Write MRS data object to file in NIFTI format.
seq_steam_ideal

STEAM sequence with ideal pulses.
svs_1h_brain_analysis

Standard SVS 1H brain analysis pipeline.
svs_1h_brain_batch_analysis

Batch interface to the standard SVS 1H brain analysis pipeline.
set_mask_xy_mat

Set the masked voxels in a 2D MRSI dataset to given spectrum.
seq_steam_ideal_cof

STEAM sequence with ideal pulses and coherence order filtering to simulate gradient crushers.
spec_decomp

Decompose an mrs_data object into white and gray matter spectra.
spant_simulation_benchmark

Simulate a typical metabolite basis set for benchmarking. Timing metrics will be printed on completion.
set_precomp_mode

Set the precompute mode.
sim_basis_1h_brain_press

Simulate a basis-set suitable for 1H brain MRS analysis acquired with a PRESS sequence. Note, ideal pulses are assumed.
sim_basis_mm_lip_lcm

Simulate a macromolecular and lipid basis-set suitable for 1H brain MRS analysis.
stackplot.mrs_data

Stackplot plotting method for objects of class mrs_data.
spm_pve2categorical

Convert SPM style segmentation files to a single categorical image where the numerical values map as: 0) Other, 1) CSF, 2) GM and 3) WM.
sub_mean_dyns

Subtract the mean dynamic spectrum from a dynamic series.
td2fd

Transform time-domain data to the frequency-domain.
write_mrs

Write MRS data object to file.
td_conv_filt

Time-domain convolution based filter.
write_basis_tqn

Generate a basis file using TARQUIN.
sort_basis

Sort the basis-set elements alphabetically.
spant-package

spant: spectroscopy analysis tools.
ssp

Signal space projection method for lipid suppression.
varpro_opts

Return a list of options for VARPRO based fitting.
varpro_basic_opts

Return a list of options for a basic VARPRO analysis.
vec2mrs_data

Convert a vector into a mrs_data object.
write_basis

Write a basis object to an LCModel .basis formatted file.