The information included herein represents our best knowledge at this time. This page will be updated as new information becomes available. Please revisit as needed.
It is not the intention of the author of this web page to provide scripting or command support. For more information on the image-processing tools, please consult the appropriate pages:
FSL (http://www.fmrib.ox.ac.uk/fsl/fsl/support.html)
FreeSurfer (http://surfer.nmr.mgh.harvard.edu/fswiki)
Matlab (http://www.mathworks.com/)
ASL (arterial-spin labeling) permits the estimation of cerebral blood flow (CBF) using blood water as an endogenous tracer. Whereas continuous ASL uses continuous RF irradiation (for several seconds, commonly via adiabatic fast passage) for blood water tagging, pulsed ASL uses short adiabatic pulses (i.e. 10 ms long) to tag blood spins. Pulsed ASL is associated with lower contrast-to-noise ratios (CNR) than continuous ASL, but is less afflicted by the undesired magnetization transfer effects characteristic of continuous ASL, one of the main reasons that pulsed ASL has thus found wider application.
Common flavours of pulsed ASL techniques are distinguished by their respective tagging schemes:
EPISTAR (echo planar imaging and signal targeting with alternating radio-frequency)
FAIR (flow-sensitive alternating inversion recovery) -- the fBIRN sequence (for details see [Wang, 2002])
PICORE (proximal inversion with control for off-resonance effects)
Note:
Subtraction of the tag from the control image results in an image with intensity proportional to CBF, but does not provide the quantitative CBF value (qCBF), commonly cited in units of [ml/100 g-tissue/min]. Also, while ASL-based CBF measurement in the grey matter is reasonably robust, white-matter perfusion measurements are more challenging due to lower CNR, and is an area of active research.
The qCBF at voxel v can be computed based on the General Kinetic Model [Buxton, 1998], which is build from the following components:
the delivery function: the normalized arterial concentration of magnetization arriving at the voxel at time t
the residue function: the fraction of tagged water that arrived at time t
the magnetization relaxation function: the fraction of the original longitudinal magnetization tag carried by the blood water that remains at time t.
The Standard Kinetic Model embodies a special case of the General Kinetic Model, and is widely used for quantitative CBF calculation based on pulsed ASL data [Buxton, 1998]. It is applicable to all the above tagging schemes, and makes the following assumptions concerning:
the delivery function: no tag arrives before the transit-delay or after the transit-delay + tag-width
the residue function: the blood-tissue water exchange follows a single-exponential model
the relaxation function: blood water is completely exchanged with tissue water after arrival at the voxel, and would continue to decay at the T1 of tissue
In the pulsed case the Standard Kinetic Model can be expressed as:
CBF(v) = dM(v) * λ / [2α * MoA(v)
* TI1exp( − TI2(slicenumber(v)) /
T1A)] (Eqn 1a)
where
dM(v) = average control - tag value for voxel v
MoA(v) = the equilibrium arterial blood magnetization (varies according to voxel due to intensity nonuniformity effects)
TI1 = time of the QUIPSS saturation pulse
TI2(slice) = TI2 + slice_number * slice_delay (slice_delay = the time taken to acquire each slice)
T1A = T1 of arterial blood
exp(...) = 2.718 to the power of (...)
T2sA - T2* of arterial blood
α - labeling efficiency
In the pulsed case the Standard Kinetic Model can be expressed as:
CBF(v) = dM(v) * -λ / [4α * MoA(v) * T1_gm
* [exp( -(tau(slicenumber(v))+w) / T1A) - exp(-w / T1_gm)] (Eqn 1b)
where
dM(v) = average control - tag value for voxel v
MoA(v) = the equilibrium arterial blood magnetization (varies according to voxel due to intensity nonuniformity effects)
T1_gm = grey matter T1
tau(slicenumber(v)) = tag arrival time for the slice which contains voxel v, assume to be equal to post-labeling delay (assuming this time is sufficient for all tags to arrive)
w = tag width, assumed to equal labeling duration (grossly neglecting dispersion)
T1A = T1 of arterial blood
exp(...) = 2.718 to the power of (...)
α - labeling efficiency
Some typical parameter values at 3 T are:
T1A = 1664 ms (T1 of arterial blood)
T1_gm = 1249 ms (T1 of grey matter)
T2sA = 106 ms (T2* of artierial blood)
T2sCSF = 75 ms (T2* of CSF [Cavusoglu, 2009])
T2s_gm = 44.2 ms (T2* of grey matter)
T2s_wm = 44.7 ms (T2* of white matter)
T2sT = 44.5 ms (average tissue T2* -- grey and white matter)
λ_gm = 0.98 (water partition coefficient between blood and grey matter)
λ_wm = 0.84 (water partition coefficient between blood and white matter)
λ = 0.91 (average water partition coefficient, between blood and grey-white matter)
α = 0.95 (average labeling efficiency)
Other parameters:
TE = echo time: should be set to the absolute minimum to reduce T2-type contamination
TR = repetition time: a long TR maximizes SNR and ensures clearance of the label (e.g. in cases of large label widths or slow flow)
the tagging scheme is FAIR-QUIPSS II
the tagging uses spatially selective FOCI adiabatic pulses
TE = 12ms, TI1 = 600ms, TI2 = 1600ms, slice_delay = 42ms, TR = 4 s
the odd-numbered frames are control
the slices are numbered in ascending order (first slice on the bottom)
this means that the top-most slice experiences the most slice-delay (slice_number x 42 ms)
This sequence is available on Bay 3 (set up with the above parameters) as USER/INVESTIGATORS/Benner/ASL/ep2d_pasl_510_FBIRN_vb17, and the corresponding calibration scan is found in the same folder, and named ep2d_pasl_510_FBIRN_vb17_cal . Note that the slice orientations and spatial coverage of the two scans are identical. The calibration scan is simply a 2D EPI sequence with a very long TR and a similar TE as the ASL sequence.
You should adjust the yellow box to include both the anterior and posterior parts of the brain.
The calibration scan should only be run after a pause of at least 10 seconds after the previous scan to ensure maximal magnetization recovery.
This scan must be run as an axial acquisition.
It is also important to ensure that the imaging slab is angled at no more than 45 degrees with respect to the axial plane.
Warning: Currently the above sequence only exists in the form of a Siemens WIP (Work-In-Progress). This means that it is not supported at the same level as a Siemens commercial sequence. As a result, it may or may not be available after the next scanner upgrade, or may be altered from its current state in the next release.
The required datasets are:
1. ASL time-series data (the control and tag images, arranged in an interleaved manner) (eg. asl.nii)
2. ASL calibration data (eg. aslcal.nii)
a separate EPI scan, with all parameter values
otherwise, this could be taken as the first frame of the ASL time-series, if no introduction scans were performed
retained except for a much longer TR (eg. 10 s), would be required3. a high-resolution anatomical scan (to facilitate group-analysis)
The FreeSurfer environment variables pertaining to the sample code given below are:
FREESURFER_HOME /usr/local/freesurfer/dev FSFAST_HOME /usr/local/freesurfer/dev/fsfast FSF_OUTPUT_FORMAT nii SUBJECTS_DIR /usr/local/freesurfer/stable4/subjects MNI_DIR /usr/local/freesurfer/stable4/mni FSL_DIR /usr/pubsw/packages/fsl/current
The following are the basic steps for computing qCBF from pulsed
ASL (along with sample shell script commands).
Be sure to check your results after every step.
To view data in volume-space, you can use:
0. convert dicom to nifti (.dcm to .nii)
1. set up subject directory: $subjdir/perfusion.
2. Register aslcal to anatomical space (output = aslcal.anat.nii)
bbregister --init-fsl --mov $subjdir/perfusion/aslcal.nii --t1 --s $session_name --reg $subjdir/perfusion/aslcal.reg
mri_vol2vol --mov $subjdir/perfusion/aslcal.nii --reg $subjdir/perfusion/asl.reg --fstarg --o $subjdir/perfusion/aslcal.anat.nii --interp nearest --no-save-reg
4. Motion correct ASL acquisition (asl.nii) using the middle frame as reference (output = asl.mc.nii.gz)
Generate reference frame:
mri_convert $subjdir/perfusion/asl.nii --mid-frame $subjdir/perfusion/asl.template.nii";
mcflirt -reffile $subjdir/perfusion/asl.template.nii -in $subjdir/perfusion/asl.nii -o $subjdir/perfusion/asl.mc -mats -plots
5. Find registration from asl to anatomical space (otuput = asl.reg)
bbregister --init-fsl --mov $subjdir/perfusion/asl.template.nii --t1 --s $session_name --reg $subjdir/perfusion/asl.reg
6. Generate slice offset (output = slc_offset.nii)
slc_offset = slice number
One way to do it is:mri_volsynth --temp $subjdir/perfusion/asl.template.nii --vol $subjdir/perfusion/temp.nii matlab -nodisplay -r "temp = MRIread('$subjdir/perfusion/temp.nii'); for i = 1:temp.depth temp.vol(:,:,i) = i-1; end; MRIwrite(temp, '$subjdir/perfusion/slc_offset.nii'); exit;"
1. Exclude first 4 frames. This can be done using Matlab (MRIRead and MRIWrite). However, for those not familar with Matlab, you may use the following (longer) way to do it:
fslsplit $subjdir/perfusion/asl.mc.nii.gz /tmp/ set list = `ls /tmp -1 --color=never | grep vol0 | grep -v 0000 | grep -v 0001 |grep -v 0002 |grep -v 0003` fslmerge -t $subjdir/perfusion/asl.mc.nii.gz $list rm -rf /tmp/vol0*
2. Perform control-tag calculations. The most basic way is to directly subtract tag from control --- the following sample command computes the mean ctl-tag image from the above ASL input file (asl.mc.nii.gz) in native (subject) space.
mri_glmfit --y $subjdir/perfusion/asl.mc.nii.gz --asl --glmdir $subjdir/perfusion/glmfit --nii cp -f $subjdir/perfusion/glmfit/perfusion/gamma.nii $subjdir/perfusion/dM.nii.gz
2a. A better way is to do surround subtraction --- since the control and tag images were not acquired at exactly the same time, surround subtraction can minimize signal artifacts due to the difference in timing.
This can be done easily in Matlab. Given an ASL image series arranged as: control1, tag1, control2, tag2, control3, tag3, control4, tag4 and so on, the dM series computed using surround subtraction will be given by: mean(control1, control2) - tag1, mean(control2, control3) - tag2, ...
In the fBIRN acquisitions, generally the odd frames are control. Please verify for other ASL sequences. (A good hint that you have switched the tag and control is if your calculated CBF values are negative.)
Now your dM map should look something like this.
Recall Equation 1a for QUIPSS II pulsed ASL:
CBF(v) = dM(v) * λ / [2α * MoA(v)
* TI1exp( − TI2(slicenumber(v)) /
T1A)] (Eqn 1a)
where
dM(v) = average control - tag value for voxel v
MoA(v) = the equilibrium arterial blood magnetization (varies according to voxel due to intensity nonuniformity effects)
TI1 = time of the QUIPSS saturation pulse
TI2(slice) = TI2 + slice_number * slice_delay (slice_delay = the time taken to acquire each slice)
T1A = T1 of arterial blood
exp(...) = 2.718 to the power of (...)
T2sA - T2* of arterial blood
α - labeling efficiency
λ_gm = 0.98 (water partition coefficient between blood and grey matter)
CBF(v) = dM(v) * -λ / [4α * MoA(v) * T1_gm
* [exp( -(tau(slicenumber(v))+w) / T1A) - exp(-w / T1_gm)]
where
dM(v) = average control - tag value for voxel v
MoA(v) = the equilibrium arterial blood magnetization (varies according to voxel due to intensity nonuniformity effects)
T1_gm = grey matter T1
tau(slicenumber(v)) = tag arrival time for the slice which contains voxel v, assume to be equal to post-labeling delay (assuming this time is sufficient for all tags to arrive)
w = tag width, assumed to equal labeling duration (grossly neglecting dispersion)
T1A = T1 of arterial blood
exp(...) = 2.718 to the power of (...)
α - labeling efficiency
1. Quantitative CBF calculations are always performed on the average of all dM frames to maximize the signal-to-noise ratio
There are several ways of performing the calibration, and only one of these is described in this page.
This method estimates arterial blood magnetization (MoA) based on local tissue magnetization, using assumed T2 and water partition coefficients. This method intrinsically corrects intensity non-uniformities in raw ASL images, eliminating the challenging steps of estimating coil sensitivity profiles and B0 inhomogeneities, etc.
However, as there is sparse literature on this topic, the robustness of various calibration approaches is still being investigated.
2. Compute a scaling factor, in this case for calculating grey matter qCBF
scalefactor = λ_gm / exp(TE/T2s_gm) (Eqn 2)
substitute lambda_wm and T2s_wm when targeting white matter, but white matter CBF measurement using ASL is not very reliable
Then estimate arterial magnetization using one frame from the calibration scan:
MoA(v) = aslcal(v) / scalefactorwhich could be implemented in Matlab as:
matlab -nodisplay -r "mo = MRIread('$subjdir/perfusion/aslcal.nii'); mo_a = MRIread('$subjdir/perfusion/M0.nii.gz'); whos; mo_a.vol(:,:,:) = mo.vol(:,:,:,2)./$scalefactor; MRIwrite(mo_a, '$subjdir/perfusion/M0a.nii.gz'); exit;"
Note:
in this case, since there are multiple frames in the calibration scan, we are using the second frame of the calibration scan. The justification is that the first frame usually has more CSF partial-volume contribution and is therefore somewhat less accurate.
An even better way to estimate the arterial magnetization is by using the average of the calibration frames.
However, if you did not acquire a calibration scan , the next best option is to use the very first frame of the ASL scan as the calibration scan.
However, in the case of a FAIR sequence, you must compensate for the inversion recovery time TI2:
aslcal(v) = asl_frame1(v)/(1-2*exp(-TI2/T1_gm))This step is sequence-dependent, as determined by the labeling scheme. In cases where pre-saturation is used, such as in the Siemens product sequence, the saturation recovery time should be compensated:
aslcal(v) = asl_frame1(v)/(1-exp(-TI2/T1_gm))3. Correct slice-delay
The procedure presented in this step is applicable to QUIPSS II PASL. Slight modifications will be required for CASL and pCASL sequences, based on Equation 1b.TI2(slicenumber) = TI2 + slicenumber * slicedelay (Eqn 3)
then plug everything into Eqn [1], get CBF (for now stored in dM.ttc.nii.gz) in terms of ml/g/s (milliliters per gram of tissue
per second). (output = dM.ttc.nii.gz)
It could be something like this:
fslmaths $subjdir/perfusion/slc_offset.nii -mul $slc_delay -add $TI2 -div $T1A -mul -1 -exp -mul $TI1 $subjdir/perfusion/ttc.nii fslmaths $subjdir/perfusion/M0a.nii.gz -mul 2 -mul $alpha $subjdir/perfusion/tmp.nii.gz fslmaths $subjdir/perfusion/dM.nii.gz -div $subjdir/perfusion/tmp.nii.gz -div $subjdir/perfusion/ttc.nii.gz $subjdir/perfusion/dM.ttc.nii.gz
4. Apply scaling factor -- multiply the result from the above step by 6000 to convert from [ml/g/s] to [ml/100g/min] (the standard unit).
fslmaths dM.ttc.nii.gz -mul 6000 cbf.nii.gz
If you used the timing parameters in units of [ms] in the calculations, then the scaling factor is 6,000,000.
5. Register the result to anatomical (1mm) space (if MC use MC template) (output = cbf.anat.nii.gz)
mri_vol2vol --mov $subjdir/perfusion/cbf.nii.gz --reg $subjdir/perfusion/asl.reg --fstarg --o $subjdir/perfusion/cbf.anat.nii --interp nearest --no-save-reg
6. Apply brain mask (output = cbf.anat.masked.nii.gz)
fslmaths $subjdir/perfusion/cbf.anat.nii.gz -mul $subjdir/perfusion/mask.nii $subjdir/perfusion/cbf.anat.masked.nii.gz
Now your CBF map should look something like this.
In healthy humans, CBF ranges up to 100 ml/100 g/min. You may see values exceeding this in your map, which may be due to CSF or macrovascular contribution, but this is normal. Back to top.The following assumes that a complete surface recon is available for the subject
All subjects are registered to fsaverage
We find it best to sample the surface at the middle of the cortex, i.e. using a projfrac of 0.5 (output = lh.fsaverage.cbf.mgz)
mri_vol2surf --regheader $session_name --trgsubject fsaverage --mov $subjdir/perfusion/cbf.anat.masked.nii.gz --hemi lh --noreshape --projfrac 0.5 --o $subjdir/surf/lh.fsaverage.cbf.mgz
You may like to do volume-based group analysis as well, in which case you can register the ASL data to "Talairach" space (which often refers to the MNI 305 average atlas) (output = cbf.talairach.mgz)
mri_convert $subjdir/perfusion/cbf.anat.masked.nii.gz --apply_transform $subjdir/mri/transforms/talairach.xfm -oc 0 0 0 $subjdir/perfusion/cbf.talairach.mgz
[Buxton, 1998] Buxton RB et al. A general kinetic model for quantitative perfusion imaging with arterial spin labeling. Magn Reson Med 1998; 40: 383-396
[Wang, 2002] Wang JJ et al. Comparison of Quantitative perfusion imaging using arterial spin labeling at 1.5 and 4.0 Tesla. Magn Reson Med 2002; 48: 242-254.
[Cavusoglu, 2009] Cavusoglu M et al. Comparison of pulsed arterial spin labeling encoding schemes and absolute perfusion quantification. Magn Reson Imaging 2009; 27: 1039-45.
[Dai, 2008] Dai W et al. Continuous flow-driven inversion for arterial spin labeling using pulsed radio frequency and gradient fields. Magn Reson Imaging 2008; 60: 1488-97.