Getting started
Requirements
For phantom generation
cmake 3+
gcc/g++
VTK library
Lapack library
boost library
For phantom compression
FEBio
gcc/g++
cmake 3+
VTK library
Lapack library
boost library
For mass generation
gcc/g++
cmake 3+
VTK library
Lapack library
boost library
For MCGPU projection
CUDA 10.4+
NVIDIA GPU (8GB+ recommended)
gzip
(Optional) openMPI
For reconstruction
gcc/g++
For the unified pipeline script
Python 3.6+
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 numpy scipy termcolor progressbar2 h5py pydicom
Note
You might need to use
pip3
instead ofpip
.
Download FEBio 2.x from the official website <https://febio.org/febio/febio-downloads/> 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"
Note
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.
Usage
Copy the examples files to the parent folder and run them in a GPU-enabled machine with CUDA:
python example1.py
Note
You might need to use
python3
instead ofpython
.
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.
p_1.raw.gz
: original phantom modelpc_1.raw.gz
: compressed phantom modelpc_1_crop.raw.gz
: cropped compressed phantom modelpcl_1.raw.gz
: compressed original phantom model with the inserted lesionspcl_1.loc
: file containing the coordinates of the inserted lesions in the phantom modelLast number is the lesion type:
1
for calcification clusters,2
for masses
projection_DM1.raw
: contains the DM projection in raw formatreconstruction1.raw
: contains the DBT reconstruction in raw formatROIs.h5
: contains the lesion-present and lesion-absent regions of interest.ROIs
: subfolder will also contain the ROIs in raw format (size is specified in the code,109 x 109 x 9
in the examples)ROI_DM_XX_typeT
: DM cropped image for lesion numberXX
of lesion typeT
(absent regions will haveT < 0
)ROI_DBT_XX_typeT
: DBT cropped volume for lesion numberXX
of lesion typeT
(absent regions will haveT < 0
)T = 1
for calcification clusters,T = 2
for masses
Note
All
raw
files are acompanied by an.mhd
file that contains the size information. The.mhd
file can be opened in software like ImageJ.