Cancer Imaging Phenomics Toolkit (CaPTk)  1.3.0
For Developers

CaPTk is developed and maintained by the Center for Biomedical Image Computing and Analytics (CBICA) at the University of Pennsylvania, and draws upon research from several groups within the Center.

New applications, written in any programming language, can be integrated into CaPTk at different levels. These applications can then run within CaPTk, while having direct access to the full breadth of CaPTk’s interactive capabilities.

Almost every application of CaPTk has an accompanying command-line executable (with more on the way). Those programs can be called directly, making the CaPTk applications available as components within a larger pipeline or for efficient batch processing of large numbers of images.

We will provide the technical details of the Cancer Imaging Phenomics Toolkit (CaPTk) using which new applications can be integrated into the global framework and also optimize/improve the code. For any questions/details, please feel free to email CBICA Software.

Different layers of application integration in CaPTk
Applications written in any language can be integrated with CaPTk via calls to stand-alone command line executables, but deeper integration (including data passing via objects in-memory and access to full breadth of interactive capabilities of the CaPTk Console) is only possible with applications written in C++.


  1. The Graphical Layer is currently written on a Qt4 based framework on C++ for speed, stability and extensibility. Qt, thus, becomes the first dependency for compiling CaPTk. Qt was chosen because it is a well-known tool for developing GUI applications both in academia and also in industry.
  2. The basic file input/output operations are based on standard ITK I/O, thereby making it the second dependency. ITK was chosen on account of it being an industry and academic standard for developing medical image applications. It also has one of the most vibrant developer and user communities. Currently supported data formats are DICOM and NIFTI.
  3. Rendering the data is done using VTK, making it the third dependency. VTK has been specifically designed for medical image data and it utilizes various hardware rendering techniques which make applications developed on it very fluid.
  4. CMake is used to configure the project. This is the industry standard for cross-platform compilation.
  5. OpenCv
  6. A C++ compiler (we develop on MSVC/2013 and GCC/4.9.2).

Integrating your C++ application into CaPTk

Let’s say the name of your application is yourAwesomeApp. The following steps highlight the steps required for you to integrate your application into CaPTk:

Integrating your Python application into CaPTk

Let’s say the name of your application is yourPythonApp. The following steps give a brief high-level overview regarding the steps required for integrating it with CaPTk:

Next (People (Credit))