Skip to content
Snippets Groups Projects
user avatar
ac_fx authored
40957cee
History
Name Last commit Last update
ctc_doc
src
test
.gitignore
LICENSE
readme.md

this repository is for the cell tracking challenge (ctc) specific support for the leverjs project

see http://celltrackingchallenge.net for more info about the ctc datasets.

the leverjs segmentations are primarily unsupervised to date. we have added some small effort at supervised refinement of the segmentation and supervised approaches to parameter estimation. we are particularly interested in using new techniques from algorithmic statistics to enhance our unsupervised algorithms, as in our related algorithmic statistics project found at https://git-bioimage.coe.drexel.edu/opensource/ncd.

about leverjs

leverjs is a collection of software tools, database formats and restful api's designed for managing 5D timelapse microscopy image data.

see https://leverjs.net for general info, https://leverjs.net/git for the open source repository.

leverjs also contains a separate high-performance webgl 5D visualizer. It's a raycasting engine that is usable from matlab, python, java / imagej. See https://leverjs.net/leversc for details.

setting up to run from MATLAB

  1. Be sure you have git.
  2. Install git LFS from https://git-lfs.github.com/
  3. clone the source code repos:
git clone --depth=1 https://git-bioimage.coe.drexel.edu/opensource/ljsctc
git clone --depth=1 https://git-bioimage.coe.drexel.edu/opensource/leverjs.git
git clone --depth=1 https://git-bioimage.coe.drexel.edu/opensource/leverUtilities.git
git clone --depth=1 https://git-bioimage.coe.drexel.edu/opensource/hydra-image-processor.git

MATLAB requirements

leverjs and ljsctc projects require matlab 2021b or later, with the database and image processing toolboxes installed.

using the LJSCTC repo

LJSCTC can be provided via prebuilt executable for specific tasks like running a CTC dataset. this is generally how we proceed for CTC submissions. a runtime matching the version of matlab that the executable was built with is all that is required. we also utilize cuda-based image processing toolkit called the 'hydra image processor', https://git-bioimage.coe.drexel.edu/opensource/hydra-image-processor.

LJSCTC is most flexible when run from within matlab.

Be sure to set your startup.m file so that the leverjs, leverUtilities and hydra-image-processor folders are on your path:

if isdeployed()
    return
end
% ...
% in the code below, modify the '~/git/leverjs' to point to the folder where you cloned leverjs
path(path,'~/git/leverjs/matlab')
path(path,'~/git/leverjs/leversc/src/MATLAB')
path(path,'~/git/leverUtilities/src/MATLAB')
path(path,'~/git/hydra-image-processor/src/MATLAB/')
AddSQLiteToPath(); % set leverjs for sqlite access

Windows users : note the watchdog timer

On windows, depending on your gpu / dataset, windows will kill your matlab process if the gpu becomes unresponsive. If this happens, double click on leverjse/tdr/tdrDelay.reg and reboot.

NOTE - the LJSCTC has just gone through a significant code refactoring. Most of the top level (go*.m) scripts are working, but there may still be path mistakes throughout. These are being corrected. Please drop me a note if you run across any issues and i will correct asap -- andy

dataset naming convention

the ctc datasets do not include test or training in their base names. leverjs uses a single dataset format for each movie, so their is a namespace collision.

to that end, we use the following format

BF-C2DL-HSC_training_01 -- dataset is BF-C2DL-HSC training movie 01 .LEVER -- this is the file containing metadata and all seg and track results. format is sqlite database. .h5 -- this contains image data /cacheDenoise -- folder with non-local means denoised images (cached here for performance)

Note that LEVERJS is mostly unsupervised. For most usage cases, we can validate on either training or testing data. Exception is the new support we use to train our two segmentation parameters. For now, we optimize this on the DET measure from the ground truth. This works ok, but is generally outperformed by picking reasonable parameters for each type of movie manually.

The two parameters are minimumRadius_um and sensitivity. See src/getSegParams.m for details.

Because we work with both training and testing movies from the CTC, our internal path layout is a bit complicated. The CTC keeps those separate via a directory tree. We allow our internal .LEVER files to co-exist all in one folder. So, getting all the paths mapped is tricky. See src/get_ljsctc.m for details. Reach out if you run into trouble...

contact

andrew.r.cohen at drexel.edu

acknowledgements

thanks you to all the organizers of the cell tracking challenge! it's a remarkable resource they have put together.

thanks especially to Martin Maska and to Pablo Delgado Rodriguez for their help and patience!!