Link

Calculate Fibrosis Burden

Table of contents

  1. Background
  2. Quickstart
  3. Dependencies
  4. Process
  5. Publications using this code

Background

This page describes one method for calculating fibrosis burden, for example to calculate the percentage of the left atrium with a fibrosis burden greater than a threshold.

The technique used is the image intensity ratio [REF] where the threshold chosen is image intensity ratio x mean left atrial blood pool signal intensity.

Quickstart

% set up variables
vtkFile = <path to vtk file>
prodStatsFile = <path to prodStats file>
iir = 0.1:0.1:2.0;
% run imageIntensityRatioFibrosisBurden.m
[fibrosisBurden, threshold] = imageIntensityRatioFibrosisBurden(vtkFile,prodStatsFile,iir);
plot(iir,fibrosisBurden);

Dependencies

The analysis runs entirely in Matlab based on the WLC library. In particular

  • thresholdVtkArea.m

Process

This protocol depends on thresholdVtkArea.m which accepts a VTK file and a threshold range and calculates the surface area of the shell described in the VTK file which has scalar parameter values within a min/max range.

It is possible to use either point data or cell data with thresholdVtkArea.m by setting the 'pointorcell' input parameter-value pair to either 'point' or 'cell', respectively.

Since we want to know, usually, the area of the shell with a signal intensity greater than a threshold; we set the 'threshold' input parameter to [iir Inf] which will return the area with signal intensity greater than iir and less than Inf.

Since the image intensity ratio process uses the blood pool mean as a reference, we also want to know the actual thresholds used for calculating area; these are return as the second output argument of imageIntensityRatioFibrosisBurden.m

The following code can be used to batch-process a folder of VTK and associated prodstats files.

dir = <pathname>; % specify folder

vtkFiles = nameFiles(dir, 'extension', 'vtk');
txtFiles = nameFiles(dir, 'extension', 'txt');
iir = 0.1:0.05:3.0;
fibrosisBurden = NaN(numel(vtkFiles),numel(iir));
h = waitbar(0,'Please wait ...');
for i = 1:numel(vtkFiles)
    [fB, ~] = imageIntensityRatioFibrosisBurden([dir filesep() vtkFiles{i}],[dir filesep() txtFiles{i}],iir);
    fibrosisBurden(i,:) = fB;
    waitbar(i/numel(vtkFiles),h);
end

A similar implementation is included in run_imageIntensityRatioFibrosisBurdenExperiment.m which also will output a graph.

Publications using this code