smoothESTATICS: Adaptive smoothing of ESTATICS parameters and MPM data

View source: R/mpmESTATICS.r

smoothESTATICSR Documentation

Adaptive smoothing of ESTATICS parameters and MPM data

Description

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.

Usage

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

Value

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'

Author(s)

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

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, 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.

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))
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)


qMRI documentation built on Sept. 18, 2023, 9:08 a.m.