Skip to content

Data processing pipeline that computes CVR from ASL and BOLD data.

Notifications You must be signed in to change notification settings

Jody-Todd/M2-PCASL-CVR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data processing pipeline to quantify cerebrovascular reactivity (CVR) from cerebral blood flow (CBF) or blood oxygen level-dependent (BOLD) MRI data.

Python MATLAB Bash

Overview

This pipeline takes CBF or BOLD timeseries and computes CVR using ther linear regression technique specified in Liu et al., 2019. CBF data is inherently noisy, so there is also a routine to compute CVR with CBF using a "block" method which averages CBF volumes over the baseline and activation time periods reducing noise.

image

$$ \text{BOLD CVR maps in units of } \% \Delta\text{BOLD/mmHg EtCO}_2 $$

Important Scripts

  • process_cvr_M2-PCASL-CBF.sh: master script that processes end-tidal $\text{CO}_2$ and BOLD or CBF data to compute CVR. It takes CBF or BOLD data, raw end-tidal $\text{CO}_2$ measurements, and the output directory name as inputs.
  • process_bold_smooth.m: extracts BOLD signal and performs spatial smoothing on BOLD images.
  • align_etco2.m: called by process_cvr_M2-PCASL-CBF.sh. Temporally aligns the end-tidal $\text{CO}_2$ to the BOLD signal.
  • calc_BOLDCVR.m: called by process_cvr_M2-PCASL-CBF.sh. Calculates BOLD CVR according to $\text{BOLD} = \beta_1 * \text{EtCO}_2 + \beta_0$ where $\text{CVR} = \beta_1/\beta_0$.
  • block_estimation.m: calculates CBF CVR according to

$$ \text{CVR} = 100 \times \frac{\frac{\text{CBF}_{hyp} - \text{CBF} _{baseline}}{\text{CBF} _{baseline}}}{\text{EtCO} _{2 _{hyp}} - \text{EtCO} _{2 _{baseline}}} $$

       where $\text{CBF} _{hyp}$ is the average CBF volume during hypercapnia, $\text{CBF} _{baseline}$ is the average CBF volume during room air breathing, $\text{EtCO} _{2 _{hyp}}$ is the average end-tidal $\text{CO}_2$ during hypercapnia, and $\text{EtCO} _{2 _{baseline}}$ is the average end-tidal $\text{CO}_2$ during room air breathing.

Workflow

  1. Convert dicoms to nifti format
  2. Copy dependencies (CBF, masks, etc.) from M2-PCASL-CBF outputs to M2-PCASL-CVR outputs
  3. Smooth end-tidal $\text{CO}_2$ data
  4. Spatially smooth BOLD data; CBF data left as is
  5. Temporally align end-tidal $\text{CO}_2$ data and BOLD signal
  6. Calculate either BOLD or CBF CVR
  7. Run a quality control on outputs

Helper Scripts

Some scripts in this repo are not part of the data processing pipeline but assist in statistical analyses and reliability studies.

  • icc_roi.py: calculates the intraclass correlation coefficient (ICC) from a region of interest (ROI) given repeated measures data. This script is important for ensuring that the data acquisition and processing pipelines are robust.
  • icc_map.py: calculates the ICC in each voxel as opposed to within an ROI. This requires the normalization of CBF maps to a standard space (MNI space).

About

Data processing pipeline that computes CVR from ASL and BOLD data.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages