Asl_calib increases perfusion voxel values by a factor of 10. Am I missing a step?


Summary of what happened:

I have a pCASL perfusion-weighted image and M0 calibration image from a GE scanner that I am trying to calibrate using asl_calib.

The output is nonsensical: the calibrated image, while visually (nearly) identical to the uncalibrated image, has cortical intensities that are over 2000. (the uncalibrated image has cortical intensities that are over 150)

As I am somewhat new to ASL preprocessing, I was curious if one of the community could potentially clarify what might be causing this 10-fold increase in voxel intensity? From what I have read, typical cortical CBF should be under 100 ml per 100 g per minute.

Command used (and if a helper script was used, a link to the helper script or the command generated):

So far, I’ve followed these processing steps:

  1. N4BiasFieldCorrection on T1w-MPRAGE
  2. bet with -R flag on bias-corrected T1w-MPRAGE
  3. Produce asl2struct matrix using asl_reg
    • asl_reg -i perfusion.nii -c m0.nii --sbet mprage_bias_brain.nii
  4. Register T1w-MPRAGE brainmask to ASL space using flirt
    • flirt -dof 6 -interp nearestneighbour -in mprage_bias_brain_mask.nii -ref perfusion.nii -applyxfm -init struct2asl.mat -out mprage_bias_brain_mask_aslspace.nii
  5. Perform calibration
    • asl_calib -c m0.nii -s mprage_bias_brain.nii -t asl2struct.mat -i perfusion.nii --bmask mprage_bias_brain_mask_aslspace.nii --tr 4.888 --te 10.528 -o asl_calib --of asl_calib/calib.nii


$ asl_calib --version
v4.0.27-dirty Tue Jul 13 02:09:25 2021

Environment (Docker, Singularity, custom installation):

FSL built from AUR

Data formatted according to a validatable standard? Please provide the output of the validator:


Relevant log outputs (up to 20 lines):

ASL_CALIB logfile
TE: 10.528
Using default tissue reference type (CSF)
Tissue reference : csf
T1r 4.3; T2r 750; T2b 150; Part co-eff: 1.15
FAST called to determine a reference tissue mask
Ventricle selection
Registering structural image to standard space using FLIRT
Registering structural image to standard space using FNIRT
Masking FAST output with standard space derrived ventricle mask
Transforming tissue reference mask into perfusion space
Using bias field from structural image for sensitivity correction
Number of voxels in tissue reference mask: 385
MODE: longtr
cgain is 1
Apply sensitivity image
Signal in reference tissue: 380.274210 
Correction factor: .67913801001603551665 (tr=4.888, tsq=0, t1=4.3)
Mz of reference tissue: 559.93657311423509892913
M0: 460.31148756199949178926

Screenshots / relevant information:

Tag-control subtraction and averaging is done at the scanner. We used the ADNI3 GE pCASL sequence. Processing in asl_calib is mainly for QC purposes. We will performing more in-depth processing (i.e. BASIL / aslprep) at a later date

Continuing the discussion from Asl_calib increases perfusion voxel values by a factor of 10. Am I missing a step?:

I used to perform asl analysis 5 years ago… so it is may be a little bit old…

but I had to add a gain of 10, my command was:
fsl5.0-oxford_asl -i rdiffASL -o analyse --tis $Ti --casl --vars --bolus 1.5 --bat 1.3 --t1 1.33 --t1b 1.65 --spatial -m oT1mask2ASL --alpha $alpha --tr 5 --cmethod voxel -c M0brain2ASL --cgain 10

I have some of the more obvious parameters available (PLD, ntis, etc.), however I am unsure where I can get bolus, bat, t1, t1b, alpha, and cgain from. I have access to the full scanner PDF, should I be able to pull these values from there?

After talking it over with our vendor, it appears that the images are already outputted in absolute CBF units…