PCT (Proton Computed Tomography) is a toolkit used to process proton CT data and reconstruct proton stopping power maps. PCT is written both in C++ and Python, and is designed to be used either as a code library, or with command-line applications.
PCT can be installed from source from its git repository hosted at GitHub. The command to clone the repository is:
git clone https://github.com/RTKConsortium/PCT.git
Configuration and compilation is handled via CMake. Configuration can be achieved using
cmake path/to/source/folder # where PCT was cloned
or using a graphical tool such as ccmake
. Once configuration completes, the compilation can be achieved using
make
Keep in mind that make
can be sped-up using the -j
option, allowing to parallelize the compilation, for instance using make -j 4
if your computer has 4 cores.
Optionally, PCT can be added to the user's $PATH
variable using for instance
export PATH=path/to/build/folder:${PATH} # where PCT was built
in the user's .bashrc
file.
Some functionalities of PCT require GATE to run. Instructions on how to install GATE can be found in the GATE documentation. An example of proton CT GATE simulation can be found here.
Usage of each PCT application can be described using the --help
/-h
option. For instance, running
pctfdk --help
displays the help for pctfdk
.
Reconstruction typically involves the following steps:
pctpairprotons
in order to arrange ROOT data in a format described here.pctpaircuts
in order to remove nuclear collisions.pctbinning
in order to compute the distance-driven binning as described here.pctfdk
in order to reconstruct the data generated in the previous step using distance-driven FDK (as described here).
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.