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:
- The program attempts to automatically identify regions of interest (ROIs)
- The program estimates row and column numbers
- The program estimates Fv/Fm within each ROI and logs each observation
- Finally, observations are collated and output in a "long-format" CSV
Optionally, the user has the opportunity to:
- Rotate or crop the image
- Manually specify row and column numbers
- Adjust image segmentation parameters
- Manually adjust ROI placement
- 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)
| File | Size | Uploaded | |
|---|---|---|---|
| fvfmpy-1.0.0.tar.gz | 18.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|