Mentions légales du service

Skip to content
Snippets Groups Projects

Tissue Image ToolKit

Anaconda version Platform availability License Latest release date

TimageTK (Tissue Image Toolkit) is a Python package dedicated to image processing of multicellular architectures, such as plants or animals. It is intended for biologists, modellers and computer scientists.

The package provides the following main functionalities:

  • Image Filtering: gaussian smoothing, gradient, hessian, laplacian, ...
  • Mathematical Morphology: erosion, dilation, opening, closing, hat transform, sequential filters, ...
  • Intensity Image Registration: rigid, affine and deformable registration, composition of transformations, sequence registration, multi-view fusion, ...
  • Intensity Image Segmentation: h-transform, connected-component labeling, watershed, ...
  • Visualisation: Stack browser, orthogonal views, projection maps and other GUI.
  • Batch Processing: Simple JSON-based data structure to batch process large data sets.

Read TimageTK documentation for more detailed information.

Table of Contents

Installation

Assuming you have conda installed on your OS, install timagetk in a new conda environment named titk with:

conda create -n titk -c mosaic -c morpheme -c conda-forge timagetk

Look at the installation page of the documentation for more.

Quick Start

Once you have installed the timagetk library you can use it to analyse a biological tissue, for example, to compute the cells' volume in a cell-segmented image.

The following steps are required:

  1. load an intensity image
  2. performs watershed segmentation
  3. compute cells' volume
from timagetk import TissueImage3D
from timagetk.io import imread
from timagetk.tasks.segmentation import watershed_segmentation

# Download an image from Zenodo and read it:
int_image = imread('https://zenodo.org/record/7151866/files/p58-t0-imgFus.inr.gz',
                   hash_value='md5:48f6f9924289037c55ea785273c2fe72')
# Perform watershed cell-based segmentation:
seg_image, seed_image, params = watershed_segmentation(int_image, h_min=10, min_size=50, max_size=800)
# Convert to `TissueImage3D` type to access cell properties computation:
tissue = TissueImage3D(seg_image, background=1)
# Compute cells' volume:
volume = tissue.cells.volume()

You may visualize the cells' volume distribution on the 3D watershed cell-based segmentation using pyvista:

import pyvista as pv
from timagetk.visu.pyvista import tissue_image_unstructured_grid

bkgd_id = tissue.background  # get the id (label) of the background 
l1_cells = tissue.cells.neighbors(bkgd_id)[bkgd_id]  # list the background's neighbors to get L1 cells
# Create a mesh representation for the cells that belong to the first layer:
grid = tissue_image_unstructured_grid(tissue, labels=l1_cells, resampling_voxelsize=1)
# Plot the cell meshes:
plotter = pv.Plotter()
plotter.add_mesh(grid, scalars='volume', cmap='inferno')
plotter.show()

Organisation

Lead developer: Jonathan Legrand badge_jo

Coordination:

  • Christophe Godin badge_cg
  • Grégoire Malandain badge_gm
  • Teva Vernoux badge_tv

Main contributors:

  • Guillaume Cerutti badge_gc
  • Manuel Petit badge_mp

Former contributors: Guillaume Baty, Sophie Ribes, Frederic Boudon, Christophe Pradal

Written in: badge_osx

Supported OS:

  • badge_osx
  • badge_osx
  • badge_osx_arm
  • badge_windows

Licence: GPLv3+, see LICENSE file.

Active teams:

Former teams:

Contributing

We welcome all contributions to the development of TimageTK as it is intended as an open-source scientific software.

Have a look at the contribution guidelines in the documentation for more details.

Additional Notes

Images and other data structures can be rendered using the visualization functions we provide. However, if you are less experienced with code, using a dedicated interactive image visualization software such as Gnomon or Fiji is recommended.

TimageTK leverages the work of some of the most standard Python libraries:

For 3D visualisations, we rely on:

Other less "standard" libraries, developed by research teams, are used: