Can someone give an example calculation for the apparent diffusion coefficient (ADC)?

There appears to be multiple ways that this can be calculated, e.g. as discussed here: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4166577/


1 Answer 1


Do you like R ? if so, look at this package "dcemriS4" and its example http://www.inside-r.org/packages/cran/dcemriS4/docs/adc.lm


S0 <- 10
b <- c(0, 50, 400, 800)  # units?
D <- 0.7e-3              # mm^2 / sec (normal white matter)

## Signal intensities based on the (simplified) Bloch-Torry equation
dwi <- function(S0, b, D) {
  S0 * exp(-b*D)

set.seed(1234) # this is just to make the example reproducible 
signal <- array(dwi(S0, b, D) + rnorm(length(b), sd=0.15),
                c(rep(1,3), length(b)))
ADC <- ADC.fast(signal, b, array(TRUE, rep(1,3)))
unlist(ADC) # text output
par(mfrow=c(1,1)) # graphical output
plot(b, signal, xlab="b-value", ylab="Signal intensity")
lines(seq(0,800,10), dwi(S0, seq(0,800,10), D), lwd=2, col=1)
lines(seq(0,800,10), dwi(ADC$S0, seq(0,800,10), ADC$D), lwd=2, col=2)
legend("topright", c("True","Estimated"), lwd=2, col=1:2)

Here you can see an example of the steps used for mir http://rsl.stanford.edu/moseley/tensorcalc/tensorcalc/Steps/ADCmaps/adc.html

here is to understand the math behind of its calculation http://www.ajronline.org/doi/full/10.2214/AJR.12.9231

if you don't like R but you like Matlab, here you can use this code to calculate it in Matlab http://www.mathworks.com/matlabcentral/fileexchange/21130-dti-and-fiber-tracking/content/DTI.m one of the output is ADC for mir data

  • $\begingroup$ I think you should explain the principle behind the calculation rather than posting a code. The code is of little value in this site and if the OP is actually interested in coding then this is not the site for such questions. I guess that is not the case here. $\endgroup$
    Commented Jun 20, 2016 at 5:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .