dcemri.bayes {dcemri}R Documentation

Bayesian Methods for Pharmacokinetic Modeling of Dynamic Contrast-Enhanced MRI Data

Description

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

Usage

dcemri.bayes(conc, time, img.mask, model="extended", aif=NULL,
             user=NULL, nriters=3500, thin=3, burnin=500,
             tune=267, tau.ktrans=1, tau.kep=tau.ktrans,
             ab.vp=c(1,19), ab.tauepsilon=c(1,1/1000),
             samples=FALSE, multicore=FALSE, verbose=FALSE, ...)
dcemri.bayes.single(conc, time, nriters=3500, thin=3,
                    burnin=500, tune=267, tau.gamma=1,
                    tau.theta=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”
    Weinmann model extended with additional vascular compartment (default)
    “orton.exp”
    Extended model using Orton's exponential AIF
aif is a character string that identifies the parameters of the type of arterial input function (AIF) used with the above model. Acceptable values are: tofts.kermode (default) or fritz.hansen for the weinmann and extended models; orton.exp (default) or user for the orton.exp model.
user Vector of AIF parameters. For Tofts and Kermode: a_1, m_1, a_2, m_2; for Orton et al.: A_b, μ_b, A_g, μ_g.
nriters Total number of iterations.
thin Thining factor.
burnin Number of iterations for burn-in.
tune Number for iterations for tuning. The algorithm will be tuned to an acceptance rate between 0.3 and 0.6.
tau.ktrans Variance parameter for prior on log(K^{trans}).
tau.kep Variance parameter for prior on log(k_{ep}).
ab.vp Hyper-prior parameters for the Beta prior on vp.
ab.tauepsilon Hyper-prior parameters for observation error Gamma prior.
samples If TRUE output includes samples drawn from the posterior distribution for all parameters.
multicore If TRUE algorithm is parallelized using multicore.
verbose
tau.gamma
tau.theta
aif.model
aif.parameter
vp
...

Details

See Schmid et al. (2006) for details.

Value

Parameter estimates and their standard errors are provided for the masked region of the multidimensional array. They include

ktrans Transfer rate from plasma to the extracellular, extravascular space (EES).
ktranserror Error on ktrans.
kep Rate parameter for transport from the EES to plasma.
keperror Error on kep.
ve Fractional occupancy by EES (the ratio between ktrans and kep).
vperror Error on ve.
vp Fractional occupancy by plasma.
sigma2 The residual sum-of-squares from the model fit.
time Acquisition times (for plotting purposes).

Note, not all parameters are available under all models choices.

Author(s)

Volker Schmid

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

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", nriters=1500)

## 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, nriters=1500)

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=1.5, col=2)
legend("right", c("orton.exp", "fritz.hansen"), pch=1:2)

cbind(breast$ktrans, fit.bayes$ktrans[,,1], fit.bayes.aif$ktrans[,,1])

## Not run: 
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=1.5, col="red")
legend("bottomright", c("Bayesian Estimation (fritz-hansen)",
                        "Bayesian Estimation (orton.exp)",
                        "Levenburg-Marquardt (fritz.hansen)",
                        "Levenburg-Marquardt (orton.exp)"), pch=1:4)
## End(Not run)

[Package dcemri version 0.10.5 Index]