Skip to content

cgohlke/liffile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Read Leica image files (LIF)

Liffile is a Python library to read image and metadata from Leica image files (LIF). LIF files are written by LAS X software to store collections of images and metadata from microscopy experiments.

Author:Christoph Gohlke
License:BSD 3-Clause
Version:2025.1.26
DOI:10.5281/zenodo.14740657

Quickstart

Install the liffile package and all dependencies from the Python Package Index:

python -m pip install -U liffile[all]

See Examples for using the programming interface.

Source code and support are available on GitHub.

Requirements

This revision was tested with the following requirements and dependencies (other versions may work):

Revisions

2025.1.26

  • Fix image coordinate values.
  • Prompt for file name if main is called without arguments.

2025.1.25

  • Initial alpha release.

Notes

Leica Microsystems GmbH is a manufacturer of microscopes and scientific instruments for the analysis of micro and nanostructures.

This library is in its early stages of development. It is not feature-complete. Large, backwards-incompatible changes may occur between revisions.

Specifically, the following features are currently not implemented: related Leica file formats (XLEF, XLLF, LOF, LIFEXT), image mosaics and pyramids, partial image reads, reading non-image data like FLIM/TCSPC, and heterogeneous channels.

This library has been tested with a limited number of version 2 files only.

The Leica Image File format is documented at:

  • Leica Image File Formats - LIF, XLEF, XLLF, LOF. Version 3.2. Leica Microsystems GmbH. 21 September 2016.
  • Annotations to Leica Image File Formats for LAS X Version 3.x. Version 1.4. Leica Microsystems GmbH. 24 August 2016.

Other implementations for reading Leica LIF files are readlif and Bio-Formats .

Examples

Read image and metadata from a LIF file:

>>> with LifFile('tests/data/FLIM.lif') as lif:
...     for image in lif.series:
...         name = image.name
...     image = lif.series['Fast Flim']
...     assert image.shape == (1024, 1024)
...     assert image.dims == ('Y', 'X')
...     lifetimes = image.asxarray()
...
>>> lifetimes
<xarray.DataArray 'Fast Flim' (Y: 1024, X: 1024)> Size: 2MB
array([[...]],
      shape=(1024, 1024), dtype=float16)
    Coordinates:
      * Y        (Y) float64... 0.0005564
      * X        (X) float64... 0.0005564
Attributes...
    path:           FLIM_testdata.lif/sample1_slice1/FLIM Compressed/Fast Flim
    F16:            {'Name': 'F16',...
    TileScanInfo:   {'Tile': {'FieldX': 0,...
    ViewerScaling:  {'ChannelScalingInfo': {...

View the image and metadata in a LIF file from the console:

$ python -m liffile tests/data/FLIM.lif