Home

Awesome

DOI

VICTRE AUTOMATIC PIPELINE


Virtual Imaging Clinical Trial for Regulatory Evaluation

Clinical trials are expensive and delay the regulatory evaluation and early patient access to novel devices. In order to demonstrate an alternative approach, a recent effort at the Division of Imaging, Diagnostics, and Software Reliability at the U.S. Food and Drug Administration (known as the VICTRE project) demonstrated the replication of one such clinical trial using completely in-silico tools and compared results in terms of imaging modality performance between the human trial and the computational trial. The VICTRE trial involved imaging approximately 3000 digital breast models in digital mammography and digital breast tomosynthesis system models. On this page we are making all the in silico components of VICTRE freely available to the community.

Note: All code is under CC0 (Creative Commons 1.0 Universal License) except for the FBP code that is a derivation of a GPL3 code and remains as GPL3.

VICTRE team: Aldo Badano, Ph. D., Christian G. Graff, Ph. D., Andreu Badal, Ph. D., Diksha Sharma, M. Sc., Rongping Zeng, Ph. D., Aunnasha Sengupta, Miguel A. Lago, Ph. D., Frank W. Samuelson, Ph. D., Stephen Glick, Ph. D., and Kyle J. Myers, Ph. D.

Disclaimer

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.

The VICTRE pipeline

The code included in this repository will allow you to compile and execute the full VICTRE pipeline including:

  1. Breast phantom generation (source, documentation)
  2. Breast phantom compression (source, documentation)
  3. Breast phantom cropping
  4. Mass generation (source, documentation)
  5. Lesion insertion
  6. MCGPU projection (source and documentation)
  7. DBT reconstruction (source, documentation)
  8. Lesion-absent and lesion-present ROI extraction

Documentation

Full documentation can be found here: https://didsr.github.io/VICTRE_PIPELINE/

Requirements

Installation

Before proceeding, make sure you have all the requirements listed above. You can also install the required libraries using this:

sudo apt-get install cmake vtk7 libvtk7-dev libblas-dev liblapack-dev libopenmpi-dev libboost-dev libboost-program-options-dev libproj-dev zlib1g-dev gzip

Clone the repository

git clone https://github.com/DIDSR/VICTRE_PIPELINE

Execute the installation script:

source install.sh

Follow the instructions and compile the 5 parts. You might need to edit the install.sh file to change the route of some libraries at the beginning.

Install the required python libraries:

pip install -r requirements.txt

You might need to use pip3 instead of pip.

Download FEBio 2.x from the official website as a standalone executable and add it to the path (replace {{{routetofebio}}} with the path to your FEBio installation on this line):

export PATH="$PATH:{{{routetofebio}}}/FEBio-2.9.1/bin"

You can also add that line to your .bashrc file to make it permanent. Note the version number for FEBio on the path, it might be different. FEBio 3.x might also work but has not been tested.

Usage

Copy the examples files to the parent folder and run them in a GPU-enabled machine with CUDA:

python example1.py

You might need to use python3 instead of python.

Each example file starts the pipeline from a different step, use example1.py to start from the phantom generation (it will need hours to complete), use example5.py to start from the projection step (it will finish in about ~10 minutes depending on your computer). When finished, you will find the results in the results folder under the 1 subfolder.

File NameDescription
p_1.raw.gzoriginal phantom
pc_1.raw.gzcompressed phantom
pc_1_crop.raw.gzcropped compressed phantom
pcl_1.raw.gzcompressed original phantom with the inserted lesions
pcl_1.locfile containing the coordinates of the inserted lesions in the phantom (last number is the lesion type: 1 for calcification clusters, 2 for masses)
projection_DM1.rawcontains the DM projection in raw format
reconstruction1.rawcontains the DBT reconstruction in raw format
ROIs.h5contains the lesion-present and lesion-absent regions of interest
ROIssubfolder will also contain the ROIs in raw format (size is specified in the code, 109 x 109 x 9 in the examples, T = 1 for calcification clusters, T = 2 for masses)
ROIs\ROI_DM_XX_typeTDM cropped image for lesion number XX of lesion type T (absent regions will have T < 0)
ROIs\ROI_DBT_XX_typeTDBT cropped volume for lesion number XX of lesion type T (absent regions will have T < 0)

All raw files are acompanied by an .mhd file that contains the size information. The .mhd file can be opened in software like ImageJ

File list

The organization of the Victre pipeline python class is as follows:

File NameDescription
Pipeline.pyMain python class including all code necessary to run the Victre pipeline
Constants.pyHelper file that includes default parameters for all the steps of the pipeline
Exceptions.pyHelper file that defines Victre exceptions
breastMassFolder including the breastMass software, needs to be pre-compiled
compressionFolder including the breastCompress software, needs to be pre-compiled
generationFolder including the breastPhantom software, needs to be pre-compiled
projectionFolder including the MC-GPU software, needs to be pre-compiled
reconstructionFolder including the FBP software, needs to be pre-compiled
ModelObserverFolder including the Model Observer class

See the examples and documentation to know more about the usage of the Victre pipeline.

This code is currently in development, use with caution.