[ANN] Announcing CalciumScoring.jl: Calculating Coronary Artery Calcium Scores from CT Images

I am excited to introduce CalciumScoring.jl, a Julia package designed to calculate coronary artery calcium scores from CT images using various quantification algorithms. You can easily calculate the calcium mass within a CT scan using the score() function. Detailed documentation is available to help you get started, which utilizes our new Pluto publishing product.

Glass Notebook


  • Four Different CAC Quantification Methods: Agatston Scoring, Spatially Weighted Calcium Scoring, Volume Fraction Calcium Mass, Integrated Calcium Mass.
  • Easy-to-use Function: Utilize the score() function to calculate calcium scores easily with any of the four algorithms.


The coronary artery calcification (CAC) score plays a vital role in predicting and diagnosing coronary heart disease, the leading cause of death in the United States and the third worldwide. Traditional Agatston scoring, although widely used, has revealed significant limitations in its accuracy, especially in cases with no apparent calcium buildup. New approaches like spatially weighted calcium scoring have been introduced to improve upon thresholding challenges, yet limitations remain. My recent papers [3, 4] have introduced two new calcium scoring approaches. This package provides all of the available calcium scoring algorithms in a simple score() function, making it simple to try out different algorithms on your data.


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

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 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

Note that the mermaid diagrams in the Glass Notebook docs are not rendered perfectly. This will hopefully be fixed soon.