Evaluation of the ESTATICS model (Weisskopf (2013) using nonlinear least squares regression and a quasi-likelihood approach assuming a noncentral chi- or a Rician distribuion for the data. The latter should be preferred in case of low SNR (high resolution) data to avoid biased parameter estimates. Quasi-likelihood estimation requires a specification of the scale parameter sigma of the data distribution.

estimateESTATICS(mpmdata, TEScale = 100, dataScale = 1000, method = c("NLR", "QL"),
                 sigma = NULL, L = 1, maxR2star = 50,
                 varest = c("RSS", "data"), verbose = TRUE)

Arguments

mpmdata

Object of class MPMData as created by readMPMData.

TEScale

scale factor for TE (used for improved numerical stability)

dataScale

scale factor for image intensities (used for improved numerical stability)

method

either "NLR" or "QL". Specifies non-linear regression or quasi-likelihood.

sigma

scale parameter sigma of signal distribution (either a scalar or a 3D array). (only needed in case of method="QL".)

L

effective number of receiver coils (2*L is degrees of freedom of the signal distribution). L=1 for Rician distribution. (only needed in case of method="QL".)

maxR2star

maximum value allowed for the R2star parameter in the ESTATICS model.

varest

For parameter covariance estimation use either residual sum of squares (RSS) or estimate variances for T1, MT (is available) and PD from higest intensity images using function awsLocalSigmafrom package aws.

verbose

logical: Monitor process.

Value

list with components

modelCoeff

Estimated parameter maps

invCov

map of inverse covariance matrices

rsigma

map of residual standard deviations

isConv

convergence indicator map

isThresh

logical map indicating where R2star==maxR2star.

sdim

image dimension

nFiles

number of images

t1Files

vector of T1 filenames

pdFiles

vector of PD filenames

mtFiles

vector of MT filenames

model

model used (depends on specification of MT files)

maskFile

filename of brain mask

mask

brain mask

sigma

sigma

L

L

TR

TR values

TE

TE values

FA

Flip angles (FA)

TEScale

TEScale

dataScale

dataScale

and class-attribute 'ESTATICSModel'

References

Weiskopf, N.; Suckling, J.; Williams, G.; Correia, M. M.; Inkster, B.; Tait, R.; Ooi, C.; Bullmore, E. T. & Lutti, A. Quantitative multi-parameter mapping of R1, PD(*), MT, and R2(*) at 3T: a multi-center validation. Front Neurosci, Wellcome Trust Centre for Neuroimaging, UCL Institute of Neurology, University College London, UK., 2013, 7, 95

J. Polzehl, K. Tabelow (2019). Magnetic Resonance Brain Imaging: Modeling and Data Analysis Using R. Springer, Use R! series. Doi:10.1007/978-3-030-29184-6.

Author

Karsten Tabelow tabelow@wias-berlin.de
J\"org Polzehl polzehl@wias-berlin.de

See also

Examples

# \donttest{
dataDir <- system.file("extdata",package="qMRI")
#
#  set file names for T1w, MTw and PDw images
#
t1Names <- paste0("t1w_",1:8,".nii.gz")
mtNames <- paste0("mtw_",1:6,".nii.gz")
pdNames <- paste0("pdw_",1:8,".nii.gz")
t1Files <- file.path(dataDir, t1Names)
mtFiles <- file.path(dataDir, mtNames)
pdFiles <- file.path(dataDir, pdNames)
#
#  file names of mask and B1 field map
#
B1File <- file.path(dataDir, "B1map.nii.gz")
maskFile <- file.path(dataDir, "mask0.nii.gz")
#
#  Acquisition parameters (TE, TR, Flip Angle) for T1w, MTw and PDw images
#
TE <- c(2.3, 4.6, 6.9, 9.2, 11.5, 13.8, 16.1, 18.4,
        2.3, 4.6, 6.9, 9.2, 11.5, 13.8,
        2.3, 4.6, 6.9, 9.2, 11.5, 13.8, 16.1, 18.4)
TR <- rep(25, 22)
FA <- c(rep(21, 8), rep(6, 6), rep(6, 8))
#
#   read MPM example data
#
library(qMRI)
mpm <- readMPMData(t1Files, pdFiles, mtFiles,
                   maskFile, TR = TR, TE = TE,
                   FA = FA, verbose = FALSE)
#
#  Estimate Parameters in the ESTATICS model
#
modelMPM <- estimateESTATICS(mpm, method = "NLR")
#> Design of the model:
#>       [,1] [,2] [,3]  [,4]
#>  [1,]    1    0    0 0.023
#>  [2,]    1    0    0 0.046
#>  [3,]    1    0    0 0.069
#>  [4,]    1    0    0 0.092
#>  [5,]    1    0    0 0.115
#>  [6,]    1    0    0 0.138
#>  [7,]    1    0    0 0.161
#>  [8,]    1    0    0 0.184
#>  [9,]    0    1    0 0.023
#> [10,]    0    1    0 0.046
#> [11,]    0    1    0 0.069
#> [12,]    0    1    0 0.092
#> [13,]    0    1    0 0.115
#> [14,]    0    1    0 0.138
#> [15,]    0    0    1 0.023
#> [16,]    0    0    1 0.046
#> [17,]    0    0    1 0.069
#> [18,]    0    0    1 0.092
#> [19,]    0    0    1 0.115
#> [20,]    0    0    1 0.138
#> [21,]    0    0    1 0.161
#> [22,]    0    0    1 0.184
#>  done
#> Start estimation in 1600 voxel at 2021-05-17 15:22:15 
#> 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |============================================                          |  62%
#> Finished estimation 2021-05-17 15:22:18 
# Alternatively using Quasi-Likelihood
sigma <- 50
modelMPMQL <- estimateESTATICS(mpm, method = "QL",
                  sigma = array(sigma,mpm$sdim), L = 1)
#> Design of the model:
#>       [,1] [,2] [,3]  [,4]
#>  [1,]    1    0    0 0.023
#>  [2,]    1    0    0 0.046
#>  [3,]    1    0    0 0.069
#>  [4,]    1    0    0 0.092
#>  [5,]    1    0    0 0.115
#>  [6,]    1    0    0 0.138
#>  [7,]    1    0    0 0.161
#>  [8,]    1    0    0 0.184
#>  [9,]    0    1    0 0.023
#> [10,]    0    1    0 0.046
#> [11,]    0    1    0 0.069
#> [12,]    0    1    0 0.092
#> [13,]    0    1    0 0.115
#> [14,]    0    1    0 0.138
#> [15,]    0    0    1 0.023
#> [16,]    0    0    1 0.046
#> [17,]    0    0    1 0.069
#> [18,]    0    0    1 0.092
#> [19,]    0    0    1 0.115
#> [20,]    0    0    1 0.138
#> [21,]    0    0    1 0.161
#> [22,]    0    0    1 0.184
#>  done
#> Start estimation in 1600 voxel at 2021-05-17 15:22:18 
#> 
  |                                                                            
  |                                                                      |   0%
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Warning: step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> 
  |                                                                            
  |============================================                          |  62%
#> Finished estimation 2021-05-17 15:22:21 
# }