cloud-pipeline icon indicating copy to clipboard operation
cloud-pipeline copied to clipboard

[HCS Analysis] Ability to merge Z-stack in a single projection

Open NShaforostov opened this issue 2 years ago • 0 comments

Background

Once #2694 is implemented, we shall add the ability to merge several Z-planes of the same HCS image (in each field) in a single image (intensity projection).

Example:

  • let's consider that we have an HCS image with 10 Z-plates. Below you can see separate images of two of them: imageimage
  • and a single merged image by the maximal intensity in each pixel will be: image

Approach

Add a new option "Squash Z-planes" to the analysis sequence builder. "Squashed" image shall be created by the following approach: combining a set of images by choosing a maximal intensity at each image pixel position.

  • if this option is enabled - output report shall be constructed according to the "squashed" image
  • this option shall be invisible for images where only one Z-plane
  • only selected Z-planes shall be "squashed" (not all available image Z-planes)
  • (TBD) if this option is enabled - in the output viewer, selected Z-planes shall be squashed and shown as a resulting image
  • for "squashed" output reports, in the "Plane" column, the label Projection <Plane1>-<Plane2>-... should be specified (according to selected "squashed" planes)

Additional details

To create such projection in CellProfiler we shall use MakeProjection module for each channel with the following settings:

  • Input image = channel name
  • Type of projection = Maximum
  • Output image = <some_image_name>

It is important that the created projection cannot be used directly afterwards in further analysis. Therefore, to use a created projection in the further analysis sequence, it shall be saved first as a separate image.

I.e. there shall be 2 pipelines under the hood:

  • the first one shall create Z-planes projection for each channel and save them as separate images
  • the second pipeline - it is regular pipeline (for example, for the nuclei search) that uses images created by the first pipeline as input images

To save projection images, we shall use SaveImages module for each channel with the following settings:

  • Type of image = Image
  • Image to save = <some_image_name> from the Output image specified in the corresponding MakeProjection module
  • Method for constructing file names = Single name
  • Single file name = <some_file_name>
  • Image bit-depth = bit-depth of the original channel images
  • When to save = Last cycle

NShaforostov avatar Jul 27 '22 16:07 NShaforostov