CellProfiler release notes - CellProfiler/CellProfiler GitHub Wiki

This page is now deprecated, future release notes can be found on the releases page.

Overview

Table of Contents

  1. Version 2.1.1 (rev 6c2d896) released on 2014-07-25
  2. Version 2.1.0 (rev 0c7fb94) released on 2014-01-24
  1. CellProfiler 2.0 April, 2010

CellProfiler 2.1.1 is a scheduled patch release whose primary purpose is to address any issues in 2.1.0. Significant improvements:

  • Many bug fixes (detailed here).
  • Improvements to the code behind the input modules to address issues with color image stacks.
  • Adding a caching layer to image file handling which should improve performance for image stacks.
  • Improving the compositing of overlays on images.

We have fixed a bug in the “fill holes” algorithm which will likely result in slightly different (and we feel, better) segmentations for IdentifyPrimaryObjects and IdentifySecondaryObjects modules with the “fill holes” option enabled. This will not affect most assays, but you may want to confirm this and continue to use 2.1.0 if reproducibility is a concern.

The CellProfiler 2.1.0 release enhances CellProfiler in eight general areas:

  • New input modules and project storage files. CellProfiler has four new modules—Images, Metadata, NamesAndTypes and Groups—that are designed to assemble CellProfiler’s image sets in a more flexible and intuitive form. These four modules operate on a list of paths to image files, extracting metadata, filtering and grouping them into channels. The file list and pipeline are now stored in a project file. CellProfiler 2.1.0 assembles large image sets much more quickly than its predecessor and caches image sets in many circumstances to allow quick start-up times for pipelines. The legacy input modules, LoadImages and LoadSingleImages can still be used as before and the LoadData module can both be used as before and can be used with an image set list exported from a project.
  • Multi-core processing. CellProfiler now utilizes multiple cores in analysis mode, which allows for faster processing without any user intervention necessary. It starts a number of worker processes and partitions its work among them. In addition to the increased utilization of CPU resources, this multiprocessing mode allows the workers to run in a 64-bit address space on OS/X even though the UI process is constrained to a 32-bit address space. CellProfiler is still optimized to run on a single core when headless.
  • Measurements saved to disk as HDF5 files during processing. Measurements are now preferentially stored as HDF5 files which are written to disk during the course of the analysis. Previously, measurements were stored in memory and written to a Matlab format file at the end of the run. The change lowers CellProfiler’s memory footprint, especially for long runs, provides incremental measurement output and has paved the way for alternative uses of the HDF5 file.
  • Improved support for Linux. We provide Linux release and trunk builds for CentOS and Ubuntu.
  • Improved help. The help and welcome screen have been extensively revised to make them easier to use and more complete. The help is now searchable.
  • GIT and Github. In the interim between the CellProfiler 2.0 (11710) and the 2.1.0 release, we’ve moved our version control from SVN to GIT (https://github.com/CellProfiler/CellProfiler) and we now use the Github repository issue tracking system to file and resolve issues. We welcome Github pull requests.
  • Other added functionality. We have added new image operations, thresholding methods, and measurements. CellProfiler can load images from OMERO. Users can take advantage of the extended functionality of ImageJ 2.0 in addition to ImageJ 1.0 support.
  • Bug fixes. Many outstanding issues have been addressed, described here.

Measurements that have changed substantially

The calculations for the following measurements have changed since CellProfiler 2.0 (11710) and yield substantially different results:

  • Neighbors_PercentTouching - The percent touching calculation in CellProfiler 2.0 mistakenly divided the number of touching pixels by the area of the object and multiplied by 100 to get the percent touching. CellProfiler 2.1.0 divides the number of touching pixels by the perimeter of the object (the maximum possible number of touching pixels) and multiplies by 100.

The following feature names have changed:

  • Haralick texture features - The Haralick texture features can now be measured using horizontal, vertical, diagonal and anti-diagonal displacements. The feature names have been given an additional “scale” suffix to indicate these four directions. The features measure along the same displacement as CellProfiler 2.0 by default.

This release updates CellProfiler to include the features and code base as detailed in two upcoming papers. It is a patch release and does not include most of the improvements from the development version. The details are here:

Highlights:

  • CellProfiler can be configured to work with Paramorama, an application by Hannes Pretorious that can be used to visually explore and optimize pipeline settings.
  • We have added many new measurements to MeasureImageQuality. These can be used to diagnose image artifacts such as inappropriate focus. MeasureImageQuality will be described in an upcoming paper.
  • We have incorporated a number of fixes to the worm toolbox which will be described in an upcoming paper.

We have released a new version of CellProfiler. This release includes numerous small improvements and bug fixes (details here).

Highlights:

  • Worm toolbox - New modules in CellProfiler representing prepublication work in our group, analyzing images of C. elegans
    • UntangleWorms - a module to train a model of worm shape and apply that model to images of worms that cross, resulting in segmentation of individual worms in clumps
    • IdentifyDeadWorms - a module to classify worms as alive or dead based on shape
    • StraightenWorms - a module that presents a gallery of straightened worms using the output of UntangleWorms. The module makes intensity measurements localized to longitudinal or transverse sections of the worm.
  • ClassifyPixels / Ilastik (available on PC platform only) - per pixel classification and integration with Ilastik (www.ilastik.org).
  • Thumbnails saved to database - ExportToDatabase can save thumbnails of images in either MySQL or SQLite databases. These are .png images which can be accessed by CellProfiler Analyst.
  • More help / improved help

A new version of CellProfiler has been released. The new version provides better image handling (stability, transparency, multi-channel TIFFs, grouping of movie frames, and loading by order). A new module for unmixing colors can be useful for histologically stained images. Granularity measurements can now be made for each object. It is now possible to call ImageJ on both Windows and Mac. There is a new metadata editor. Finally, a new splines background calculation has been added to CorrectIllumination_Calculate.

Details:

  • LoadImages can now load images by order.
  • CorrectIlluminationCalculate has a new spline method for determining the background intensity across an image.
  • We've added a new module, UnmixColors, which performs color deconvolution for histologically-stained images.
  • MeasureGranularity can now measure the granularity of objects.
  • We have a metadata editor for settings that can use metadata substitution, for instance, the file names in SaveImages.
  • CellProfiler uses Bioformats version 4.2 to load and save many file formats; this is a stable, heavily-tested version.
  • CellProfiler can run ImageJ macros on the Macintosh
  • Plugins support: Write your own module for CellProfiler
  • Many bug fixes (see here).
  • Memory leaks in UI dialogs fixed (particularly EditObjectsManually).
  • Many bug fixes (see here).
  • Known bug: IMG-543 If Excel has LoadData’s text file open, LoadData’s setting check fails. CellProfiler might not operate correctly if a .csv file used by LoadData is being used by Excel or some other program simultaneously due to file sharing issues.

Thank you to everyone that sent us feedback and bug reports!

  • Many bug fixes (see here).
  • Very preliminary support for ImageJ plugins (currently Windows only)
  • Build for 64-bit Windows system now available.
  • Module display windows use less memory.
  • Fix bug in LoadImages when trying to load flex files.
  • Fix crash on Snow Leopard when "Analyze Images" button is pushed.
  • Bundle JRE on windows to avoid install problems.
  • Orientation screen on startup
  • Bug fixes
  • Complete rewrite in python.
  • Many new features (see here).
  • Limitations: The 32-bit Windows release may run out of memory when run on large images, pipelines that use many images simultaneously or pipelines that open many module display windows. We've taken steps to plug memory leaks and reduce the amount of memory that module display windows take up. However, if memory issues still occur, Windows users should use the ConserveMemory module to delete intermediate images, should only keep the windows that they need open and should consider resizing very large images before processing with their pipeline. Alternately, users with 64-bit machines may use our new 64-bit beta Windows release (r9777) which will help with some of the memory issues.

In 2009, software engineers at the Imaging Platform at the Broad Institute began re-writing MATLAB-based CellProfiler 1.0 and created python-based CellProfiler 2.0, which was released in April, 2010. Our overall goals were:

  • Backwards compatibility with MATLAB: Create modules with the same functionality as CellProfiler 1.0. Load MATLAB pipeline files and output the same MATLAB measurement files, database files and Excel files as CellProfiler 1.0.
  • Improved user interface: Take advantage of Python to improve CellProfiler's user interface. Change the way module settings are displayed: only the relevant ones appear and, if the settings don't make sense, visual cues tell users what needs to be corrected. Create a test mode that lets you test out different settings.
  • Speed improvements: Improve the speed by using the mathematical libraries in Python (Numpy, Scipy) and compiler tools associated with Python.
  • New algorithms: Develop new thresholding methods and improve on some of CellProfiler 1.0's algorithms. Python plays a big part in this because of its strengths in array processing and its support for high-performance extensions.
  • Interfaces to other imaging packages: Build bridges between CellProfiler and other open-source imaging tools.
  • Improved reliability: Give CellProfiler a richer and more flexible internal structure and develop a test suite to continuously validate CellProfiler's functionality.
  • Public development: Open our SVN repository and accept contributed code from the community.
  • Further summary of the features of CP 2.0 upon release were listed here.

Interface

  • Resizable user interface: The main CellProfiler interface can now be resized by dragging the window corner.
  • Help for individual module settings: Every setting in every module now has a help button that you can click to display information and advice for that setting.
  • Settings verification: CellProfiler constantly checks for setting values that are not allowed, and immediately flags them for you.
  • Context-dependent module settings: Prior versions of CellProfiler displayed all settings for each module, whether or not the values were necessary, given existing choices for other settings. Now, only those settings you require are displayed, simplifying the interface
  • Test mode for assay development: This feature allows you to preview the effect of a module setting on your data. You can step backward or forward in the pipeline as you modify settings, optimizing your results prior to running an actual analysis.
  • Unlimited number of images/objects as module input: Some modules can accept an arbitrary number of images or objects as input, and you can dynamically add or remove any of these inputs as needed. For example, you can specify any number of single images in LoadSingleImage; previously, the module could accept only three input images at a time. For example, in OverlayOutlines, you can specify that any number of outlines be overlaid on an image; previously, you would have had to string multiple OverlayOutline modules together.
  • Image grouping: Images which share common metadata tags, whether provided in the filename or in an accompanying text data file, can be processed together. This is useful for any situation in which the images are organized in groups and each group needs to be analyzed as an individual set, such as illumination correction for multiple plates.
  • Module drag and drop: You can drag and drop selected modules within a pipeline or into another instance of CellProfiler, keeping their associated settings intact.
  • Listing of recent pipelines: A selectable list of recently used pipelines is available from the menu bar, for easy access.
  • Figure display choice: Easier access to which windows are displayed is now controlled within the pipeline, and is saved as part of the pipeline.
  • Context menus: The module list responds to right-clicks, providing easy access to module manipulation or help.
  • Error handling: This feature sends bug reports (stack traces) to our developers.
  • Better access for developers: We are providing a developer's guide as a practical introduction for programming in the CellProfiler environment, an email list, and wiki, in addition to the available user forum.

Module improvements

  • Improved Otsu thresholding: Choose two- or three-class thresholding to handle images where there might be an intermediate intensity level between foreground and background.
  • Secondary object identification now permits discarding of objects touching the image border, along with the associated primary objects.
  • Filtering objects by measurements now permits a set of objects to be filtered with any number of measurements.
  • Masking of images/objects: You can create masks for use with both images and objects such that image/object measurements will include only those regions within the masked area.
  • Improved loading of text information: Previously, you could load only a limited amount of annotation relevant to your images, via a text file. Now you can use comma-delimited files to load tables of metadata, in addition to file lists of input images for analysis.
  • Convex hull has been included as an image morphological operation.
  • A new module, MeasureNeurons, has been added, which measures the number of trunks and branches for each neuron in an image.
  • Detection of new features: Neurites can be extracted from images of neurons. Branching points of line segments can be found as an image morphological operation. Also, "dark holes" (dark spots surrounded bright rings) can be detected.
  • Improvements to object tracking: A new tracking algorithm has been added to the TrackObjects module which is capable of bridging temporal gaps in trajectories and accouting for splitting/merging events.
  • Object data can be exported to a database as a single table containing all user-defined object measurements, or as separate tables, one for each object.
  • SQLite support: Data can be exported in SQLite, a self-contained database format. Users can create their own local databases and no longer need access to a separate database server. Because CellProfiler Analyst also supports SQLite, any user can access CellProfiler Analyst's suite of data exploration and machine-leaning tools.

Running MATLAB pipelines on CellProfiler 2.0

CellProfiler 2.0 pipelines are backwards-compatible with CellProfiler 1.0 pipelines that have been saved with the latest released version of CellProfiler 1.0. Older pipelines should be loaded using the latest version of CellProfiler 1.0 and saved before loading in CellProfiler 2.0.

CellProfiler 2.0 pipelines cannot be opened using CellProfiler 1.0

Using custom MATLAB CellProfiler modules with CellProfiler 2.0

We no longer support modules written in MATLAB for CellProfiler 1.0. However, the MATLAB version of CellProfiler (CP 1.0) will always be available. You also have the option of posting the MATLAB module to our "New CellProfiler 2.0 Modules" forum board and we can take a look and see if it's readily integratable.

⚠️ **GitHub.com Fallback** ⚠️