Perfusion quantification in Tumours using Multi-PLD pCASL¶
Before we do any data processing, this is a quick orientation guide to Quantiphyse if you’ve not used it before. You can skip this section if you already know how the program works.
If you are taking part in an organized practical workshop, the data required may be available in your home
directory, in the
course_data/ASL_IMAGO folder. If not, an encrypted zipfile containing the data can be
downloaded below - you will be given the password by the course organizers:
To extract the 7zip archive on Linux, download and then use the command
7z x IMAGOASL_Michigan.7z
Start by loading the ASL data into Quantiphyse - use
File->Load Data or drag and drop to load
mpld_asltc.nii.gz. In the
Load Data dialog select
The data should look as follows:
The left part of the window contains three orthogonal views of your data.
- Left mouse click to select a point of focus using the crosshairs
- Left mouse click and drag to pan the view
- Right mouse click and drag to zoom
- Mouse wheel to move through the slices
- Double click to ‘maximise’ a view, or to return to the triple view from the maximised view.
The right hand side of the window contains ‘widgets’ - tools for analysing and processing data. Three are visible at startup:
Volumesprovides an overview of the data sets you have loaded
Data statisticsdisplays summary statistics for data set
Voxel analysisdisplays timeseries and overlay data at the point of focus
Select a widget by clicking on its tab, just to the right of the image viewer.
More widgets can be found in the
Widgets menu at the top of the window. The tutorial
will tell you when you need to open a new widget.
For a slightly more detailed introduction, see the Getting Started section of the User Guide.
In this section we will quantify perfusion for the dataset just loaded.
This dataset used pCASL labelling, with a duration of 1.8 seconds, and 5 post-labeling delays of 0.4, 0.8, 1.2, 1.6 and 2.0 seconds. The label-control ASL series contains 60 volumes, with each PLD repeated 6 times, thus there are 12 volumes (label and control paired) each PLD. The data is in the order that it was acquired, which will be important for setting up the analysis.
Widgets->ASL->ASL Data Processing widget. We do not need to set all the details of the
data set yet, however note that the data format is (correctly) set as
Click on the
Generate PWI button. This performs label-control subtraction and averages the
result over all repeats. The result is displayed as a colour overlay, which should look like a
We can improve the display a little by adjusting the colour map. Find the overlay view options below the main image view:
Next to the
Color Map option (which you can change if you like!) there is a levels button
which lets you change the min and max values of the colour map. Set the range from
Values outside range to
Ok. The perfusion weighted image should now be clearer:
You could also have modified the colour map limits by dragging the colourmap range widget directly - this is located to the right of the image view. You can drag the upper and lower limits with the left button, while dragging with the right button changes the displayed scale. You can also customize the colour map by clicking on the colour bar with the right button.
Dragging the colourmap is a little fiddly due to a GUI bug. Before trying to adjust the levels, drag down with the right mouse button briefly on the colour bar. This unlocks the automatic Y-axis and will make it easier to drag on the handles to adjust the colour map.
Looking at the
ASL data processing widget we used to generate the PWI, you can see that this
is a multi-page widget in which each tab describes a different aspect of the analysis pipeline.
We start by inputing the information on the first page which describes the ASL data. The defaults are shown below but we will need to change some of them to correctly describe our ASL acquisition.
Firstly, we need to enter the 5 PLDs in the PLDs entry box – these can be separate by spaces or commas. We also make sure the label duration is set to 1.8s:
The data was acquired in label-control pairs (the default setting), and grouped by repeats. We need
to change the
Data Grouped By option to
Repeats to reflect this. Below this selection there
is a graphical illustration of the structure of the data set:
The data set volumes go from left to right. Starting with the top line (blue) we see that the data set consists of 6 repeats, and within each repeat there are 5 TIs (red), each with a label and control image (green).
Below the grouping diagram, there is a visual preview of how well the actual data signal matches what would be expected from this grouping. The actual data signal is shown in green, the expected signal from the grouping is in red, and here they match nicely, showing that we have chosen the correct grouping option.
If we change the Data Grouped By option to TIs (incorrect) we see that the actual and expected signal do not match up:
We can get back to the correct selection by clicking
Auto Detect which chooses the grouping which gives
the best match to the signal.
Another way to determine the data ordering is to select the
Voxel Analysis widget and click on a GM
voxel, which should clearly show 6 groups of repeats. Each of the 6 peaks represents a single repeat
across all 5 PLDs, the zig-zag pattern of the label-control images are visible for each PLD.
Returning to the ASL data processing page, we need to finalise our acquisition details. The labelling method is correctly set to cASL/pCASL, however we have a 2D readout with 45.2 ms between slices, so we need to change the Readout option to reflect this. When we select a 2D readout, the option to enter the slice time appears automatically.
In this section we invert the kinetics of the ASL label delivery to fit a perfusion image, and use the calibration image to get perfusion values in the units of ml/100g/min.
Firstly, on the
Corrections tab, we will ensure that
Motion Correction is checked (this should
be enabled by default):
Due to potential challenges with MNI registration in the presence of tumour, we will work in the
subject’s native space, thus skip the
Structural data tab, and instead move on to
use calibration we first need to load the calibration image data file from the same folder containing
the ASL data - again we can use drag/drop or the
File->Load Data menu option to load the
aslcalib.nii.gz- Calibration (M0) image
csfmask.nii.gz– CSF mask in subject’s native space
csfmask data ensure that this is loaded as an
ROI in the data type selection box. If you
forget to do this, you can modify it from the
Volumes widget - click on the data set in the list
and click the
Toggle ROI button.
Calibration tab we will set the calibration method as
Reference region, and will need to select
the calibration image we have just loaded:
aslcalib. The TR for this image was 5.48s, so click on the
Sequence TR checkbox and set the value to
5.48. Similarly, click on the
Sequence TE checkbox and set the
14.0. Finally, change the
Inversion efficiency to
0.85 as we are using pCASL (the
GUI is set to the PASL default of 0.98).
Reference region calibration box we will select the CSF
option, and set the
Custom reference ROI to the
csfmask ROI which we have just loaded.
In the interest of time, this CSF mask has been made manually ahead of time, and provides a conservative mask within the ventricles.
Analysis tab the defaults do not need altering in this instance, except to turn the macrovascular component
We will not change the defaults on the
Output tab yet, but will select
Save HTML report. Click
Choose to set the output folder.
We are now set up to run the analysis - but before you do, check the green box at the bottom of
the widget which reports where it thinks FSL is to be found. If the information does not seem
to be correct, click the
Change button and select the correct location of your FSL
installation (if you are in an organized practical this should be correct).
As an additional step, you may want to save your output data. You can of course save the output data from your analysis
after it has run using
File->Save Current Data, however it’s often useful to have all the output saved automatically for
you. By selecting
Save copy of output data (underneath the Run button) and choosing an output folder, this will be done.
Run at the bottom to run the analysis. You can click the
View Log button
to view the progress of the analysis which should only take a few minutes.
Once the analysis had completed (~5 mins), some new data items will be available. You can display them either
by selecting them from the
Overlay menu below the image display, or by clicking on the
Volumes widget and selecting them from the list. The new data items are:
perfusion_native- Raw (uncalibrated) perfusion map
perfusion_calib_native- Calibrated perfusion data in ml/100g/min
arrival_native- time it takes for blood to transit between the labeling and imaging regions.
mask_native- An ROI (which appears in the ROI selector under the image view) which represents the region in which the analysis was performed.
We can view these outputs within the brain mask only, by selecting
mask_native from the ROI dropdown.
The images may be clearer if we modify the view style for the ROI from
Contour (in the
ROI options box underneath the image view). This replaces the translucent red mask with an outline:
perfusion_calib_native image should look similar to the perfusion weighted image we created
initially, however the data range reflects the fact that it is in physical units. To get a clear
visualustion set the colour map range to 0 – 60, and clamping to min/max using the Levels button .
You can also select
Only in ROI as the
View option just above this so we only see the perfusion map within the
The result should look something similar to below. Notice that you can see a ring of perfusion enhancement near the midline, this is consistent with tumour location, and gadolinium enhancement.
As well as outputting images, Quantiphyse will attempt to open the analysis report in your default web
browser when the pipeline has completed, but if this does not happen you can navigate to the directory
yourself and open the
Below is an example of the information included in the report:
The links are arranged in the order of the processing steps and each link leads to a page giving more detail on this part of the pipeline. For example, if we click on the perfusion image link we get a sample image, which can be to check that the analysis seems to have worked as expected. Here, the mean within mask is not as informative as it might be for a healthy brain, as we are likely averaging in hypoperfused regions.
You may want to see how well the perfusion map corresponds to the tumour visualised on a typical anatomical
image. You can load the patient’s gadolinium-enhanced T1-weighted scan using
File->Load Data and
In order to overlay images on top of this structural image, check the
Set as main data
box when loading:
If you forget to do this you can also select the
Volumes widget, click on the
MPRAGE_Gd image and click
Set as main data button.
After setting the anatomical image as the main data you, other images selected from the
will be overlaid on top, for example the calibrated perfusion map:
Alpha slider in the overlay box can be used to adjust the transparency of the overlay and compare to
the anatomical image underneath.
You should be able to see that the T1 enhancing rim of the tumour corresponds to a region of increased perfusion. We could go on to load ROI’s of the tumour and contralateral tissue to quantify this, however it is beyond the scope of this tutorial.
These visualisations work best when
Only in ROI is selected as the overlay view option.