Python

Description

The Allen Cell Structure Segmenter is a Python-based open source toolkit developed at the Allen Institute for Cell Science for 3D segmentation of intracellular structures in fluorescence microscope images.

It consists of two complementary elements:

  1. Classic image segmentation workflows for 20 distinct intracellular structure localization patterns. A visual “lookup table” is outlining the modular algorithmic steps for each segmentation workflow. This provides an intuitive guide for selection or construction of new segmentation workflows for a user’s particular segmentation task. 
  2. Human-in-the-loop iterative deep learning segmentation workflow trained on ground truth manually curated data from the images segmented with the segmentation workflow. Importantly, this module was not released yet.

 

The Allen Cell Structure Segmenter Overview
Description

Scikit-learn (sklearn) is a python library used for machine learning. sklearn contains simple and efficient tools for data mining and data analysis. Modules and functions include those for classification, regression, clustering, dimensionality reduction, model selection and data preprocessing. Many people have contributed to sklearn (list of authors)

has topic
scikit-learn logo.
Description

3-D density kernel estimation (DKE-3-D) method, utilises an ensemble of random decision trees for counting objects in 3D images. DKE-3-D avoids the problem of discrete object identification and segmentation, common to many existing 3-D counting techniques, and outperforms other methods when quantification of densely packed and heterogeneous objects is desired. 

Description

The Jupyter Notebook is the original web application for creating and sharing computational documents. It offers a simple, streamlined, document-centric experience.

Try Jupyter (https://try.jupyter.org) is a site for trying out the Jupyter Notebook, equipped with kernels for several different languages (Julia, R, C++, Scheme, Ruby) without installing anything. Click the link below to go to the page.

need a thumbnail
Description

Maxima finding algorithm implemented in Python recreated from implementation in Fiji(ImageJ)

This is a re-implementation of the java plugin written by Michael Schmid and Wayne Rasband for ImageJ. The original java code source can be found in: https://imagej.nih.gov/ij/developer/source/ij/plugin/filter/MaximumFinder.java.html 

This implementation remains faithful to the original implementation but is not 100% optimised. The java version is faster but this could be alleviated by compiling c code for parts of the code. This script is simply to provide the functionality of the ImageJ find maxima algorithm to individuals writing pure python script.

The algorithm works as follows:

The first stage in the maxima finding algorithm is to find the local maxima. This involves processing the image with a 3x3 neighbourhood maximum filter. Once filtered this image is compared back to the original, where the pixels are the same value represents the locations of the local maxima. Typically there are far too many local maxima to be meaningful so the goal is then to merge and prune this maxima using some kind of measure of quality. In the case of algorithm a single parameter is used, the noise tolerance (Prominence). If a maxima is close to another then the maxima will be merged or removed based on the below criteria.

Starting with the brightest maxima and working down the intensities:

  • Expand out (‘flood fill’) from each maxima location. Neighbouring pixels within a noise tolerance (notl) of the maxima are scanned until the region within tolerance is exhausted.
    • If the pixels are equal to the maxima, mark this as equal.
    • If a greater maxima is met, ignore the active maxima.
    • If the pixels are less than maxima, but greater than maxima minus the noise tolerance, mark as listed.
    • Mark all ‘listed’ pixels 'processed' if they are included within a valid peak region, otherwise reset them.
    • From the regions containing a peak, calculate the best pixel to be considered as maxima based on minimum distance calculation with all those maxima considered equal.
       

For a video detailing how this algorithm works please see:

https://youtu.be/f9vXOMKOlaY

Or for examples of it being used in practise, please see:

https://youtu.be/9wvPsEzRWzI

 

find maxima comparison.