Digital Pediatric Image Quality Phantoms for Evaluating CT Denoising Methods are a set of digital phantoms and simulation methods for generating CT images of standard image quality (IQ) phantoms designed to span the effective diameter of pediatric patients ranging from newborns to teenagers. This repository has tools for generating MITA-LCD phantom and a multi-contrast sensitometry module similar to the CTP404 module of the Catphan 600 phantom. Functions are also provided to simulate different acquisition parameters and CT scanner models.
- The CTP404 contrast module phantom for assessing CT number accuracy and contrast-dependent spatial resolution
- CCT189 the MITA LCD phantom for assessing low contrast detectability
- Uniform water phantoms for assessing noise and noise texture
In addition, this repo contains examples of measurements using these digital image quality phantoms including:
- running simulations interactively with python
- viewing the simulated dataset
- evaluating pediatric generalizability of denoisers
Example from the uniform phantom denoising performance assessment notebook demonstrating the pediatric subgroup denoising performance of a RED-CNN image-based deep learning denoiser using the pediatricIQphantoms dataset
- demonstrates command line usage including simulating different scanner configurations and acquisition protocols
- run with bash demo_01_phantom_creation.sh
Installation is only required to generate new datasets, a pregenerated dataset can be downloaded from Zenodo, only proceed if you want to generate new simulated datasets.
Requirements
- Conda package manager e.g. Miniconda
- Mac, Linux, or Windows Subsystem for Linux (WSL) operating systems described on the Octave Conda Forge page. This package currently uses the Octave-based Michigan Image Reconstruction Toolbox (MIRT)
Installation
git clone https://github.com/DIDSR/pediatricIQphantoms
cd pediatricIQphantoms
conda env create --file environment.yml
conda activate pediatricIQphantoms
The code block above does the following in 4 lines:
- Git clones the pediatricIQphantoms repository
- Changes the active directory to the repo
- Creates a new conda environment called "pediatricIQphantoms"
- Activates the conda environment. This makes the phantom creation library pediatricIQphantoms accessible in scripts (see examples) and via command line calls (see demo 01 and demo 02).
Test the Installation
pytest
This runs the unit tests to verify that installation was successful.
Running Notebooks
To run the computational notebooks you will need to have jupyter installed
conda install jupyterlab -y
pediatricIQphantoms `Documentation`_ provides further details on the rationale, usage, and examples for how to use the pediatric IQ phantoms, (available to download and use directly from Zenodo) or generate new phantom instances using the provided phantom generation functions.
Several examples are provided on how to use these functions:
- Check out the usage section for detailed information on customizing dataset running_simulations.
- See the tests directory for simple script examples
- Computational notebooks have also been provided to demonstrate how to use pediatricIQphantoms dataset including:
Issue Tracker | Source Code | Contributing Guide
For questions that cannot be addressed in the supporting Documentation
If you are having issues, please let us know. brandon.nelson@fda.hhs.gov; rongping.zeng@fda.hhs.gov
This software and documentation (the "Software") were developed at the Food and Drug Administration (FDA) by employees of the Federal Government in the course of their official duties. Pursuant to Title 17, Section 105 of the United States Code, this work is not subject to copyright protection and is in the public domain. Permission is hereby granted, free of charge, to any person obtaining a copy of the Software, to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, or sell copies of the Software or derivatives, and to permit persons to whom the Software is furnished to do so. FDA assumes no responsibility whatsoever for use by other parties of the Software, its source code, documentation or compiled executables, and makes no guarantees, expressed or implied, about its quality, reliability, or any other characteristic. Further, use of this code in no way implies endorsement by the FDA or confers any advantage in regulatory decisions. Although this software can be redistributed and/or modified freely, we ask that any derivative works bear some notice that they are derived from it, and any modified versions bear some notice that they have been modified.