SOAX Source Code

Standalone Executables for Windows

SOAX (v3.6.1) is a standalone executable for Windows.

Batch SOAX (v3.6.1) is a command-line SOAX in batch mode that can be executed with options to set the image or directory names and to set different combinations of parameters.

Best SOACs (v3.6.1) is a command-line utility that generates candidate extractions from a large set of 3D extraction results (usually obtained by batch extraction using Batch SOAX).

Batch Length (v3.6.1) is a command-line utility that generates SOAC lengths from multiple SOAC files.

Batch Resample (v3.6.1) is a command-line utility that resamples TIFF images to have isotropic voxel size.

Older and 32-bit versions of SOAX and its related applications are available in the archive.

Image Data for Validation

We provide a synthetic image of actin cable network and its ground truth centerlines. The ground truth can be loaded via Load JFilament Snakes in SOAX's File menu.

Building SOAX in Windows (Visual Studio 2010, static linking)

  1. Install fully up-to-date Visual Studio 2010 with SP1
  2. Install Perl (32-bit)
  3. Install Python 2.7.x
  4. Install CMake
  5. Download and extract Qt source 4.8.6 to C:\Qt
  6. Setup environment variables. In Visual Studio Command Prompt, type
    set QMAKESPEC=win32-msvc2010
    set QTDIR=C:\Qt
    set PATH=C:\Qt\bin;%PATH%
  7. Download jom and extract it to C:\Qt\jom
  8. Open qmake.conf in %QTDIR%\mkspecs\win32-msvc2010 and change the line
    QMAKE_CFLAGS_RELEASE = /O2 /MD
    to
    QMAKE_CFLAGS_RELEASE = /O2 /MT
    Do the same for QMAKE_CFLAGS_DEBUG and QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO;
  9. Start VS2010 command prompt (for 64-bit, use Visual Studio x64 Win64 Command Prompt) and run
    configure -debug-and-release -static -opensource -no-phonon -no-phonon-backend -no-qt3support -no-multimedia -no-webkit -no-libtiff
    then
    .\jom\jom.exe -j N
    where N is the number of CPU cores you want to use for Qt compilation.
  10. Download boost library and extract it to C:\
  11. Go to boost directory and type
    bootstrap
    then
    .\b2 msvc link=static runtime-link=static threading=multi stage
  12. Download VTK source and configure using CMake. In CMake,
    • Change all /MD to /MT in CMAKE_CXX_FLAGS_MINSIZEREL, CMAKE_CXX_FLAGS_RELEASE, CMAKE_CXX_FLAGS_RELWITHDEBINFO, CMAKE_C_FLAGS_MINSIZEREL, CMAKE_C_FLAGS_RELEASE, and CMAKE_C_FLAGS_RELWITHDEBINFO;
    • Change /MDd to /MTd in CMAKE_CXX_FLAGS_DEBUG and CMAKE_C_FLAGS_DEBUG;
    • Uncheck BUILD_SHARED_LIBS;
    • Check Module_vtkGUISupportQt, Module_vtkGUISupportQtOpenGL, Module_vtkRenderingQt, Module_vtkViewsQt;
  13. Build VTK in Debug and Release mode using VS2010
  14. Download ITK source and configure using CMake. In CMake,
    • Change all /MD to /MT and /MDd to /MTd as in configuring VTK;
    • Check Module_ItkVtkGlue;
  15. Build ITK in Debug and Release mode using VS2010
  16. Download the above SOAX source and configure using CMake. In CMake,
    • Change all /MD to /MT and /MDd to /MTd
    • Set Boost_INCLUDE_DIR to the topmost boost directory
    • Set Boost_PROGRAM_OPTIONS_LIBRARY_RELEASE to "C:/boost_1_55_0/stage/lib/libboost_program_options-vc100-mt-s-1_55.lib"
    • Set Boost_PROGRAM_OPTIONS_LIBRARY_DEBUG to "C:/boost_1_55_0/stage/lib/libboost_program_options-vc100-mt-sgd-1_55.lib"
    • Do the same for Boost_FILESYSTEM_LIBRARY_DEBUG, Boost_FILESYSTEM_LIBRARY_RELEASE, Boost_SYSTEM_LIBRARY_DEBUG and Boost_SYSTEM_LIBRARY_RELEASE
  17. Build SOAX in Debug and Release using VS2010

Building SOAX in Mac OS X

  1. Install Homebrew
  2. Install Boost C++ libraries:
    sudo brew install boost
  3. Install Qt 4.8.x pre-built binaries for OS X
  4. Install CMake
  5. Configure and build VTK from source (Enable VTK_Group_Qt and change CMAKE_BUILD_TYPE to "Release" in CMake; build in Xcode by opening "VTK.xcodeproj" generated by CMake and then Product > Build)
  6. Configure and build ITK from source (Disable BUILD_EXAMPLES, BUILD_TESTING and enable Module_ITKVtkGlue in CMake; build Release version in Xcode)
  7. Download SOAX source code above, configure by CMake and compile a Release version in Xcode

Building SOAX in Ubuntu 14.04 LTS

  1. Install Boost C++ libraries, Qt 4, CMake and X11 library:
    sudo apt-get install libboost1.55-all-dev qt-sdk qt4-default cmake-curses-gui libxt-dev
  2. Build and install VTK from source (Enable VTK_Group_Qt and change CMAKE_BUILD_TYPE to "Release")
  3. Build and install ITK from source (Disable BUILD_EXAMPLES, BUILD_TESTING; Enable Module_ITKVtkGlue)
  4. Download SOAX source code above, configure by CMake and compile

Building SOAX in Fedora 21

  1. Install Boost C++ libraries, Qt 4, CMake and X11 library:
    sudo yum install boost-devel qt-devel qtwebkit-devel cmake libXt-devel
  2. Build and install VTK from source (Enable VTK_Group_Qt and change CMAKE_BUILD_TYPE to "Release")
  3. Build and install ITK from source (Disable BUILD_EXAMPLES, BUILD_TESTING; Enable Module_ITKVtkGlue)
  4. Download SOAX source code above, configure by CMake and compile