Task-based evaluation toolkit for Metal Artifact Reduction (MAR) in CT imaging (Annex GG Framework)
Project description
mar-eval
Objective Evaluation Toolkit for Metal Artifact Reduction (MAR) Algorithms in CT Imaging
mar-eval is an open-source Python toolkit that implements the analysis framework described in Annex GG of the proposed IEC 60601-2-44 Ed. 4.
It enables objective evaluation of Metal Artifact Reduction (MAR) algorithms in CT imaging using the Channelized Hotelling Observer (CHO), AUC-based detectability metrics, and bias assessment between MAR and non-MAR reconstructions.
Purpose
mar-eval supports regulatory, clinical, and technical validation of MAR performance by providing reproducible, quantitative methods for:
- Computing Area Under the ROC Curve (AUC) using CHO-derived decision variables
- Performing paired statistical comparison of MAR vs. non-MAR detectability
- Estimating confidence intervals and ΔAUC bias
- Enabling interoperability across CT simulators, physical phantoms, and regulatory test environments
Example Notebook
A runnable Jupyter Notebook, examples/mar_eval_demo.ipynb, walks through the full workflow described in Annex GG:
- GG.2 – Model Observer Task
Simulates lesion-present and lesion-absent image sets using Gaussian statistics. - GG.3 – Data Evaluation
Computes CHO decision values, ROC curves, and AUC estimates. - GG.4 – Statistical Comparison
Uses a one-tailed paired t-test to detect significant improvements in detectability. - GG.5 – Bias Assessment
Quantifies ΔAUC and confidence intervals to evaluate MAR-related bias.
Installation
Install directly from PyPI:
pip install mar-eval
Or, for the latest development version:
pip install git+https://github.com/cdc15000/mar-eval.git
Running the Example
# Clone the repository
git clone https://github.com/cdc15000/mar-eval.git
cd mar-eval
# Install dependencies
pip install -r requirements.txt
# Launch JupyterLab
jupyter lab
# Open and run the example notebook
examples/mar_eval_demo.ipynb
Output Example
The notebook produces AUC estimates and statistical comparison similar to:
AUC (no MAR): 0.484 CI: (0.423, 0.538)
AUC (with MAR): 0.504 CI: (0.445, 0.558)
ΔAUC = 0.020, p = 0.0005
Package Structure
mareval/
├── __init__.py
├── cho.py # CHO computation routines
├── stats.py # AUC, bias, and statistical testing
├── utils.py # Helper utilities
examples/
└── mar_eval_demo.ipynb
tests/
└── test_mareval_basic.py
Citation
If you use mar-eval in your research, please cite:
C.D. Cocchiaraley, Annex GG — Objective evaluation of Metal Artifact Reduction algorithms in CT imaging,
Proposed addition to IEC 60601-2-44 Ed. 4 (2025).
License
MIT License — see LICENSE for details.
Contributing
Contributions, issue reports, and pull requests are welcome.
Please open an issue or submit a PR with your proposed improvements.
© 2025 Christopher D. Cocchiaraley. All rights reserved.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mar_eval-0.1.1.tar.gz.
File metadata
- Download URL: mar_eval-0.1.1.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a44a5b462f909c2adfe80b688b82e782822aaca701f6e41cced89dc3458135e
|
|
| MD5 |
d33ca6257cb24b9b7ed93817de0ff49a
|
|
| BLAKE2b-256 |
de7ec8c36873bb0a518f0be138c3771f3192116dc544d7242a3f29ab54133ff2
|
File details
Details for the file mar_eval-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mar_eval-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d3017d42b63b94d0dba7ce804621da56859ccb13e703a6cd851090923a061b3
|
|
| MD5 |
bbe33637d8448760e45b1d11547be33d
|
|
| BLAKE2b-256 |
86ad2e0a720d8a69a28e5f05293347a08b74bd700939b3bb899ed182dd2ed71a
|