Python Breast Dosage Calculator: PyBDC
Getting Started
General Information
PyBDC
Python toolkit for calculating dosage for breast CT.
GitHub repository: https://github.com/DIDSR/PyBDC
Developed by: Harsha Marupudi, M.Eng., Joseph Manus B.S., Bahaa Ghammraoui, Ph.D. US Food and Drug Administration, Center for Devices and Radiological Health, Office of Science and Engineering Labs, Division of Imaging, Diagnostics, and Software Reliability.
For more information please contact: Bahaa.Ghammraoui@fda.hhs.gov or Dhaval.Kadia@fda.hhs.gov (for issues with the toolbox).
Downloading the Files
To resolve any issues while cloning HuggingFace repository, you can follow the instructions on Getting Started with Repositories and install Git LFS. Then, you can clone it:
git clone https://huggingface.co/didsr/PyBDC-Container
Or use User Access Tokens (Read permission) and clone the respository with:
git clone https://{HUGGINGFACE_USERNAME}:{USER_ACCESS_TOKEN}@huggingface.co/didsr/PyBDC-Container
Installation
Both containerized and python package for the toolbox are availabe. Apptainer (https://apptainer.org/) is used for containerization process. The container package is developed for Unix based system. It is not readily available for Windows (can be used with VM). This section will help you to install the packages needed for PyBDC.
Install Container Application
Installation process of apptainer can be found here:
• Apptainer: https://apptainer.org/docs/admin/main/installation.html
Singularity can also be used to build or run the container. Installation process of Singularity can be found here
• Singularity: https://apptainer.org/user-docs/3.4/installation.html
Using the tool
Container
Using container commands (if the container file .sif is ready):
• If you are using the incident spectrum provided by PyBDC (from /usr/local/bin/PyBDC/incident_spectrum
inside the container), simply call the container file:
apptainer run PyBDC_container.sif
• If you are providing PyBDC an incident spectrum, create a new directory, and move into it; and bind that directory (or as a path) when you run the container. When you click the button "Upload Incident Spectrum File", you can access the content of that directory in /mnt
directory.
For an example, if you create directory called dir_spectrum
, you can bind it as below:
apptainer run --bind ./dir_spectrum:/mnt PyBDC_container.sif
OR
apptainer run --bind {ABSOLUTE_PATH}/dir_spectrum:/mnt PyBDC_container.sif
Using container commands (if the container file .sif needs to be rebuild):
• Assign the argument variable path_package the path to PyBDC between double quotation marks ("").
• Call the container recipe file (.def) to run and build the container. E.x.,
apptainer build --fakeroot --build-arg path_package="/PATH_TO_THE_PACKAGE" PyBDC_container.sif PyBDC_definition.def
• Then, follow the previously mentioned steps to run the container.
User guide
Please refer to the technical documentation https://pybdc.readthedocs.io/en/latest/