smoothESTATICS function

Adaptive smoothing of ESTATICS parameters and MPM data

Adaptive smoothing of ESTATICS parameters and MPM data

Performs adaptive smoothing of parameter maps in the ESTATICS model and if mpmData is specified these data. Implements both vectorized variants of the Adaptive Weights Smoothing (AWS, Polzehl and Spokoiny (2006)) and patchwise AWS (PAWS, Polzehl et al (2018)) algorithms with weighting schemes determined by the estimated parameter maps and their covariances.

smoothESTATICS(mpmESTATICSModel, mpmData = NULL, kstar = 16, alpha = 0.025, patchsize = 0, mscbw =5, wghts = NULL, verbose = TRUE)

Arguments

  • mpmESTATICSModel: Object of class 'ESTATICSModel' as returned from function estimateESTATICS.
  • mpmData: (optional) Object of class MPMData as created by readMPMData from which the parameter maps were obtained.
  • kstar: Maximum number of steps.
  • alpha: specifies the scale parameter for the adaptation criterion. smaller values are more restrictive.
  • patchsize: Patchsize in PAWS, 0 corresponds to AWS, alternative values are 1 and 2.
  • mscbw: bandwidth for 3D median smoother used to stabilize the covariance estimates.
  • wghts: (optional) voxel size if measurments are not isotropic.
  • verbose: logical - provide information on progress

Returns

list with components - modelCoeff: Estimated parameter maps

  • invCov: map of inverse covariance matrices

  • isConv: convergence indicator map

  • bi: Sum of weights map from AWS/PAWS

  • smoothPar: smooting parameters used in AWS/PAWS

  • smoothedData: smoothed mpmData

  • 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 'sESTATICSModel'

References

J. Polzehl, V. Spokoiny, Propagation-separation approach for local likelihood estimation, Probab. Theory Related Fields 135 (3), (2006) , pp. 335--362.

J. Polzehl, K. Papafitsorus, K. Tabelow (2018). Patch-wise adaptive weights smoothing. WIAS-Preprint 2520.

J. Polzehl and K. Tabelow (2023), Magnetic Resonance Brain Imaging: Modeling and Data Analysis Using R, 2nd Edition, Chapter 6, Springer, Use R! Series. doi:10.1007/978-3-031-38949-8_6.

J. Polzehl and K. Tabelow (2023), Magnetic Resonance Brain Imaging - Modeling and Data Analysis Using R: Code and Data. doi:10.20347/WIAS.DATA.6.

Author(s)

Karsten Tabelow tabelow@wias-berlin.de

J"org Polzehl polzehl@wias-berlin.de

See Also

readMPMData, estimateESTATICS

Examples

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, "mask.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") # # smooth maps of ESTATICS Parameters # setCores(2) modelMPMsp1 <- smoothESTATICS(modelMPM, kstar = 16, alpha = 0.004, patchsize=1, verbose = TRUE) # # resulting ESTATICS parameter maps for central coronal slice # if(require(adimpro)){ rimage.options(zquantiles=c(.01,.99), ylab="z") oldpar <- par(mfrow=c(2,4),mar=c(3,3,3,1),mgp=c(2,1,0)) on.exit(par(oldpar)) pnames <- c("T1","MT","PD","R2star") modelCoeff <- extract(modelMPM,"modelCoeff") for(i in 1:4){ rimage(modelCoeff[i,,11,]) title(pnames[i]) } modelCoeff <- extract(modelMPMsp1,"modelCoeff") for(i in 1:4){ rimage(modelCoeff[i,,11,]) title(paste("smoothed",pnames[i])) } } par(oldpar)