nature_methods_multicut_pipeline

This repository contains the software used for the publication Multicut brings automated neurite segmentation closer to human performance. It is a snapshot of the state of the software we developed for this publication.

Since then, we have reimplemented most functionality in an open-source C++ library and build a library for more convenient usage of multicut segmentation as well as a pipeline for processing large volumes. Also, there is an interactive multicut workflow in ilastik.

This package (git tag 1.0) reflects the state of the software at the time of publication. Subsequent development happens mainly in the above repositories.

You can find jupyter notebooks with examples for the core functionality of the pipeline in the examples directory.

If you are interested in using Multicut for your data and cannot make it work with any of the options suggested here, or to get a pointer to the latest post-publication implementation, please do not hesitate to contact us.

The data used in the publication is available here, neural network weights are available here.

Installation

We provide precompiled binaries: Just unpack the appropriate file for your operating system (Linux, Windows, or Mac), link against CPLEX and you are ready to go. Source is available as a tarball, or zip-file.

To run the multicut solver you need to link against CPLEX: If you have CPLEX already installed on your machine, you can link to it to via calling the install-cplex-shared-libs.sh script:

$ ./install-cplex-shared-libs.sh /path/to/cplex-dir /path/to/multicut-binaries

If you don't have CPLEX installed yet, you must apply for an academic license, for details see the section Download IBM CPLEX under http://ilastik.org/documentation/basics/installation.html.

Note that you need the academic version to solve any problem of reasonable size, the CPLEX community version is not sufficient. The file README.txt in the root directory of the unpacked binaries provides detailed usage instructions.

The multicut software was packaged with conda. If you are on Linux or Mac and want to modify the code (and have CPLEX installed), you can easily setup your own conda-based development environment (including dependencies) using:

$ export CPLEX_ROOT_DIR=/path/to/cplex_dir
$ conda create --name multicut-software --channel ilastik multicut_pipeline

or add the multicut software to an existing environment my-env using:

$ export CPLEX_ROOT_DIR=/path/to/cplex_dir
$ conda install --name my-env --channel ilastik multicut_pipeline

The tarball of our binary distribution can be reproduced with the commands:

$ conda create --name multicut-software --channel ilastik multicut_pipeline
$ tar -czf multicut-software.tar.gz $(conda info --root)/envs/multicut-software

(Note: Development is recommended on Mac/Linux platforms only, using conda-build v2. Reproducing these binary packages on Windows requires a special version of conda-build. Please contact us if you want to do Windows-based development.)

Note: there are some dependency issues with conda versions >= 4.7. If you run into these issues, please use conda version 4.6.14, which you can download from here.

The structure of the source code is described in file software/README.txt of the source repository at https://github.com/ilastik/nature_methods_multicut_pipeline. For conda build recipes of individual packages, refer to subdirectory build in that repository.