Glass Notebook CI Stable Coverage

CalciumScoring.jl is a Julia package for calculating coronary artery calcium scores from CT images using different quantification algorithms. The main function is score() which calculates the calcium mass within a CT scan. See the documentation for more details.


graph TB
    classDef unique1 fill:#f9d71c,stroke:#333,stroke-width:2px;
    classDef unique2 fill:#8cd9f5,stroke:#333,stroke-width:2px;
    A["Overview: Four Different CAC Quantification Methods"]
    A --> AgatstonRegime
    A --> CalciumMassRegime
    subgraph AgatstonRegime["Agatston Scoring Regime"]
        B["Agatston Scoring"]
        E["Spatially Weighted Calcium Scoring"]
    subgraph CalciumMassRegime["Calcium Mass Quantification Regime"]
        C["Volume Fraction Calcium Mass"]
        D["Integrated Calcium Mass"]
    class B,C,D,E unique2;
  • Handles scan calibration and voxel spacing information
  • Accounts for different tube voltages and intensity thresholds
  • Easy to use score() function


using Pkg


The general workflow is:

  1. Prepare the region of interest from the CT image
  2. Gather scan information like voxel size, spacing, calibration intensity, etc
  3. Call score() with the ROI, scan info, and desired algorithm
    graph TB
        A["1. Prepare Region of Interest"] --> B["2. Gather CT Scan Info"]
        B --> C["3. Calculate Calcium"]

For example, calculating the amount of calcium via Agatston scoring looks like:

# 1
roi = ct_scan .* coronary_artery_mask

# 2
spacing = [1, 1, 1]
mass_cal_factor = density_cal / intensity_cal

# 3
agatston_score, volume_score, mass_score = score(roi, spacing, mass_cal_factor, Agatston())

The score() function takes the region of interest, voxel spacing, mass calibration factor, and an Algorithm specifying which algorithm to use.


The main algorithms available are:

  • Agatston(): Traditional Agatston scoring
  • VolumeFraction(): Volume fraction calcium mass
  • Integrated(): Integrated calcium mass
  • SpatiallyWeighted(): Spatially weighted calcium scoring


CalciumScoring.jl implements methods from:

  1. Quantification of coronary artery calcium using ultrafast computed tomography
  2. Ultra-low-dose coronary artery calcium scoring using novel scoring thresholds for low tube voltage protocols—a pilot study
  3. Coronary artery calcium mass measurement based on integrated intensity and volume fraction techniques
  4. Integrated intensity-based technique for coronary artery calcium mass measurement: A phantom study
  5. An alternative method for quantifying coronary artery calcification: the multi-ethnic study of atherosclerosis (MESA)
  6. Spatially Weighted Coronary Artery Calcium Score and Coronary Heart Disease Events in the Multi-Ethnic Study of Atherosclerosis