BRAINSTools

A suite of tools for medical image processing focused on brain analysis

View the Project on GitHub

The BRAINSTools project is a harness to assist in building the many BRAINSTools under development.

Building

Example session for a clean build on Linux using gcc-4.2:

DIRECTORY=~/src/mytester
mkdir ${DIRECTORY}
cd ${DIRECTORY}
git clone https://github.com/BRAINSia/BRAINSTools.git

For developers:

cd ${DIRECTORY}/BRAINSTools/
bash ./Utilities/SetupForDevelopment.sh

Finally:

mkdir -p ${DIRECTORY}/BRAINSTools-build
cd ${DIRECTORY}/BRAINSTools-build/
CC=/usr/bin/gcc-4.2 \
CXX=/usr/bin/g++-4.2 \
ccmake ../BRAINSTools \
-DUSE_BRAINSFit:BOOL=ON \
-DUSE_BRAINSConstellationDetector:BOOL=ON \
-DUSE_BRAINSABC:BOOL=ON
make -j24 -k
## NOTE:  The fetching of data still has problems
## with parallel builds, so you may need to restart it a few times...
make
make
make

Development

Developers should run the “./Utilities/SetupForDevelopment.sh” script to get started.

Testing

BRAINSTools_MAX_TEST_LEVEL adjusts how agressive the test suite is so that long running tests or incomplete tests can easily be silenced

set(BRAINSTools_MAX_TEST_LEVEL 3
      CACHE STRING "Testing level for managing test burden")

1 - Run the absolute minimum (very fast tests)

3 - Run fast tests on continous builds.

5 - Run moderate nightly tests.

7 - Run long running extensive test that are a burden to normal development.

8 - Run tests that fail due to incomplete test building.

9 - Run tests that don’t have much utility currently.


Example

setting a test’s max level in TestSuite/CMakeLists.txt

if( ${BRAINSTools_MAX_TEST_LEVEL} GREATER 8)
  ExternalData_add_test(FindCenterOfBrainFetchData
    NAME itkResampleInPlaceImageFilterTest
    COMMAND $<TARGET_FILE:itkResampleInPlaceImageFilterTest>
      itkResampleInPlaceImageFilterTest input1 transform1 checkresult
  )