Skip to main content

fvfmPy: Fluorescence Imaging Processing Pipeline

Semi-automated analysis of leaf disc fluorescence images from a Walz ImagingPAM fluorometer.

This program automatically identifies regions of interest in leaf disc arrays, computes Fv/Fm = (Fm − Fo) / Fm for each leaf disc, and exports results to CSV for further processing.


Overview

This program is a semi-automated data analysis pipeline that processes fluorescence images generated from a Walz ImagingPAM fluorometer. The user specifies a folder containing .PIM or .TIF images, and for each image:

  1. The program attempts to automatically identify regions of interest (ROIs)
  2. The program estimates row and column numbers
  3. The program estimates Fv/Fm within each ROI and logs each observation
  4. Finally, observations are collated and output in a "long-format" CSV

Optionally, the user has the opportunity to:

  1. Rotate or crop the image
  2. Manually specify row and column numbers
  3. Adjust image segmentation parameters
  4. Manually adjust ROI placement
  5. Re-analyze previous images

Requirements

  • Python 3.10 or later
  • Windows 10/11 or macOS 10.15+

Python dependencies:

matplotlib
numpy
opencv-python
pandas
PySide6
scipy
scikit-image

Quick start

We recommend the following steps to install and launch fvfmPy in a Python Virtual Environment.

Windows PowerShell:

# 1. Create a new virtual environment: 
python3 -m venv .venv 

# 2. Install fvfmPy within the virtual environment: 
.\.venv\Scripts\python.exe -m pip install fvfmPy

# 3. Run fvfmPy: 
.\.venv\Scripts\fvfmPy.exe

MacOS Terminal:

# 1. Create a new virtual environment: 
python3 -m venv .venv 

# 2. Install fvfmPy within the virtual environment: 
.venv/bin/python -m pip install fvfmPy

# 3. Activate virtual environment and run fvfmPy: 
source .venv/bin/activate
fvfmPy

Files

File Description
src/fvfmPy/fvfmPy.py Main pipeline script
src/fvfmPy/analyze_ROIs.py Extracts fluorescence metrics from image
src/fvfmPy/apply_rotation.py Applies a given rotation to image
src/fvfmPy/estimate_grid_dims.py Jenks natural-break grid dimension estimator
src/fvfmPy/get_candidate_rois.py Watershed-based leaf disc centroid detection and grid assignment
src/fvfmPy/load_pim_img.py Reader for proprietary Walz .PIM format
src/fvfmPy/load_tif_img.py Multi-frame .TIF loader
requirements.txt Python dependency list
USER_GUIDE.pdf Full step-by-step user documentation

Output

Output is written to a "long-format" .CSV file in a location specified by the user. A complete description of the output file format can be found in the User's Guide.


R package

For users who prefer R and RStudio, an R wrapper package is available from this link. It exposes the same pipeline via three simple R functions, with the Python backend running transparently via reticulate.


Documentation

See the User's Guide for detailed walkthrough of the data analysis pipeline, description of optional processing steps, output file descriptions, and troubleshooting tips.


Authors

Josef Garen, Pieter Arnold, and Kristine Crous

Metadata

Release files for fvfmPy 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fvfmPy 1.0.0
File Size Uploaded
fvfmpy-1.0.0.tar.gz 18.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fvfmPy 1.0.0
File Interpreter ABI Platform
fvfmpy-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 37.2 kB

Release files / fvfmpy-1.0.0.tar.gz

Download URL fvfmpy-1.0.0.tar.gz
Size 18.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e6eee529ee0fe8c1dc1e0983189db3e7e5303865b0ce96ac5e0c93d4a7048077
BLAKE2b-256 checksum
How to use checksums
a7d2c6ed86a7f34d3fe59538d9fb8cc8fb59cd28f17095eefe2b7c92f1b97a9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / fvfmpy-1.0.0-py3-none-any.whl

Download URL fvfmpy-1.0.0-py3-none-any.whl
Size 18.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d6093ef407e9310dddb855e61a3d4beff2b6df72c4e16b52c358b9ff351c39d5
BLAKE2b-256 checksum
How to use checksums
d770a857c3b5052e703bad2f21925918014f976691c394a50051c0b4e1ae5e0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page