The Cerebral Blood Flow Biomedical Informatics Research Network (CBFBIRN) was a project to collect and share CBF data acquired using a magnetic resonance imaging (MRI)-based perfusion technique called arterial spin labeling (ASL).
The project’s current iteration consists of several processing scripts that intake p-files and DICOMs to produce BRIKs for further analysis.
To process your data, follows this sequence of execution in MATLAB:
SubjectSetupScript dofmapGEN processASLGEN2
Understanding Your Files¶
We recommend you take a look at your cfmricp_log.txt file to see what each of your files represent. An example is shown below, indicating your scans for the s-folders (DICOMs) and p-files (raw GE scanner data).
All MRI scans record the raw k-space data acquired by each of the receive coil (at CMFRI, either the 8ch or 32ch) channels during the scan. For many scans, the scanner itself converts this raw k-space data to DICOMs as output. Using certain tools, these DICOMs can be converted to formats like BRIK or NIFTI for research needs. For remaining scans, the raw k-space data is output as a p-file. These are typically “research-grade” scans that need external tools to convert into BRIK or NIFTI formats for further research use.
Subject Setup Script¶
The subject setup script is a MATLAB file where you specify:
- Data directory.
- Anatomical and Fieldmap DICOM folders.
- ASL, CSF, and MinCon p-files.
- Processed directory name.
- Name stems for output BRIKs.
Constructing Initial BRIKs and Fieldmap Correction - dofmapGEN¶
The dofmapGEN script first converts p-files to BRIKs, then applies fieldmap correction to those BRIKs. For example, the ASL data p-file is converted into aslbrik+orig.BRIK on the first step (the exact name would depend on the previous step’s setup script). After fieldmap correction, the output is called aslbrik+dbl+orig.BRIK (where +dbl stands for deblurring to indicate fieldmap corrected).
What is the purpose of fieldmap correction? This is an important step that can correct some artifacts in the data. Areas of the head like the sinuses tend to distort the local magnetic field. To the scanner, this causes signals to “look like” they’re coming from one area of the head while in reality they come from an area nearby. With spiral k-space acquisitions, this misattribution tends to cause bunching artifacts in the reconstructed image.
The fieldmap scan measures the magnetic field around the head. Fieldmap correction uses this data to estimate what the image should really look like - to “undo” the artifact as best it can.
Quantifying CBF - processASLGEN2¶
The processASLGEN2 script completes the quantification of CBF data. Overall, it writes out a number of additional outputs:
- ASL data after volume registration
- CSF data after alignment to ASL
- Anatomical data after alignment to ASL, skull-stripping, partial volume estimation, tissue segmentation
- CBF data
The exact CBF quantification processing depends on many factors, such as whether PASL (pulsed ASL) or PCASL (pseudocontinuous ASL) was used, background suppression was applied, voxel-wise vs reference tissue calibration, etc. Ultimately, the pipeline should CBF images like below.
Reference - Table of Outputs¶
|csfbriktcat1+orig.BRIK||Proton-density image used for calibration of CBF data. This ‘tcat’ output only exists if the CSF and ASL data are acquired in the same scan.|
|csfbrik+orig.BRIK||Proton-density image used for calibration of CBF data. This output only exists if the CSF data is acquired separately from the ASL data.|
|csfbrik+dbl+orig.BRIK||Fieldmap correction applied to csfbrik+orig.BRIK. This output only exists if the CSF data is acquired separately from the ASL data.|
|aslbrik+orig.BRIK||BRIK constructed from the ASL scan p-file|
|aslbrik+dbl+orig.BRIK||Fieldmap correction applied to aslbrik+orig.BRIK|
|aslbrik+dbltcat+orig.BRIK||The ASL data from aslbrik+dbl+orig.BRIK. This ‘tcat’ output only exists if the CSF and ASL data are acquired in the same scan.|
|minconbrik+orig.BRIK||Minimum contrast data used for coil sensitivity correction.|
|minconbrik+dbl+orig.BRIK||Minimum contrast data after fieldmap correction.|
|anat+nonRAI+orig.BRIK||The anatomical data.|
|anat+orig.BRIK||The same anatomical data but reoriented to RAI - 1st axis is R(-) to L(+), 2nd axis is A(-) to P(+), 3rd axis is I(-) to S(+).|
|aslbrik+dbltcat+reg+orig.BRIK||Volume registration applied to the ASL data using AFNI’s 3dvolreg. By default, it will register all timepoints to the middle repetition of the data. Note that if CSF and ASL are acquired in the same scan, this will be aslbrik+dbl+reg+orig.BRIK instead.|
|aslbrik+dbltcat+reg+motion||Motion parameters from applying 3dvolreg to the ASL data.|
|csfbriktcat1+reg+orig.BRIK||Proton-density image registered to the ASL data.|
|anat+reg+orig.BRIK||The anatomical data registered to the ASL data.|
|anat+reg_+orig.BRIK||The anatomical data anat+orig.BRIK refitted to the ASL data by centering their prescriptions.|
|anat+reg__ns+orig.BRIK||Skull-stripped output of anat+reg_+orig.BRIK using AFNI’s 3dSkullStrip.|
|anat+reg__ns_al+orig.BRIK||Skull-stripped and aligned/registered anatomical data (aligned to the ASL data) using AFNI’s align_epi_anat.py.|
|anat+reg__al_e2a_only_mat.aff12.1D||The alignment/registration matrix of the anatomical data to the ASL Data. Produced from AFNI’s align_epi_anat.py.|
|anat+reg+orig.BRIK||The anatomical data aligned to the ASL data.|
|anat+reg+rs+orig.BRIK||Resampled version of anat+reg+orig.BRIK to the ASL data voxel resolution. Produced from AFNI’s 3dResample.|
|anat+reg+stripped+orig.BRIK.||The anatomical data aligned to the ASL data and skull-stripped. Equivalent to anat+reg__ns_al+orig.BRIK|
|anat+reg+stripped+rs+orig.BRIK||Resampled version of anat+reg+stripped+orig.BRIK to the ASL data voxel resolution. Produced from AFNI’s 3dResample.|
|anat+reg+stripped+rs+mask+orig.BRIK||Brain mask derived from anat+reg+stripped+rs+orig.BRIK|
|anat+reg+gray+pv+orig.BRIK||Gray matter partial volume data from using FSL’s FAST.|
|anat+reg+gray+pv+rs+orig.BRIK||Gray matter partial volume data resampled to the ASL data voxel resolution, produced from AFNI’s 3dResample.|
|anat+reg+white+pv+orig.BRIK||White matter partial volume data from using FSL’s FAST.|
|anat+reg+white+pv+rs+orig.BRIK||White matter partial volume data resampled to the ASL data voxel resolution, produced from AFNI’s 3dResample.|
|anat+reg+csf+pv+orig.BRIK||Cerebral spinal fluid partial volume data from using FSL’s FAST.|
|anat+reg+csf+pv+rs+orig.BRIK||Cerebral spinal fluid partial volume data resampled to the ASL data voxel resolution, produced from AFNI’s 3dResample.|
|CBF+nomask+orig.BRIK||The cerebral blood flow (CBF) data calculated from the ASL and proton-density data. Units of mL/100g/min.|
|CBF+orig.BRIK||The CBF data masked by anat+reg+stripped+rs+mask+orig.BRIK. Units of mL/100g/min.|
|gm.txt||Average gray matter CBF, units of mL/100g/min. Gray matter voxels picked out by thresholding the GM PV data. By default, the threshold is 0.6 to be considered a GM voxel.|
|white.txt||Average white matter CBF, units of mL/100g/min. White matter voxels picked out by thresholding the WM PV data. By default, the threshold is 0.6 to be considered a WM voxel.|
|CBF_gm+rs+orig.BRIK||Gray matter CBF image produced via partial volume correction (PVC). This only exists if the pvc option is used.|
|CBF_wm+rs+orig.BRIK||White matter CBF image produced via partial volume correction (PVC). This only exists if the pvc option is used.|