cbf: CBF Computation

Description Usage Arguments Details Value Author(s) Examples

Description

Calculate CBF from an ASL image using CASL or PASL.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# ASLtbx
cbf_casl1_ASLtbx( aslimg_filename , m0img_filename )
cbf_casl2_ASLtbx( aslimg_filename )
cbf_pasl_ASLtbx( aslimg_filename , m0img_filename )
# Chen 2011 paper
cbf_casl_Chen2011( aslimg_filename )
cbf_pasl_Chen2011( aslimg_filename , m0img_filename )
cbf_pcasl_Chen2011( aslimg_filename )
# Wang 2012 paper
cbf_casl_Wang2012( aslimg_filename , Xvar = NULL , Xideal = NULL , c =
NULL )
# update a give CBF estimate using PASL/CASL
compute_cbf( cbf , img , method = 0 , labelfirst = 1 )
# compute robust cbf
cbf_robust( asl_img )

Arguments

aslimg

Name of the 4D ASL image file.

aslimg_filename

Name of the 4D ASL image file.

m0img_filename

Name of the 3D M0 image file.

Xvar

Matrix or vector or unspecified. For an image of size 64 * 64 * 18 * 116, Xvar can be a vector of length 116 or a matrix of size 116 * (64*64*18) or unspecified to not use in the general linear model.

Xideal

Matrix or vector or unspecified. For an image of size 64 * 64 * 18 * 116, Xideal can be a vector of length 116 or a matrix of size 116 * (64*64*18) or left unspecified to use the version from Wang2012 paper.

c

Matrix or numeric scalar or unspecified. For an image of size 64 * 64 * 18 * 116, c can be a matrix of size 64 * 64 * 18 or a scalar or left unspecified to use the version from Wang2012 paper.

cbf

Existing CBF esitmate to be updated.

method

Can be 0 or 1. 0 – Chen2011 CASL; 1 – Chen2011 PASL;

img

ASL image if 'method' = 0 . M0 image if 'method' = 1 .

labelfirst

Boolean indicating if label is first in every time-series voxel.

Details

In all of the scripts, the cbf calculate is of dimensions [ x , y , z , t ]

ASLtbx( https://cfn.upenn.edu/~zewang/ASLtbx.php )
—————————————————————————-

CBF calculation using 'cbf_casl1_ASLtbx'.
# Following are the parameters used in the ASLtbx
# First image: label
# Subtraction Method: simple subtraction
# Subtraction Order: control - label
# Applying Mask for Output: yes
# Create Mean Images: yes
# Calculate qCBF: yes
# Output PseudoBOLD Images: no
# Save deltaM Images: no
# Save qCBF Images: yes
# Using a unique M0 value for all voxels: no
# Output Image Format: nifti
# Saving 4D Image Series: yes
# Select ASL type: CASL
# Magnetic Field: 3T
# Label Time (sec): 2
# Post-Labeling Delay Time (sec): 0.8
# Slice Acquisition Time (msec): 45
# Use Additionally acquired M0 Image for CASL: no
# Label Efficiency: 0.68
for every voxel in cbf image,
cbf <- ( 6000 * 1000 * lambda * r1a * efftcbf ) / ( 2 * labeff * ( exp( -omega * r1a ) - exp( -( labeltime + omega ) * r1a ) ) )
where,
lambda <- 0.9
bloodt1 <- 1664
r1a <- 1 / bloodt1
control <- control voxel value – ASL image at t = 2 , 4 , 6 , ... even times
label <- label voxel value – ASL image at t = 1 , 3 , 5 , ... odd times
efftcbf <- ( control - label ) / m0
labeff <- 0.68
delaytime <- 800
slicetime <- 45
slice <- slice the voxel belongs to ( 1 , 2 , 3 , ... , num-of-slices )
omega <- delaytime + (slice-1) * slicetime
labeltime <- 2000
—————————————————————————-

CBF calculation using 'cbf_casl2_ASLtbx'.
# Following are the parameters used in ASLtbx
# First image: label
# Subtraction Method: simple subtraction
# Subtraction Order: control - label
# Applying Mask for Output: yes
# Create Mean Images: yes
# Calculate qCBF: yes
# Output PseudoBOLD Images: no
# Save deltaM Images: no
# Save qCBF Images: yes
# Using a unique M0 value for all voxels: yes
# Output Image Format: nifti
# Saving 4D Image Series: yes
# Select ASL type: CASL
# Magnetic Field: 3T
# Label Time (sec): 2
# Post-Labeling Delay Time (sec): 0.8
# Slice Acquisition Time (msec): 45
# Use Additionally acquired M0 Image for CASL: no
# Label Efficiency: 0.68
for every voxel in the cbf image,
cbf <- ( 6000 * 1000 * lambda * r1a * efftcbf ) / ( 2 * labeff * ( exp( -omega * r1a ) - exp( -( labeltime + omega ) * r1a ) ) )
where,
lambda <- 0.9
bloodt1 <- 1664
r1a <- 1 / bloodt1
control <- control voxel value – ASL image at t = 2 , 4 , 6 , ... even times
label <- label voxel value – ASL image at t = 1 , 3 , 5 , ... odd times
efftcbf <- ( control - label ) / control
labeff <- 0.68
slicetime <- 45
slice <- slice the voxel belongs to ( 1 , 2 , 3 , ... , num-of-slices )
omega <- delaytime + (slice-1) * slicetime
labeltime <- 2000
—————————————————————————-

CBF calculation using cbf_pasl_ASLtbx.
# Following are the parameters used in the ASLtbx
# First image: label
# Subtraction Method: simple subtraction
# Subtraction Order: control - label
# Applying Mask for Output: yes
# Create Mean Images: yes
# Calculate qCBF: yes
# Output PseudoBOLD Images: no
# Save deltaM Images: no
# Save qCBF Images: yes
# Using a unique M0 value for all voxels: no
# Output Image Format: nifti
# Saving 4D Image Series: yes
# Select ASL type: PASL
# Magnetic Field: 3T
# Post-Labeling Delay Time (sec): 0.8
# Slice Acquisition Time (msec): 45
# TE (msec): 20
# Select M0 Image: m0.nii
# Draw ROI for calculating CBF: yes
# Label Efficiency: 0.95
for every voxel in the cbf image,
cbf <- ( 6000 * 1000 * lambda * effperf ) / ( 2 * m0 * exp( -TI / bloodt1 ) * TI1 * labeff * qTI )
where,
lambda <- 0.9
control <- control voxel value – ASL image at t = 2 , 4 , 6 , ... , even times
label <- label voxel value – ASL image at t = 1 , 3 , 5 , ... , odd times
effperf <- control - label
slicetime <- 45
slice <- slice the voxel belongs to ( 1 , 2 , 3 , ... , num-of-slices )
TI1 <- 700
TI <- TI1 + delaytime + (slice-1) * slicetime
bloodt1 <- 1664
labeff <- 0.95
qTI <- 0.85
—————————————————————————-

'Test–Retest Reliability of Arterial Spin Labeling With Common Labeling Strategies'
Yufen Chen, PhD, Danny J.J. Wang, PhD and John A. Detre, MD
JOURNAL OF MAGNETIC RESONANCE IMAGING 33:940–949 (2011)
—————————————————————————-

CBF calculation for CASL.
for every voxel in the cbf image,
cbf <- ( lambda * deltaM ) / ( 2 * alpha * M0 * T1b * ( exp( -omega / T1b ) - exp( -( tau + omega ) / T1b ) ) )
where,
lamda <- 0.9 control <- control voxel value – ASL image at t = 2 , 4 , 6 , ... , even times
label <- label voxel value – ASL image at t = 1 , 3 , 5 , ... , odd times
deltaM <- control - label
alpha <- 0.68
M0 <- mean( control )
T1b <- 1664
omega <- 1
tau <- 2
—————————————————————————-

CBF calculation for pCASL.
for every voxel in the cbf image,
cbf <- ( lambda * deltaM ) / ( 2 * alpha * M0 * T1b * ( exp( -omega / T1b ) - exp( -( tau + omega ) / T1b ) ) )
where,
lambda <- 0.9 control <- control voxel value – ASL image at t = 2 , 4 , 6 , ... , even times
label <- label voxel value – ASL image at t = 1 , 3 , 5 , ... , odd times
deltaM <- control - label
alpha <- 0.85
M0 <- mean( control )
T1b <- 1664
omega <- 1
tau <- 1.5
—————————————————————————-

CBF calculation for PASL.
for every voxel in the cbf image,
cbf <- ( lambda * deltaM ) / ( 2 * alpha * M0 * TI1 * exp( -TI2 / T1b ) )
where,
lambda <- 0.9
control <- control voxel value – ASL image at t = 2 , 4 , 6 , ... , even times
label <- label voxel value – ASL image at t = 1 , 3 , 5 , ... , odd times
deltaM <- control - label
alpha <- 0.95
M0 <- equilibrium magnetization from M0 acquisition (input image)
TI1 <- 700
TI2 <- 1700
T1b <- 1664
—————————————————————————-

'Improving cerebral blood flow quantification for arterial spin labeled perfusion MRI by removing residual motion artifacts and global signal fluctuations'
Wang
Magnetic Resonance Imaging xx (2012) xxx – xxx
—————————————————————————-

CBF calculation for CASL.
for every voxel in the cbf image,
cbf <- ( Bideal * lambda * R1a * exp( w * R1a ) ) / ( 2 * c * alpha * ( 1 - exp( -tau * R1a ) ) )
where,
Xideal <- ideal label and control signals in the time series
Xvar <- represents variations in Xideal in the time series (provide by user)
Y <- voxel time series
Bideal <- fitting coefficient for Xideal under a general linear model ( Y ~ Xideal + Xvar )
lamda <- 0.9 # stolen
T1a <- 1.6 # stolen
R1a <- 1 / T1a
w <- 1
alpha <- 0.95
tau <- 2
c <- mean( Y ) or value provided by user
—————————————————————————-

Value

cbf – 4D array of cbf values with extent of the last dimension equal to number of terms in the finite difference ; in case of 'compute_cbf', resulting array is of same dimensions as input 'cbf'. In case of 'cbf_robust', resulting array is 3D representing mean cbf.

Author(s)

Shrinidhi KL

Examples

1
2
3
4
5
6
7
8
9
## Not run: 
cbf <- cbf_casl1( "asl.nii" , "m0.nii" )cbf <- cbf_casl2( "asl.nii" )
cbf <- cbf_pasl( "asl.nii" , "m0.nii" )
# updating existing cbf estimate using CASL; method = 0 , labefirst = 1
cbf <- compute_cbf( cbf , asl_img )
# comput robust cbf of an asl image
cbf <- cbf_robust( "asl.nii" )

## End(Not run)

stnava/itkImageR documentation built on May 30, 2019, 7:21 p.m.