SOAX Source Code
Version 3.7.0 imlements a new algorithm for snake overlap detection, resulting in improved performance for large images (contributed by David M. Rutkowski).Standalone Executables for Windows
SOAX (v3.7.0) is a standalone executable for Windows.
Batch SOAX (v3.7.0) 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.7.0) 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.7.0) is a command-line utility that generates SOAC lengths from multiple SOAC files.
Batch Resample (v3.7.0) is a command-line utility that resamples TIFF images to have isotropic voxel size.
Older and 32-bit versions of Windows SOAX versions and its related applications are available in the archive.
Standalone Executables for Mac OS X (High Sierra)
SOAX (v3.7.0) as a Mac OS X Application.
Batch SOAX (v3.7.0) 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.7.0) 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.7.0) is a command-line utility that generates SOAC lengths from multiple SOAC files.
Batch Resample (v3.7.0) is a command-line utility that resamples TIFF images to have isotropic voxel size.
Older versions of SOAX executables for Max OS X 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)
- Install fully up-to-date Visual Studio 2010 with SP1
- Install Perl (32-bit)
- Install Python 2.7.x
- Install CMake
- Download and extract Qt source 4.8.6 to C:\Qt
- Setup environment variables. In Visual Studio Command Prompt,
type set QMAKESPEC=win32-msvc2010set QTDIR=C:\Qtset PATH=C:\Qt\bin;%PATH%
- Download jom and extract it to C:\Qt\jom
- Open qmake.conf in %QTDIR%\mkspecs\win32-msvc2010 and change
the line
QMAKE_CFLAGS_RELEASE = /O2 /MDtoQMAKE_CFLAGS_RELEASE = /O2 /MTDo the same for QMAKE_CFLAGS_DEBUG and QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO;
- 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-libtiffthen.\jom\jom.exe -j Nwhere N is the number of CPU cores you want to use for Qt compilation.
- Download boost library and extract it to C:\
- Go to boost directory and type
bootstrapthen.\b2 msvc link=static runtime-link=static threading=multi stage
- 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;
- Build VTK in Debug and Release mode using VS2010
- 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;
- Build ITK in Debug and Release mode using VS2010
- 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
- Build SOAX in Debug and Release using VS2010
Building SOAX in Mac OS X
- Install Homebrew
- Install Boost C++
libraries:brew install boost
- Install Qt 4 libraries using:
- Install CMake
- Configure and build VTK 6.3 from source (Enable VTK_Group_Qt and change CMAKE_BUILD_TYPE to "Release" in CMake; Disable BUILD_SHARED_LIBS; build in Xcode by opening "VTK.xcodeproj" generated by CMake and then Product > Build)
- Configure and build ITK 4.7.2 from source (Disable BUILD_EXAMPLES, BUILD_TESTING, and enable Module_ITKVtkGlue in CMake; build Release version in Xcode)
- Download SOAX source code above, configure by CMake and compile a Release version in Xcode
- Use macdeployqt for making a dmg application
brew tap cartr/qt4
brew tap-pin cartr/qt4
brew install qt@4
brew install qt-webkit@2.3
Building SOAX in Windows Linux Subsystem (Ubuntu 18.04.1 LTS)
David Rutkowski, 12/2020-
Newer version of cmake:
https://askubuntu.com/questions/829310/how-to-upgrade-cmake-in-ubuntu
ccmake:
sudo apt-get install cmake-curses-gui libxt-dev -
OpenGL implementation on Linux (if this is required):
sudo apt-get install libegl1-mesa-dev
https://stackoverflow.com/questions/31170869/cmake-could-not-find-opengl-in-ubuntu -
Subsystem GUI:
Install XMing on Windows
sudo apt-get install vim-gtk
export DISPLAY=:0
https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/
-
QT4 package:
sudo apt install qt4-default
https://askubuntu.com/questions/1102660/enable-to-locate-qt-sdk-package
sudo apt install build-essential cmake gdb git libphonon-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev qt4-designer qt4-doc qt4-doc-html qt4-qmake qtcreator qtcreator-doc subversion -
Boost libraries:
sudo apt-get install libboost-all-dev
-
VTK 6.3.0:
https://github.com/Kitware/VTK/releases?after=v7.1.0
Use ccmake from a separate build folder to Enable VTK_Group_Qt and change CMAKE_BUILD_TYPE to "Release" -
ITK 4.7.2:
https://sourceforge.net/projects/itk/files/itk/4.7/
Use ccmake to Disable BUILD_EXAMPLES, BUILD_TESTING; Enable Module_ITKVtkGlue -
Add the following to vcl_compiler.h (for gcc 7.5.0) (\InsightToolkit-4.7.2\Modules\ThirdParty\VNL\src\vxl\vcl\vcl_compiler.h) at line 129
# elif (__GNUC__==7)
# define VCL_GCC_7
# if (__GNUC_MINOR__ > 4 )
# define VCL_GCC_75
# else
# define VCL_GCC_70
# endif
-
Change vcl_new.h (\InsightToolkit-4.7.2\Modules\ThirdParty\VNL\src\vxl\vcl\vcl_new.h)
Line 19 to # include < new > from # include < new.h> -
SOAX:
Ccmake while specifying location of VTK and ITK build folders
(These were already populated this way but just in case they are needed)
CMAKE_INSTALL_PREFIX:/usr/local
QT_IMPORTS_DIR:/usr/lib/x86_64-linux-gnu/qt4/imports
QT_QMAKE_EXECUTABLE:/user/bin/qmake
Building SOAX in Ubuntu 14.04 LTS
- 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
- Build and install VTK from source (Enable VTK_Group_Qt and change CMAKE_BUILD_TYPE to "Release")
- Build and install ITK from source (Disable BUILD_EXAMPLES, BUILD_TESTING; Enable Module_ITKVtkGlue)
- Download SOAX source code above, configure by CMake and compile
Building SOAX in Fedora 21
- Install Boost C++
libraries, Qt
4, CMake and X11
library:sudo yum install boost-devel qt-devel qtwebkit-devel cmake libXt-devel
- Build and install VTK from source (Enable VTK_Group_Qt and change CMAKE_BUILD_TYPE to "Release")
- Build and install ITK from source (Disable BUILD_EXAMPLES, BUILD_TESTING; Enable Module_ITKVtkGlue)
- Download SOAX source code above, configure by CMake and compile