CBICA Toolkit  1.0.0
For Developers

Here we will provide the technical details of the CBICA Toolkit (CBICATk).

This information can be used to integrate new applications into the global framework and also optimize/improve the code. Right now, CBICATk supports C++ and Python as the programming languages using which different applications can be written.

If you want to write a class which works with the CBICA Toolkit, please make sure you follow the set guidelines of the code. A brief summary:

For basic classes:

  • As of now, there is no "default" interface (since functionality differs so wildly).
  • Make sure your class is well documented and a basic usage example is provided in the documentation (see cbica::CmdParser or cbica::Logging for examples)
  • Let's say your class' header file is cbicaXYZ.h, add it to the list of headers in itk_dev/src/classes/CMakeLists.txt (also add all other applicable files under headers or sources - this process of manual addition is intentional and in line with CMake guidelines).
  • Include cbicaITK_XYZ.h in the test executable itk_dev/src/classes/testing/BasicFunctionTests.cxx and write a specific test and debug the class as required (suggested method is to hard code the path for debugging).

For ITK classes:

  • If you are writing a class which takes a file as input, make sure you inherit from the cbica::CommonHolder class, which has a lot of pre-defined functionality and also a basic default interface.
  • Let's say your class' header file is cbicaITK_XYZ.h, add it to the list of headers in itk_dev/src/classes/itk/CMakeLists.txt (also add all other applicable files under headers or sources - this process of manual addition is intentional and in line with CMake guidelines).
  • Include cbicaITK_XYZ.h in the test executable itk_dev/src/classes/itk/testing/ItkFunctionTests.cxx and write a specific test and debug the class as required (suggested method is to hard code the path for debugging).

Please adhere to the package structure.