Check out from github:
git clone git://github.com/pnlbwh/ukftractography.git
Teem is a coordinated group of libraries for representing, processing, and visualising scientific raster data. We use it to read, and process The input data of type NRRD.
The Boost C++ Libraries are a collection of free libraries that extend the functionality of C++. In this project boost is used for multithreading, and the progress bar.
Insight Segmentation and Registration Toolkit (ITK). ITK is an open-source, cross-platform system that provides developers with an extensive suite of software tools for image analysis. In this application we only use the underlying vnl libraries for most of the linear algebra processing. It replaces functionality that was done with LAPACK before.
The Execution Model provides a simple mechanism for incorporating command line programs as Slicer modules. These command line modules are self-describing, emitting an XML description of its command line arguments. Slicer uses this XML description to construct a GUI for the module. We use it to make our application into a Command Line Module that can be run from Slicer, or from a Consolse without being dependand on Slicer.
There are 3 ways to build this project from source, as a stand alone superbuild, against a Slicer 4 build, and as a Slicer 4 extension build (which is more of a test than anything).
a) Standalone Superbuild
cd <build-dir> cmake <path-to-source>/superbuild make
b) Build with Slicer4
cd <build-dir> cmake -DSlicer_DIR=<path-to-Slicer4-Superbuild>/Slicer-build <path-to-source> make
c) Build as Slicer4 extension
successfully)
mkdir s4ext_build cd s4ext_build ccmake -DSlicer_DIR=$soft/slicer/Slicer4-Superbuild2/Slicer-build -DSlicer_EXTENSION_DESCRIPTION_DIR:PATH=$soft/ukftractography/ukf_tractography $soft/slicer/Slicer4/Extensions/CMake make
Extension build, test, package and upload using ExperimentalUpload target (https://github.com/Slicer/ExtensionsIndex#extension-build-test-package-and-upload-using-experimentalupload-target):
cd s4ext_build cd ukf_tractography-build cmake -DMIDAS_PACKAGE_URL:STRING=http://slicer.kitware.com/midas3 -DMIDAS_PACKAGE_EMAIL:STRING=<EMAIL> -DMIDAS_PACKAGE_API_KEY:STRING=<API KEY> . make ExperimentalUpload
This application complies with the Slicer Execution Model, and is thus able to be run both as a module in Slicer and as an independent console application.
This module may also be downloaded from Slicer 4's Extension manager. Once installed it can be found under category Diffusion->Tractography. (See the slicer wiki: http://www.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/UKFTractography)
When run from the console, a list of available parameters and their meanings can be displayed with the command
ukf --help
Of all the parameters, three are necessary to run the tractography: a NRRD file containing the DWI data, a NRRD label file defining the mask/volume of the brain, and a VTK file used to output the tractography results. All the other parameters are optional.
The source code includes a file called 'sample_run.sh', which gives an example of how to use UKFTractography from command line.
The code of UKFTractography comes with a vast amount of options, and parameters. The help text gives a good overview over all available options. Additionally, all option are documented here.
The trunk contains a folder 'documentation', which contains the documentation of the main project in HTML format. Open index.html with an internet browser to view.
The application is multi-threaded to take advantage of the computation power of multi-core architectures.
As is proposed by Stefan Lienhard, the coding style followed in this project is Google C++ Style Guide