estimateIRsolid function

Estimate parameters in Inversion Recovery MRI experiments mixture model for non-fluid voxel

Estimate parameters in Inversion Recovery MRI experiments mixture model for non-fluid voxel

The Inversion Recovery MRI signal in non-fluid voxel follows is modeled as a mixture of a fluid and a solid compartment.

estimateIRsolid(IRfluidobj, TEScale = 100, dataScale = 1000, verbose = TRUE, lower = c(0, 0, 0), upper = c(0.95, 2, 2))

Arguments

  • IRfluidobj: Object of class "IRfluid" as generated by function estimateIRfluid.
  • TEScale: Internal scale factor for Echo Times. This influences parameter scales in numerical calculations.
  • dataScale: Internal scale factor for MR signals. This influences parameter scales in numerical calculations.
  • verbose: Logical. Provide some runtime diagnostics.
  • lower: Lower bounds for parameter values.
  • upper: Upper bounds for parameter values.

Details

The Inversion Recovery MRI signal in non-fluid voxel follows is modeled as a mixture of a fluid and a solid compartment. The function calculates estimates of the maximum signal and recovery rate for the solid compartment and a mixture coefficient (proportion of fluid) for all voxel with segment%in%2:3using results from function estimateIRfluid.

Returns

List of class IRmixed with components - IRdata: 4D array containing the IRMRI data, first dimension refers to inversion times

  • InvTimes: vector of inversion times

  • segm: segmentation codes, 1 for CSF, 2 for GM, 3 for WM, 0 for out of brain

  • sigma: noise standard deviation, if not specified estimated fron CSF areas in image with largest inversion time

  • L: effective number of coils

  • fx: Array of fluid proportions

  • Sx: Array of maximal signals

  • Rx: Array of relaxation rates

  • Sf: Global estimate of maximal fluid signal

  • Rf: Global estimate of fluid relaxation rate

  • ICovx: Covariance matrix of estimates fx, Sx and Rx.

  • sigma: Array of provided or estimated noise standard deviations

  • Convx: Array of convergence indicators

  • rsdx: Residual standard deviations

  • method: "NLS" for nonlinear regression or "QL" for quasi likelihood.

  • varest: Method used for variance estimation

The arrays contain entries for all voxel with segments%in%1:3.

References

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

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

estimateIRfluid, estimateIR, estimateIRsolidfixed,smoothIRSolid

Examples

## runs about 7 seconds dataDir0 <- system.file("extdataIR", package = "qMRI") dataDir <- tempdir() library(oro.nifti) library(qMRI) segm <- readNIfTI(file.path(dataDir0,"Brainweb_segm")) Sf <- 900 Rf <- 0.000285 Sgm <- 400 Rgm <- 0.00075 fgm <- .15 Swm <- 370 Rwm <- 0.0011 fwm <- .05 InvTimes0 <- c(100, 200, 400, 600, 800, 1200, 1600, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 6000, 15000) nTimes <- length(InvTimes0) sigma <- 40 ## generate IR signal IRdata <- generateIRData(segm, c(Sf,Rf), c(fgm,Rgm,Sgm), c(fwm,Rwm,Swm), InvTimes0, sigma) for(i in 1:9) writeNIfTI(as.nifti(IRdata[i,,,]), file.path(dataDir,paste0("IR0",i))) for(i in 10:nTimes) writeNIfTI(as.nifti(IRdata[i,,,]), file.path(dataDir,paste0("IR",i))) ## generate IRdata object t1Files <- list.files(dataDir,"*.nii.gz",full.names=TRUE) segmFile <- file.path(dataDir0,"Brainweb_segm") IRdata <- readIRData(t1Files, InvTimes0, segmFile, sigma=sigma, L=1, segmCodes=c("CSF","GM","WM")) ## estimate fluid setCores(2) # parallel mode using 2 threads IRfluid <- estimateIRfluid(IRdata, method="NLR", verbose=FALSE) cat("Estimated parameters Sf:", IRfluid$Sf, " Rf:", IRfluid$Rf, "\n") ## estimate solid IRmix <- estimateIRsolid(IRfluid, verbose=FALSE)