Skip to content

imcf/python-imcflibs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,306 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IMCFlibs 🐍 β˜• πŸ”© πŸ”§ πŸͺ›

Linting ⚑ Pytest-Python2 πŸ§ͺ🐍 Pytest-Poetry πŸ§ͺ🎭 codecov

Build Status DOI

This package contains a diverse collection of Python functions dealing with paths, I/O (file handles, ...), strings etc. and tons of Fiji / ImageJ2 convenience wrappers to simplify scripting and reduce cross-script redundancies.

Initially this has been a multi-purpose package where a substantial part had been useful in CPython as well. However, since the latest Jython release is still based on Python 2.7 (see the Jython 3 roadmap for more info), imcflibs is now basically limited to the Fiji / ImageJ2 ecosystem.

Releases are made through Maven and published to the SciJava Maven repository. The easiest way to use the lib is by adding the IMCF Uni Basel update site to your ImageJ installation.

The pip installable package is probably only useful for two cases: running pytest (where applicable) and rendering HTML-based API docs using pdoc. Let us know in case you're having another use case πŸŽͺ for it.

Developed and provided by the Imaging Core Facility (IMCF) of the Biozentrum, University of Basel, Switzerland.

Installation Instructions

Two ways of installing the imcflibs package are described here, the "easy" one through the Fiji Update Sites and the "manual" method using packages explicitly downloaded from SciJava Maven.

🧿 Default: Installation via Update Sites

After a fresh install of Fiji, navigate to Help -> Update and in the resulting window, press Manage Update Sites. Here, search for and tick the following necessary update sites for this package.

  • ImageJ
  • Fiji
  • 3D ImageJ-Suite
  • clij2
  • IJPB-plugins
  • IMCF Uni Basel
  • StarDist
  • CALM
  • TrackMate-Cellpose
  • TrackMate-Helper
  • TrackMate-StarDist
  • TrackMate-Weka
  • TrackMate-MorpholibJ

The IMCF Uni Basel update-site will always provide the latest compatible combination of official .jar files to use this package.

Manual Downloads for OMERO

In addition to the update sites, two manual downloads concerning OMERO are necessary:

πŸ— Alternative: SciJava Maven Package πŸ‘·

πŸ’‘ IMPORTANT: πŸ’‘ same as for the default installation previously described, you will need to enable all Update Sites listed above (and obviously the respective OMERO downloads) in your Fiji as well when using the method described here!

The most up-to-date .jar (or any other published version, including pre-releases) for this package can be always found on the Scijava Maven repository. Navigate to the python-imcflibs folder, pick the desired version (can also be a pre-release) and download the contained .jar file, e.g. python-imcflibs-2.0.0.jar.

Then simply place that file in the jars folder of your Fiji installation, e.g D:\Development\Fiji.app\jars\ or /opt/Fiji.app/jars/, possibly removing other versions of the same package from that folder - then (re-)start Fiji.

If you'd prefer to use the cutting-edge version from GitHub, look into the development instructions for details.

Installation Testing

To check the package's correct installation in Fiji, search for Script Interpreter in the Search bar, and type :lang python, followed by e.g. import imcflibs.imagej.misc. If no errors are shown, the installation was successful. Alternatively, you can scroll in the sidebar of the Interpreter to search for imcflibs.

Example usage

Shading correction / projection

Apply a shading correction model and create a maximum-intensity projection:

from imcflibs.imagej.shading import correct_and_project

model = "/path/to/shading_model.tif"
raw_image = "/path/to/raw_data/image.ome.tif"
out_path = "/path/to/processed_data/"

correct_and_project(raw_image, out_path, model, "Maximum", ".ics")

Split TIFFs by channels and slices

Use status and progress bar updates

About

🐍 β˜• πŸ”© πŸ”§ πŸͺ› A collection of commonly used Python helper functions.

Resources

License

Stars

Watchers

Forks

Contributors