[FSL] [TitleIndex] [WordIndex

Kinetic analysis concepts

BASIL and thus oxford_asl permit various options to be applied when performing the kinetic model-based analysis, here some conceptual details of these options are given. Note that the way you choose these options varies between the two tools (see the individual guides for more information).

Definition of inversion time

Inversion time is defined as the time from the start of labelling to time of image acquisition. Often for cASL or pcASL the 'post labelling delay' is quoted and is the time from the end of the labelling until image acquisition. Thus:

cASL or pcASL: TI = PLD + Labelling duration

This distinction does not arise in pASL, since the labelling is instantaneous.

Inferring bolus duration

Although some ASL sequences fix the temporal duration of the bolus, e.g. QUIPSS2, due to dispersion it is still feasible that the actual bolus length may vary across the brain. BASIL can take this into account by inferring the bolus length directly from the data and Oxford_asl does this by default. Even if you infer the bolus duration you should set a guess for the bolus duration as determined by you sequence. NOTE if your sequence results in an effectively infinite bolus length, e.g. FAIR, then there still might be a justification for inferring a finite bolus length depending upon the extent of the coil used for tagging. In which case you should set the bolus duration to some reasonable value (less than the last TI).

Inferring a macro vascular (arterial) component

If flow crushing has not been used then there will be significant signal from labeled arterial blood in the region of major vessels in the ASL data, for more information see Chappell et al., MRM, 2010. This can be accounted for by modelling this arterial component, by default oxford_asl includes this component.When the macro vascular component is included in the analysis then a further parameter, the arterial blood volume, is available from the analysis.

Inferring T1 values

Commonly it is assumed that T1 and T1b take a fixed value in the kinetic curve model. However, this value is not absolutely certain and may well vary across the brain. BASIL can take this into account by inferring on T1 and T1b, you should still, however, set sensible expected T1 and T1b values. NOTE: maps of T1 and T1b produced by this process are unlikely to be accurate measures of T1 in the brain - ASL data is not suitable for this. The purpose of including T1 and T1b in the inference is primarily to take account of their varaibility when estimating the other parameters. An exception to this is QUASAR data (in quasil) where a T1 image is estimated from the saturation recovery of the control data (and subsequently applied to the kinetic curve fitting).

Performing fast analysis

By default BASIL does analysis in multiple steps adding new parameters a few at a time in separate analysis steps. It is possible to perform the analysis in a single step, producing results more quickly. The result is likely to be less robust than the multi-step analysis when there are a large number of parameters in the model, i.e. if you are using all the inference options. It is, however, normally pretty stable in combination with spatial priors for most analysis problems. Thus you might want to use this to check the data, but use multiple steps for the very final result.

Spatial regularization

BASIL can apply a spatial smoothing prior to the estimated CBF image, for more information see Groves 'et al', NeuroImage, 2009. This exploits the fact that neighboring voxels are likely to have similar CBF values, i.e. CBF variation in the brain is relatively smooth. It brings the advantages associated with the more common pre-processing step of spatially smoothing the data. However, unlike smoothing the data it correctly preserves the non-linear kinetics exploited by the CBF estimation. It is also adaptive, so that in regions where the data does not support the use of smoothing the CBF image will not be smoothed. The spatial priors can be combined with the fast analysis option to achieve rapid results with a good level of robustness to noise.

Partial volume correction

The low resolution of ASL data typically means that there is substantial partial voluming of grey (GM) and white matter (WM), plus CSF too. Since GM and WM have very different kinetics (WM tends to have lower CBF and longer arrival times) a normal analysis will provide a CBF that is something of a combination of the two tissue types. BASIL can attempt to automatically correct for the different tissue types, for more details see Chappell et al., MRM, 2011. You need to provide partial volume estimates (PVE) at the same resolution as the ASL data. PVE can be obtained from a structural image, for example using FAST, the high resolution PVE image can then be converted using a transformation matrix from the structural to ASL image spaces, (obtained for example using asl_calib or FLIRT). This step is best done using applywarp to unsure that the values are the total PVE within the voxel, something like:

applywarp --ref={asl_data} --in={PV_estimate_image} --out={PV_estimate_low_res} --premat={structural_to_ASL_tranformation_matrix} --super --interp=spline --superlevel=4

Single TI data

BASIL is specifically designed to make the most of the information available with multi-TI data. With single TI measurements it is not possible to account for variation in bolus arrival time (BAT) and other parameters that are included in the kinetic model. However, if you assume a value for the BAT and other parameters then a CBF value can be determined using the kinetic model. BASIL will work with single TI data and will return the appropriate CBF image, the BAT value can be chosen for the analysis (the default is 0.7). BASIL may be advantageous for single TI data (over simply inverting the relevant model directly) when employing the spatial priors option (the fast option can be used at the same time) or when using partial volume correction.


Oxford_ASL is an automated command line utility that processes ASL data to produce a calibrated map of resting state tissue perfusion. A typical usage would be:

oxford_asl -i [asl_data] -s [struct_image] -t [struct2std_trans.mat] -c [M0_calib_image] --tis 0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,2.0,2.2

This command would process the data specified by [asl_data] with the list of inverstion times --tis used in the data collection. The resulting tissue perfusion map is registered into standard space by way of the structural image [struct_image] and structural to standard transformation matrix [struct2std_trans.mat]. Finally a calibrated perfusion map (in ml/100g/min) is produced using the calibration image [M0_calib] and an automatically generated CSF mask. In this case the output image(s) will be placed in the current directory.

This performs calibration to get CBF in physiological units using the supplied calibration image. More advanced calibration options (and the use of saturation recovery of the control images) can be achieved using asl_calib separately. Oxford_asl will try to register the resulting CBF image to the structural image if provided. It is very important to inspect whether the registration has worked by examining the final result. There are a couple of options that can improve the robustness of registration. Advanced custom registration can be done using the native_space results directly and either asl_reg or flirt.


The outputs from Oxford_ASL are a resting state perfusion image called perfusion.nii.gz, which provides blood flow in relative (scanner) units, and an arrival time image called arrival.nii.gz. If a calibration image has been supplied then a further image perfusion_calib.nii.gz is also produced, which is a flow map in absolute units (ml/100g/min).

If calibration was performed then a text file called M0b.txt will be created that saves the estimated M0 value from arterial blood. If a CSF mask was not supplied then the automatically generated one will also be saved in the output directory as csf_mask.nii.gz

A subdirectory is also created called native_space in which perfusion and arrival time images in the native resolution of the ASL data are saved. These are useful if you find the registration to be unsatisfactory, allowing a new registration to be performed without having to repeat the main analysis.


Typing oxford_asl with no options will give the basic usage information, the following is a more detailed version:

acquisition specific





To run BASIL on resting-state ASL data you will need:

Multi-step inference

BASIL runs in multiple steps increasing the model complexity at each stage. A rough overview of the process would be:

  1. STEP 1: Bayesian inference - Inference for CBF and arrival time (and optionally bolus duration)
  2. STEP 2+: Bayesian inference - further parameters of the model can be inferred from the data, see below.

Calling BASIL

BASIL can be called from the command line with the following information:

BASIL provides a number of options to access more advanced parts of the kinetic curve models:

BASIL also has a few more advanced options:

`-@` The parameter file

BASIL requires a text file in which you specify the model you want to use along with its parameters, plus information about the collected data. This information is passed directly to FABBER each time it is called. A generic BASIL options file might look like (preceding a line with # indicates it is a comment and will be ignored by FABBER):

# Sequence/scanner parameters

# Data information
--repeats=10 --ti1=0.25 --ti2=0.5 --ti3=0.75 --ti4=1.0 --ti5=1.25 --ti6=1.5 --ti7=1.75 --ti8=2.0

Resting-state ASL model

The Kinetic curve model for resting state ASL is built into FABBER and called by BASIL, for more information see:

Buxton, R. B., L. R. Frank, et al., 'A general kinetic model for quantitative perfusion imaging with arterial spin labeling', Magnetic Resonance in Medicine 40(3): 383-396, 1998.

By default BASIL assumes that your data is pulsed ASL (pASL), if you are using continuous (cASL) or pseudo continuous (pcASL) labelling then you should set the cASL option:

For the model you can set the appropriate values of T1 (and T1b) as well as the length of the bolus as set by your sequence, if these are not specified in the parameter file then the default values are used:


Alongside model information the parameter file also contains information about the data, including the inversion times and how many repeats at each inversion time is contained in the file: Currently we recommend that the repeated measurements at each TI are averaged to produce a single measurement (this can be achieved using asl_file) - this appears to produce an improvement in convergence in difficult voxels and also speeds up processing.

BASIL can process data in the unaveraged format: in which case it is assumed that the data comes with the individual time points in the 4th dimension, with repeats at each inversion time coming in blocks, manipulation of the data can be done using asl_file.

For example: the data contains 8 readings taken at 4 TIS (0.5, 1, 1.5, 2 seconds), repeated twice and is presented to BASIL with each TI grouped together

i.e. TI1 TI1 TI2 TI2 TI3 TI3 TI4 TI4

Hence the parameter file would contain

--ti1=0.5 --ti2=1 --ti3=1.5 --ti4=2 --repeats=2

NOTE that the number of TIs specified multiplied by the number of repeats should equal the number of time points in the 4D input data set.

It is possible to deal with more complicated data by specifying an individual --ti[n]= for every time point in the data, for the above example this would give:

--ti1=0.5 --ti2=0.5 --ti3=1 --ti4=1 --ti5=1.5 --ti6=1.5 --ti7=2 --ti8=2


Within the output directory a number of subdirectories will be created containing the results from FABBER from each step these comprise:

A function basil_var is also supplied that when applied to a basil results directory will work its way through all the steps extracting the images of variance for each parameter and writing it to var_{paramname}.nii.gz

Noise Model (Advanced option)

BASIL assumes that you wish to use a standard white noise model to analyse resting-ASL data. This model assumes that the noise in each voxel can be described by a single noise magnitude, this is sufficient in practice for most ASL data. If you are feeling adventurous (or have good reason) you may instruct FABBER to use different noise magnitudes for different sections of the input data, e.g. a different value at each inversion time. This is done in the parameter file using the --noise-pattern= option, which is used as follows: Taking the example of data with 4 TIs each repeated 5 times, to get a different noise magnitude at each inversion time use: --noise-pattern=11111222223333344444 i.e. the first 5 entries correspond to the first TI and these should use the first noise magnitude, the next 5 entries are the next TI and next noise magnitude etc. NOTE: if you have more than 9 TIs then for the 10th TI and onward letters should be used in place of numbers starting with a, i.e. for 12 TIs and 2 repeats: --noise-pattern=112233445566778899aabbcc NOTE: if you have only a small number of repeats (like these examples) then this more complex noise modelling is probably not a good idea.


QUASIL is a special implementation of BASIL specifically designed to exploit the features of QUASAR ASL data. It uses the same two component (tissue plus macro vascular signal) model that is employed by BASIL, but it has been extended to use all the information provided by the various phases for flow suppression provided by the QUASAR sequence. QUASIL uses information from the full QUASAR dataset to produce CBF images in absolute units (using an implementation of asl_calib). QUASIL also provides the option to performed a 'model-free' analysis using a very similar methodology as presented in the original QUASAR paper.

More information on the model used can be found in:

Chappell, M. A., Woolrich, M. W., Petersen, E. T., Golay, X., & Payne, S. J. (2012). Comparing model-based and model-free analysis methods for QUASAR arterial spin labeling perfusion quantification. Magnetic resonance in medicine. doi:10.1002/mrm.24372

More information on the model-free method can be found in the original QUASAR paper:

Petersen, E., Lim, T., & Golay, X. (2006). Model-free arterial spin labeling quantification approach for perfusion MRI. Magnetic resonance in medicine , 55(2), 219–232. doi:10.1002/mrm.20784


Since the acquisition of data using QUASAR is very well defined there are far fewer options to set with QUASIL than a typical BASIL analysis. NOTE that QUASIL expects the data without tag-control subtraction having been performed. A typical command line usage would be:

   1 quasil -i [asl_data] -o [output_directory]

This would carry out a model-based analysis of the ASL data and provide voxelwise estimates of CBF, arrival time and arterial blood volume (aBV). The calibration of the data to the equilibrium magnetization is also carried out as part of the processing so that the perfusion image is provided in absolute units (ml/100ml/min). Additionally, the perfusion image prior to calibration is also provided: perfusion_raw.

Typing quasil with no options will give basic usage information.

Extended options


The calibration is carried out by asl_calib and uses the saturation recovery of the control images. M0 of the tissue is estimated voxelwise from fitting a saturation recovery model and from this a voxelwise estimate of M0 of the blood is derived and applied to the estimated perfusion images. More details are given in the references above. An alternative is to calculate the M0 of CSF within a CSF mask and from this estimate a single value of M0 of arterial blood, as is done by oxford_asl by default. This can be achieved using asl_calib and the resulting M0 value applied to the perfusion_raw image.

Calibration (asl_calib)

ASL tag-control difference data can be used to quantify perfusion. However, the values obtained are not absolutely quantified in conventional units, to get absolute CBF quantification it is also necessary to estimate the equilibrium magnetization of arterial blood.

The M0 value for arterial blood can be estimated indirectly from a measurement in a reference 'tissue', such as the CSF, either:

asl_calib performs the necessary steps to obtain the M0 of blood value from such a calibration images. It can also:

asl_calib usage

Typing the asl_calib with no options will give the basic usage information, the following is a more detailed version:

Output options

Extended Options

Mode specific options



'Tissue' reference type

asl_calib will let you choose what 'tissue' you want to use as the reference. M0 is calculated within a mask of this 'tissue', as the mean over all the voxels within the mask. This option tells asl_calib which 'tissue' from the automatic segmentation as well as what T1 and T2(*) values should be used.

By default asl_calib uses CSF as the reference because it is relatively easy to segment and a mask can be defined containing a reasonable number of voxels that do not suffer substantial partial volume effects. The automated masking is optimized to extract CSF from the ventricles and thus is probably the best reference to use. White matter is a reasonable alternative as partial volume effects can be minimized to a good degree. Grey matter is generally not a good option for that reason.

Automatic reference 'tissue' mask

asl_calib attempts to automatically generate the reference 'tissue' mask from the structural image, unless you supply your own custom mask with the -m option. It does this using FAST, thus the normal caveats for segmentation when using that program apply, for example the structural image must already have been brain extracted.

Having a really perfect mask is not vital, since the calibration is performed over all the voxels within the mask. However, the mask needs to at least be sensible, hence it is a very good idea to check the mask created at the end to see if it is sensible. If asl_calib detects that after segmentation, transformation into ASL native space and thresholding, that there are no voxels in the mask it will halt and tell you that the automated method has failed.

Using M0 and sensitivity images to calculate absolute CBF

asl_calib can be instructed to save the M0 value and the sensitivity image (if calcuated) for subsequent use to calculate absolute CBF. Given an estimated CBF image, e.g. from BASIL, absolute CBF in ml/100g/min can be obtained using fslmaths:

For these calculations the CBF image should still be in the native resolution of the ASL data. The first option (with M0 only) will work with CBF images that have been converted to an another resolution, e.g. standard space.

Registration (asl_reg)

Registration of ASL data to standard space is difficult since the perfusion images are low resolution and nosiy - making the registration from perfusion to structural space tricky. By default registration is carried out on the estimated CBF image in multiple steps. Registration benefits from having a low resolution structural image with a similar resolution to the ASL data. Improved registration may be obtained by using the raw (undifferenced) ASL data as a basis for registration in place of the CBF image. This can be more robust since there may be better structural contrast in this image.

Data assembly & tag-control subtraction (asl_file)

asl_file allows for some basic file manipulation to get the data in a form suitable for oxford_asl. Primarily this will be to perform tag-control subtraction, but it may also be necessary to get the data into the right order and to take the mean of individual repeats within each TI.

It is possible to use sinc-subtraction rather than direct subtraction using the perfusion_subtract command. However, it is important to do this process individually within each TI (not in a single process on the whole data), this can be achieved using a combination of asl_file (to split the data up) and fslmerge to combine it back together after subtraction.


2012-09-05 11:30