diff --git a/DESCRIPTION b/DESCRIPTION index 5760c046..057a7e11 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: spant Type: Package Title: MR Spectroscopy Analysis Tools -Version: 2.17.9000 -Date: 2023-10-23 +Version: 2.17.0 +Date: 2023-11-27 Authors@R: c( person("Martin", "Wilson", email = "martin@pipegrep.co.uk", role = c("cre", "aut"), comment = c(ORCID = "0000-0002-2089-3956")), diff --git a/NEWS.md b/NEWS.md index de930d5a..9c8c8873 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,7 @@ # spant 2.17.0 * Simulation duration output is now rounded to 2dp. * sim_basis now accepts a character vector of molecular names. +* Added get_1h_brain_basis_names function. # spant 2.16.0 * Added subset option to mean_dyns function. diff --git a/R/qm_simulation.R b/R/qm_simulation.R index 3aee14f0..52208800 100644 --- a/R/qm_simulation.R +++ b/R/qm_simulation.R @@ -506,20 +506,20 @@ get_1h_braino_basis_names <- function() { #' Note, this is a basic set and it may be appropriate to also include Asc, #' Gly and PEth for high quality MRS data. #' -#' @param extra optional character vector of additional molecular names. Eg +#' @param add optional character vector of additional molecular names. Eg #' c("asc", "gly", "peth"). #' @param remove optional character vector of molecular names to remove from the #' set. Eg c("m_cr_ch2"). #' @param inc_lip_mm include Lipid and MM basis signals. #' @return a character vector of molecule names. #' @export -get_1h_brain_basis_names <- function(extra = NULL, remove = NULL, +get_1h_brain_basis_names <- function(add = NULL, remove = NULL, inc_lip_mm = TRUE) { names <- c("m_cr_ch2", "ala", "asp", "cr", "gaba", "glc", "gln", "gsh", "glu", "gpc", "ins", "lac", "naa", "naag", "pch", "pcr", "sins", "tau") - if (!is.null(extra)) names <- sort(c(names, extra)) + if (!is.null(add)) names <- sort(c(names, add)) if (inc_lip_mm) { names <- c(names, "lip09", "lip13a", "lip13b", "lip20", "mm09", "mm12", diff --git a/docs/404.html b/docs/404.html index c7fe7293..7e8da7f9 100644 --- a/docs/404.html +++ b/docs/404.html @@ -39,7 +39,7 @@
diff --git a/docs/CONTRIBUTING.html b/docs/CONTRIBUTING.html index 2cd128a8..d9e52591 100644 --- a/docs/CONTRIBUTING.html +++ b/docs/CONTRIBUTING.html @@ -17,7 +17,7 @@ diff --git a/docs/LICENSE-text.html b/docs/LICENSE-text.html index 05b6c61d..c7ccb6bc 100644 --- a/docs/LICENSE-text.html +++ b/docs/LICENSE-text.html @@ -17,7 +17,7 @@ diff --git a/docs/articles/abfit-baseline-opts.html b/docs/articles/abfit-baseline-opts.html index 51683f3d..e886e8d6 100644 --- a/docs/articles/abfit-baseline-opts.html +++ b/docs/articles/abfit-baseline-opts.html @@ -40,7 +40,7 @@ diff --git a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_aic-1.png b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_aic-1.png index 020694f7..65a9b03f 100644 Binary files a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_aic-1.png and b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_aic-1.png differ diff --git a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_bspline-1.png b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_bspline-1.png index 72ec06bf..859b59a1 100644 Binary files a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_bspline-1.png and b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_bspline-1.png differ diff --git a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_bspline_more-1.png b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_bspline_more-1.png index 334f3af5..d0f1d32d 100644 Binary files a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_bspline_more-1.png and b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_bspline_more-1.png differ diff --git a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_default-1.png b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_default-1.png index d144b029..2b541c90 100644 Binary files a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_default-1.png and b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_default-1.png differ diff --git a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_flex-1.png b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_flex-1.png index 3b923e95..34d6d677 100644 Binary files a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_flex-1.png and b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_flex-1.png differ diff --git a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_stiff-1.png b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_stiff-1.png index ff884c35..d3727620 100644 Binary files a/docs/articles/abfit-baseline-opts_files/figure-html/abfit_stiff-1.png and b/docs/articles/abfit-baseline-opts_files/figure-html/abfit_stiff-1.png differ diff --git a/docs/articles/index.html b/docs/articles/index.html index 6a82a60b..28344296 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -17,7 +17,7 @@ diff --git a/docs/articles/spant-basis-simulation.html b/docs/articles/spant-basis-simulation.html index 91e0865b..aeaa3f02 100644 --- a/docs/articles/spant-basis-simulation.html +++ b/docs/articles/spant-basis-simulation.html @@ -40,7 +40,7 @@ diff --git a/docs/articles/spant-intro.html b/docs/articles/spant-intro.html index 6c8f62a0..2bd0b819 100644 --- a/docs/articles/spant-intro.html +++ b/docs/articles/spant-intro.html @@ -40,7 +40,7 @@ @@ -194,62 +194,60 @@
fit_res$res_tab
-#> X Y Z Dynamic Coil X.CrCH2 Ala Asp Cr GABA
-#> 1 1 1 1 1 1 0 8.282683e-06 3.536328e-05 4.051518e-05 1.69569e-05
-#> Glc Gln GSH Glu GPC Ins
-#> 1 2.923544e-06 3.307971e-06 2.232385e-05 6.530254e-05 1.610997e-05 5.954705e-05
+#> X Y Z Dynamic Coil X.CrCH2 Ala Asp Cr GABA
+#> 1 1 1 1 1 1 0 8.22895e-06 3.548331e-05 4.02031e-05 1.706756e-05
+#> Glc Gln GSH Glu GPC Ins
+#> 1 2.442204e-06 3.029796e-06 2.227788e-05 6.499653e-05 1.60329e-05 5.902972e-05
#> Lac Lip09 Lip13a Lip13b Lip20 MM09 MM12
-#> 1 5.75405e-06 2.365938e-05 2.725383e-06 0 0 9.856811e-06 6.539043e-06
-#> MM14 MM17 MM20 NAA NAAG PCh
-#> 1 2.601885e-05 2.253372e-05 9.249603e-05 5.984007e-05 1.533315e-05 0
-#> PCr sIns Tau tNAA tCr tCho
-#> 1 2.076041e-05 6.578295e-06 0 7.517322e-05 6.127558e-05 1.610997e-05
-#> Glx tLM09 tLM13 tLM20 X.CrCH2.sd Ala.sd
-#> 1 6.861051e-05 3.35162e-05 3.528328e-05 9.249603e-05 2.386273e-06 4.352719e-06
-#> Asp.sd Cr.sd GABA.sd Glc.sd Gln.sd GSH.sd
-#> 1 9.250881e-06 3.711212e-06 4.552666e-06 4.441281e-06 5.09079e-06 2.024702e-06
-#> Glu.sd GPC.sd Ins.sd Lac.sd Lip09.sd Lip13a.sd
-#> 1 5.090244e-06 2.562912e-06 2.10465e-06 5.311585e-06 4.125766e-06 1.329999e-05
-#> Lip13b.sd Lip20.sd MM09.sd MM12.sd MM14.sd MM17.sd
-#> 1 6.483611e-06 7.522036e-06 3.83357e-06 4.60222e-06 7.23746e-06 3.817216e-06
-#> MM20.sd NAA.sd NAAG.sd PCh.sd PCr.sd sIns.sd
-#> 1 8.608667e-06 1.015224e-06 1.201871e-06 2.196945e-06 3.101179e-06 7.250236e-07
-#> Tau.sd tNAA.sd tCr.sd tCho.sd Glx.sd tLM09.sd
-#> 1 3.781837e-06 7.017798e-07 5.89541e-07 2.11765e-07 3.173939e-06 1.008401e-06
-#> tLM13.sd tLM20.sd phase lw shift asym
-#> 1 1.57506e-06 3.021225e-06 10.99464 5.028305 -0.003608806 0.1754811
-#> res.deviance res.niter res.info
-#> 1 7.331634e-05 28 2
-#> res.message bl_ed_pppm
-#> 1 Relative error between `par' and the solution is at most `ptol'. 2.364083
-#> max_bl_flex_used full_res fit_pts ppm_range SNR SRR FQN
-#> 1 FALSE 7.763333e-05 497 3.8 62.77982 51.30852 1.497136
-#> tNAA_lw tCr_lw tCho_lw auto_bl_crit_7 auto_bl_crit_5.901
-#> 1 0.04557527 0.05197066 0.05450109 -8.904265 -8.948438
+#> 1 5.81872e-06 2.362969e-05 2.635534e-06 0 0 9.887589e-06 6.546986e-06
+#> MM14 MM17 MM20 NAA NAAG PCh
+#> 1 2.599939e-05 2.24551e-05 9.207425e-05 5.981785e-05 1.556186e-05 0
+#> PCr sIns Tau tNAA tCr tCho Glx
+#> 1 2.10129e-05 6.508656e-06 0 7.53797e-05 6.1216e-05 1.60329e-05 6.802632e-05
+#> tLM09 tLM13 tLM20 X.CrCH2.sd Ala.sd Asp.sd
+#> 1 3.351728e-05 3.518191e-05 9.207425e-05 2.383752e-06 4.353308e-06 9.243631e-06
+#> Cr.sd GABA.sd Glc.sd Gln.sd GSH.sd Glu.sd
+#> 1 3.715168e-06 4.580094e-06 4.427049e-06 5.089146e-06 2.022837e-06 5.086891e-06
+#> GPC.sd Ins.sd Lac.sd Lip09.sd Lip13a.sd Lip13b.sd
+#> 1 2.525935e-06 2.091042e-06 5.311857e-06 4.118788e-06 1.328563e-05 6.477228e-06
+#> Lip20.sd MM09.sd MM12.sd MM14.sd MM17.sd MM20.sd
+#> 1 7.510919e-06 3.827223e-06 4.597885e-06 7.234432e-06 3.81027e-06 8.602468e-06
+#> NAA.sd NAAG.sd PCh.sd PCr.sd sIns.sd Tau.sd
+#> 1 1.015226e-06 1.215671e-06 2.174694e-06 3.10803e-06 7.233859e-07 3.777987e-06
+#> tNAA.sd tCr.sd tCho.sd Glx.sd tLM09.sd tLM13.sd
+#> 1 7.031061e-07 5.881707e-07 2.113501e-07 3.165047e-06 1.006533e-06 1.572004e-06
+#> tLM20.sd phase lw shift asym res.deviance res.niter
+#> 1 3.01819e-06 11.15083 5.038936 -0.003427611 0.1764494 7.300326e-05 28
+#> res.info res.message
+#> 1 2 Relative error between `par' and the solution is at most `ptol'.
+#> bl_ed_pppm max_bl_flex_used full_res fit_pts ppm_range SNR SRR
+#> 1 2.364083 FALSE 7.745307e-05 497 3.8 62.79192 51.44065
+#> FQN tNAA_lw tCr_lw tCho_lw auto_bl_crit_7 auto_bl_crit_5.901
+#> 1 1.490028 0.0456527 0.05199591 0.05438811 -8.904402 -8.947808
#> auto_bl_crit_4.942 auto_bl_crit_4.12 auto_bl_crit_3.425 auto_bl_crit_2.844
-#> 1 -8.981514 -9.003005 -9.014519 -9.019649
+#> 1 -8.980941 -9.003463 -9.016574 -9.023968
#> auto_bl_crit_2.364 auto_bl_crit_1.969 auto_bl_crit_1.647 auto_bl_crit_1.384
-#> 1 -9.021423 -9.019548 -9.006584 -8.959218
+#> 1 -9.027876 -9.027565 -9.014311 -8.963288
#> auto_bl_crit_1.17 auto_bl_crit_0.997 auto_bl_crit_0.856 auto_bl_crit_0.743
-#> 1 -8.852424 -8.707634 -8.586249 -8.513339
+#> 1 -8.84875 -8.694789 -8.565998 -8.488423
#> auto_bl_crit_0.654 auto_bl_crit_0.593 auto_bl_crit_0.558 auto_bl_crit_0.54
-#> 1 -8.477466 -8.46179 -8.455281 -8.452588
+#> 1 -8.449882 -8.432822 -8.425656 -8.422669
#> auto_bl_crit_0.532 auto_bl_crit_0.529
-#> 1 -8.451462 -8.450986
Note that signal names appended with “.sd” are the CRLB estimates for the uncertainty (standard deviation) in the metabolite quantity estimate. e.g. to calculate the percentage s.d. for tNAA:
fit_res$res_tab$tNAA.sd / fit_res$res_tab$tNAA * 100
-#> [1] 0.9335504
Spectral SNR:
fit_res$res_tab$SNR
-#> [1] 62.77982
Linewidth of the tNAA resonance in PPM:
fit_res$res_tab$tNAA_lw
-#> [1] 0.04557527
An alternative method scales the metabolite values into molar (mM) units (mol / Litre of tissue) based on assumptions outlined in the LCModel manual and references therein (section 10.2). This approach may @@ -326,7 +324,7 @@
fit_res_molar <- scale_amp_molar(fit_res, mrs_data_wref)
fit_res_molar$res_tab$tNAA
-#> [1] 6.798914
Note, while “absolute” units are attractive, a large number of assumptions about metabolite and water relaxation rates are necessary to arrive at these mM estimates. If you’re not confident at being able to diff --git a/docs/articles/spant-intro_files/figure-html/unnamed-chunk-10-1.png b/docs/articles/spant-intro_files/figure-html/unnamed-chunk-10-1.png index 64faf115..19eb7c62 100644 Binary files a/docs/articles/spant-intro_files/figure-html/unnamed-chunk-10-1.png and b/docs/articles/spant-intro_files/figure-html/unnamed-chunk-10-1.png differ diff --git a/docs/articles/spant-intro_files/figure-html/unnamed-chunk-7-1.png b/docs/articles/spant-intro_files/figure-html/unnamed-chunk-7-1.png index 062d8d13..de9e68c3 100644 Binary files a/docs/articles/spant-intro_files/figure-html/unnamed-chunk-7-1.png and b/docs/articles/spant-intro_files/figure-html/unnamed-chunk-7-1.png differ diff --git a/docs/articles/spant-intro_files/figure-html/unnamed-chunk-8-1.png b/docs/articles/spant-intro_files/figure-html/unnamed-chunk-8-1.png index cceccee8..11e79ce5 100644 Binary files a/docs/articles/spant-intro_files/figure-html/unnamed-chunk-8-1.png and b/docs/articles/spant-intro_files/figure-html/unnamed-chunk-8-1.png differ diff --git a/docs/articles/spant-metabolite-simulation.html b/docs/articles/spant-metabolite-simulation.html index 6e5f0ed3..bee38e7d 100644 --- a/docs/articles/spant-metabolite-simulation.html +++ b/docs/articles/spant-metabolite-simulation.html @@ -40,7 +40,7 @@
@@ -119,17 +119,17 @@
get_mol_names()
-#> [1] "2hg" "a_glc" "ace" "ala" "asc" "asp"
-#> [7] "atp_31p" "b_glc" "bhb" "cho" "cit" "cr_ch2"
-#> [13] "cr_ch3" "cr" "gaba_jn" "gaba" "gaba_rt" "glc"
-#> [19] "gln" "glu" "glu_rt" "gly" "glyc" "gpc_31p"
-#> [25] "gpc" "gpe_31p" "gsh" "h2o" "ins" "ins_rt"
-#> [31] "lac" "lac_rt" "lip09" "lip13a" "lip13b" "lip20"
-#> [37] "m_cr_ch2" "mm_3t" "mm09" "mm12" "mm14" "mm17"
-#> [43] "mm20" "msm" "naa" "naa_rt" "naa2" "naag_ch3"
-#> [49] "naag" "nadh_31p" "nadp_31p" "pch_31p" "pch" "pcr_31p"
-#> [55] "pcr" "pe_31p" "peth" "pi_31p" "pyr" "ser"
-#> [61] "sins" "suc" "tau" "thr"
+#> [1] "2hg" "a_glc" "ace" "ala" "asc" "asp"
+#> [7] "atp_31p" "b_glc" "bhb" "cho" "cho_rt" "cit"
+#> [13] "cr_ch2_rt" "cr_ch3_rt" "cr" "gaba_jn" "gaba" "gaba_rt"
+#> [19] "glc" "gln" "glu" "glu_rt" "gly" "glyc"
+#> [25] "gpc_31p" "gpc" "gpe_31p" "gsh" "h2o" "ins"
+#> [31] "ins_rt" "lac" "lac_rt" "lip09" "lip13a" "lip13b"
+#> [37] "lip20" "m_cr_ch2" "mm_3t" "mm09" "mm12" "mm14"
+#> [43] "mm17" "mm20" "msm" "naa" "naa_rt" "naa2"
+#> [49] "naag_ch3" "naag" "nadh_31p" "nadp_31p" "pch_31p" "pch"
+#> [55] "pcr_31p" "pcr" "pe_31p" "peth" "pi_31p" "pyr"
+#> [61] "ser" "sins" "suc" "tau" "thr"
Get and print the spin system for myo-inositol:
ins <- get_mol_paras("ins")
diff --git a/docs/articles/spant-preprocessing.html b/docs/articles/spant-preprocessing.html
index 75e9cc38..c3c48039 100644
--- a/docs/articles/spant-preprocessing.html
+++ b/docs/articles/spant-preprocessing.html
@@ -40,7 +40,7 @@
R/qm_simulation.R
+ get_1h_brain_basis_names.Rd
Note, this is a basic set and it may be appropriate to also include Asc, +Gly and PEth for high quality MRS data.
+get_1h_brain_basis_names(add = NULL, remove = NULL, inc_lip_mm = TRUE)
optional character vector of additional molecular names. Eg +c("asc", "gly", "peth").
optional character vector of molecular names to remove from the +set. Eg c("m_cr_ch2").
include Lipid and MM basis signals.
a character vector of molecule names.
+R/qm_simulation.R
+ get_1h_braino_basis_names.Rd
Return a character vector of molecules included in the GE BRAINO phantom.
+get_1h_braino_basis_names()
a character vector of molecule names.
+R/qm_simulation.R
+ get_1h_spectre_basis_names.Rd
Return a character vector of molecules included in the Gold Star Phantoms +SPECTRE phantom.
+get_1h_spectre_basis_names()
a character vector of molecule names.
+Return the spin number for a given nucleus.
+get_spin_num(nucleus)
nucleus name, eg "1H".
spin number.
+gen_I()
Generate the I product operator for a single spin.
Return a character vector of common 1H molecules found in healthy human +brain.
Return a list of mol_parameter
objects suitable for 1H brain MRS
analyses.
Return a character vector of molecules included in the GE BRAINO phantom.
Return a character vector of molecules included in the Gold Star Phantoms +SPECTRE phantom.
get_slice()
Return a single slice from a larger MRSI dataset.
Return the spin number for a given nucleus.
read_mrs_tqn()
Read MRS data using the TARQUIN software package.
Read an ASCII formatted pulse file.
MEGA-PRESS sequence with ideal localisation pulses and Gaussian shaped editing pulse.
PRESS sequence with shaped refocusing pulses.
sub_mean_dyns()
Subtract the mean dynamic spectrum from a dynamic series.
Subtract the median dynamic spectrum from a dynamic series.
svs_1h_brain_analysis()
Standard SVS 1H brain analysis pipeline.
Standard SVS 1H brain analysis pipeline.
tdsr()
Time-domain spectral registration.
Return the echo time of an MRS dataset.
write_mrs_nifti()
Write MRS data object to file in NIFTI format.
Write an ASCII formatted pulse file.
Read an ASCII formatted pulse file.
+read_pulse_ascii(fname, deg2rad = TRUE)
ASCII formatted pulse file path.
convert phase values stored in degrees to radians.
pulse waveform and header.
+R/pulse_sequences.R
+ seq_press_2d_shaped.Rd
PRESS sequence with shaped refocusing pulses.
+seq_press_2d_shaped(
+ spin_params,
+ ft,
+ ref,
+ TE1 = 0.01,
+ TE2 = 0.02,
+ pulse_file,
+ pulse_dur,
+ pulse_file_format,
+ refoc_flip_angle = 180,
+ xy_pulse_ppm = NULL,
+ resamp = TRUE,
+ fs_resamp = 1e-04
+)
spin system definition.
transmitter frequency in Hz.
reference value for ppm scale.
TE1 sequence parameter in seconds (TE=TE1+TE2).
TE2 sequence parameter in seconds.
path to refocusing pulse file.
refocusing pulse duration.
file format for the refocusing pulse.
refocusing pulse flip angle in degrees (defaults to +180).
a vector of ppm values for the offset of each +sub-simulation.
option to resample the pulse shape.
sampling frequency (Hz) to resample.
list of resonance amplitudes and frequencies.
+list of mol_parameter
objects.
list of mol_parameter
objects. Alternatively, a
+character vector matching molecules may also be provided. Use the
+get_mol_names function for a full list of molecules.
spin_sys(spin_params, ft, ref)
spin_sys(spin_params, ft, ref, precomp_jc_H = NULL, precomp_Iz = NULL)
reference value for ppm scale.
use a precomputed J-coupling H matrix to save time.
use precomputed Iz matrices to save time.
R/mrs_data_proc.R
+ sub_median_dyns.Rd
Subtract the median dynamic spectrum from a dynamic series.
+sub_median_dyns(mrs_data, scale = 1)
dynamic MRS data.
scale factor for the medium spectrum.
subtracted data.
+R/svs_batch_fit.R
+ svs_1h_brain_analysis_dev.Rd
Standard SVS 1H brain analysis pipeline.
+svs_1h_brain_analysis_dev(
+ metab,
+ w_ref = NULL,
+ output_dir = NULL,
+ p_vols = NULL,
+ append_basis = NULL,
+ remove_basis = NULL,
+ basis = NULL,
+ dfp_corr = TRUE,
+ omit_bad_dynamics = TRUE,
+ te = NULL,
+ tr = NULL,
+ output_ratio = "tCr",
+ ecc = FALSE,
+ fit_opts = NULL,
+ verbose = FALSE
+)
filepath or mrs_data object containing MRS metabolite data.
filepath or mrs_data object containing MRS water reference data.
directory path to output fitting results.
a numeric vector of partial volumes expressed as percentages. +Defaults to 100% white matter. A voxel containing 100% gray matter tissue +would use : p_vols = c(WM = 0, GM = 100, CSF = 0).
names of extra signals to add to the default basis. Eg +append_basis = c("peth", "cit"). Cannot be used with precompiled basis sets.
names of signals to remove from the basis. Cannot be used +with precompiled basis sets.
basis set object to use for analysis.
perform dynamic frequency and phase correction using the RATS +method.
detect and remove bad dynamics.
metabolite mrs data echo time in seconds. If not supplied this will +be guessed from the metab data file.
metabolite mrs data repetition time in seconds. If not supplied +this will be guessed from the metab data file.
optional string to specify a metabolite ratio to output. +Defaults to "tCr" and multiple metabolites may be specified for multiple +outputs. Set to NULL to omit.
option to perform water reference based eddy current correction, +defaults to FALSE.
options to pass to the fitting method.
output potentially useful information.
Return the echo time of an MRS dataset.
+te(mrs_data)
MRS data.
echo time in seconds.
+Write an ASCII formatted pulse file.
+write_pulse_ascii(pulse, path)
pulse data object.
file path for export.