Learn R Programming

dcemriS4 (version 0.51)

dcemri.bayes: Bayesian Methods for Pharmacokinetic Modeling of Dynamic Contrast-Enhanced MRI Data

Description

Bayesian analysis of contrast agent concentration time curves from DCE-MRI.

Usage

## S3 method for class 'array':
dcemri.bayes(conc, time, img.mask, model="extended",
             aif=NULL, user=NULL, nriters=3000, thin=3, burnin=1000,
             tune=267, ab.ktrans=c(0,1), ab.kep=ab.ktrans,
             ab.vp=c(1,19), ab.tauepsilon=c(1,1/1000),
             samples=FALSE, multicore=FALSE, verbose=FALSE, dic=FALSE,
             ...)
dcemri.bayes.single(conc, time, nriters=3000, thin=3,
                    burnin=1000, tune=267, ab.gamma=c(0,1),
                    ab.theta=c(0,1), ab.vp=c(1,19),
                    ab.tauepsilon=c(1,1/1000), aif.model=0,
                    aif.parameter=c(2.4,0.62,3,0.016), vp=1)

Arguments

conc
Matrix or array of concentration time series (last dimension must be time).
time
Time in minutes.
img.mask
Mask matrix or array. Voxels with mask=0 will be excluded.
model
is a character string that identifies the type of compartmental model to be used. Acceptable models include:
  • weinmann
{Tofts & Kermode AIF convolved with single compartment model} extended

Value

  • Parameter estimates and their standard errors are provided for the masked region of the multidimensional array. All multi-dimensional arrays are output in nifti format.

    They include:

  • ktransTransfer rate from plasma to the extracellular, extravascular space (EES).
  • ktranserrorError on $K^{trans}$.
  • kepRate parameter for transport from the EES to plasma.
  • keperrorError on $k_{ep}$.
  • veFractional occupancy by EES (the ratio between ktrans and kep).
  • vperrorError on $v_e$.
  • vpFractional occupancy by plasma.
  • sigma2The residual sum-of-squares from the model fit.
  • timeAcquisition times (for plotting purposes).
  • DICDeviance information criterion.
  • DIC.mapContribution to DIC per voxel.
  • pDEffective number of parameters.
  • pD.mapConstribution to pD per voxel.
  • Note, not all parameters are available under all models choices.

item

  • aif
  • user
  • nriters
  • thin
  • burnin
  • tune
  • ab.ktrans
  • ab.kep
  • ab.vp
  • ab.gamma
  • ab.theta
  • ab.tauepsilon
  • samples
  • multicore
  • verbose
  • dic
  • aif.model
  • aif.parameter
  • vp
  • ...

code

TRUE

eqn

$v_p$

emph

et al.

pkg

multicore

dQuote

samples = TRUE

Details

See Schmid et al. (2006) for details.

References

Schmid, V., Whitcher, B., Padhani, A.R., Taylor, N.J. and Yang, G.-Z. (2006) Bayesian methods for pharmacokinetic models in dynamic contrast-enhanced magnetic resonance imaging, IEEE Transactions on Medical Imaging, 25 (12), 1627-1636.

See Also

dcemri.lm, dcemri.map, dcemri.spline

Examples

Run this code
data("buckley")
xi <- seq(5, 300, by=5)
img <- array(t(breast$data)[,xi], c(13,1,1,60))
mask <- array(TRUE, dim(img)[1:3])
time <- buckley$time.min[xi]

## Bayesian estimation with Fritz-Hansen default AIF
fit.bayes <- dcemri.bayes(img, time, mask, aif="fritz.hansen")

## Bayesian estimation with "orton.exp" function fit to Buckley's AIF
aif <- buckley$input[xi]
aifparams <- orton.exp.lm(time, aif)
aifparams$D <- 1
fit.bayes.aif <- dcemri.bayes(img, time, mask, model="orton.exp",
                              aif="user", user=aifparams)

plot(breast$ktrans, fit.bayes$ktrans, xlim=c(0,1), ylim=c(0,1),
     xlab=expression(paste("True ", K^{trans})),
     ylab=expression(paste("Estimated ", K^{trans}, "(Bayesian)")))
points(breast$ktrans, fit.bayes.aif$ktrans, pch=2)
abline(0, 1, lwd=2, col=2)
legend("right", c("extended/fritz.hansen","orton.exp/user"), pch=1:2)
cbind(breast$ktrans, fit.bayes$ktrans[,,1], fit.bayes.aif$ktrans[,,1])

fit.lm <- dcemri.lm(img, time, mask, aif="fritz.hansen")
fit.lm.aif <- dcemri.lm(img, time, mask, model="orton.exp", aif="user",
                        user=aifparams)

plot(breast$ktrans, fit.bayes$ktrans, xlim=c(0,1), ylim=c(0,1),
     xlab=expression(paste("True ", K^{trans})),
     ylab=expression(paste("Estimated ", K^{trans})))
points(breast$ktrans, fit.bayes.aif$ktrans, pch=2)
points(breast$ktrans, fit.lm$ktrans, pch=3)
points(breast$ktrans, fit.lm.aif$ktrans, pch=4)
abline(0, 1, lwd=2, col=2)
legend("bottomright", c("Bayesian Estimation (fritz-hansen)",
                        "Bayesian Estimation (orton.exp)",
                        "Levenburg-Marquardt (weinmann/fritz.hansen)",
                        "Levenburg-Marquardt (orton.exp/user)"), pch=1:4)

Run the code above in your browser using DataLab