Skip to content

Repository files navigation

FLASH

DOI

FLASH is an ImageJ/Fiji plugin for fluorescence microscopy analysis.

FLASH stands for Fluorescence Automated Spatial Histology. It provides a modular pipeline for channel setup, ROI management, image preparation, fluorescence intensity measurement, 3D object analysis, spatial analysis, result aggregation, statistics, and Excel export.

The plugin is distributed through the public ImageJ update site:

https://sites.imagej.net/FLASH/

Installation

Install through the Fiji updater:

  1. Open Fiji.

  2. Choose Help > Update....

  3. Click Manage update sites.

  4. Add or enable the FLASH update site:

    https://sites.imagej.net/FLASH/
    
  5. Apply changes and restart Fiji.

  6. Run FLASH from:

    Plugins > FLASH
    

Manual installation is also possible by copying the built FLASH-<version>.jar into Fiji's plugins/ directory, but the update site is preferred because it keeps the plugin updateable through Fiji.

Typical installation time

On a normal desktop or laptop (at least 4 CPU cores, 8 GB RAM, an SSD, and a stable broadband connection), allow approximately 1-5 minutes to install FLASH through the updater and restart an existing Fiji installation. Allow approximately 5-15 minutes total if Fiji must also be downloaded and installed. These are planning estimates, not measured installation benchmarks; download speed and updater changes affect the time. They exclude installing optional segmentation models, Python environments, or deconvolution engines.

System requirements and tested versions

The minimal demo requires Fiji with Bio-Formats and FLASH. It runs on the CPU; no GPU or other non-standard hardware is required. Optional analyses have the additional dependencies described under Runtime Dependencies.

The supplied demo was verified on Windows 11, with FLASH 4.0.0, Bio-Formats 8.1.1, ImageJ 2.16.0 / 1.54p, and Java 11.0.31 in Fiji. Fiji supports Windows, macOS and Linux; the demo verification reported here covers Windows. The source build targets Java 8 bytecode, as described under Building. The original Fiji demo receipt covers 4.0.0. The published 5.0.0 binary also passed a standalone numerical check using the same TIFFs, fixed options and expected results; that check does not exercise the Fiji graphical interface.

Small simulated demo

The demo/ folder contains a ready-to-run artificial dataset: twelve 16-bit TIFF stacks, each 64 x 64 pixels, two channels and five Z slices (about 1 MB in total). The accompanying pixel-truth table provides known answers. No biological or personal data are included.

Open demo/run_demo.ijm in Fiji's macro editor and choose Run. Select an empty output folder when prompted. The macro copies the inputs and runs whole-image fluorescence intensity analysis with fixed settings; see the demo guide for expected outputs and checks. Expected running time is under 2 minutes after Fiji has started and FLASH is installed. This is a practical allowance for a normal desktop or laptop; the guide records the measured verification run separately.

The verified run took 24.8 seconds on a Windows 11 laptop with an AMD Ryzen 7 7730U processor, 32 GB RAM and an SSD. All 120 intensity measurements matched the supplied pixel truth. The verification receipt records the environment and file fingerprints.

Manuscript analysis scripts

The Soteras et al. replay guide provides a script that reruns completed FLASH analyses through its public Java API using recorded settings, verified input files and the original plugin binary. The simulated intensity replay matched all 120 original measurements. Historical paper configurations and reference results are required to establish an exact paper rerun; the guide states the current limits.

Reproducible source snapshot

The current tagged release is FLASH 5.0.0. For a fixed source snapshot, download that release's source archive or check out v5.0.0; the default branch and ImageJ update site can change over time. Record the FLASH version and analysis settings used with your results. The version-specific archive is Zenodo record 21633368.

Usage

FLASH writes analysis outputs into a FLASH/ folder inside the selected project directory:

Project/
|-- input images
|-- Configuration/
|   `-- Segmentation Models/
`-- FLASH/
    |-- Config/
    |   `-- .settings/
    |       |-- channel_config.json
    |       `-- Channel_Data.txt
    |-- Results/
    |   |-- START_HERE.html
    |   |-- Summary.xlsx
    |   |-- Tables/
    |   |-- Presentation Images/
    |   |-- Analysis Images/
    |   |-- QC/
    |   `-- Run Records/
    |-- .settings/
    |   `-- Presets/
    |-- Cache/
    |   `-- TIF/
    `-- Status/

The main dialog groups modules into setup, image preparation, display, image analysis, and results/validation sections. Each analysis row has a help button that explains what the module does, when to use it, what setup it needs, and what outputs it writes.

Analysis Modules

  • Set Up Configuration: Define channels, colors, thresholds, segmentation settings, filters, display ranges, and Z-slice selections.

  • Draw ROIs and Orientate Images: Open each image with ROI drawing tools and always-available rotate/flip controls. Saved orientation transforms are reused by ROI reruns and downstream analyses.

  • 3D Deconvolution: Run optional deconvolution before downstream image analysis.

  • Spectral Decontamination: Run experimental channel bleed-through and autofluorescence correction workflows.

  • Split and Merge Image Channels: Export display-ready split-channel and merged images.

  • Fluorescence Intensity Analysis: Measure fluorescence inside ROIs and masks.

  • 3D Object Analysis: Segment, count, and measure 3D objects, with colocalisation and process-length workflows.

  • Spatial Analysis: Recompute nearest-neighbour, spatial statistics, heatmap, phenotyping, and morphometry outputs from object tables.

    Per-object texture and complexity. Spatial Analysis can score each segmented object on its internal texture (2D per-slice and native-3D GLCM Haralick features), morphological complexity (box-counting fractal dimension and lacunarity on an XY mask projection), or assign it to an auto-discovered texture class using 2D or native-3D Gabor and wavelet k-means feature vectors. Columns appear under the MorphTexture_* prefix in per-channel output; native-3D outputs use MorphTexture_GLCM3D*, MorphTexture_Class3D*, and MorphTexture_F3D* names.

  • Combine results per condition / animal: Aggregate per-image analysis CSVs into project-level master tables.

  • Statistical Analysis: Run configured group comparisons from aggregated result tables.

  • Excel Summary Export: Export formatted .xlsx workbooks from aggregated and statistical outputs.

    Advanced texture-class feature vectors (MorphTexture_F1..F8 and native-3D MorphTexture_F3D1..F3D8) are hidden from Excel exports by default to keep workbooks compact. Use excel.texture.features=true to include them with raw vector labels.

Set Up Configuration QC

Interactive configuration quality checks use an embedded FLASH preview screen instead of separate native ImageJ Brightness/Contrast, Threshold, or 3D Objects Counter windows. The preview keeps the original image stacked above the adjusted or output image, and Large view opens a bigger raw-vs-adjusted comparison where that helps.

Display min/max and threshold controls update the preview live. Filter parameters, StarDist, Cellpose, and 3D object previews rerun only from their explicit preview buttons.

Configuration is stored in FLASH/Config/.settings/channel_config.json; Channel_Data.txt in the same folder is a derived compatibility projection for downstream analyses. Cancelling setup offers Save & Exit, Keep Working, or Discard & Exit so partial progress can be resumed.

Segmentation Models And Click Training

FLASH supports built-in and project-specific segmentation models. StarDist and Cellpose parameter stages can select model catalog entries, and the Custom Model Manager can register Fiji-compatible StarDist .zip exports, Cellpose model files, or Cellpose registered model names.

The normal setup UI no longer collects preview clicks or offers click-based parameter suggestions. Custom StarDist and Cellpose models are imported through the Custom Model Manager; the Train Custom Engine path remains hidden while its click-collection flow is redesigned.

Runtime And Catalog Notes

FLASH pins Cellpose 3.1.1.2; Cellpose 4, Cellpose-SAM, and cpsam models are not supported. StarDist custom models must be Fiji-compatible TensorFlow SavedModel .zip exports. FLASH runs StarDist per slice as 2D detections with Z-linking; full 3D StarDist is not built in.

The project model catalog lives under <projectRoot>/FLASH/Config/Segmentation models/, with entries in catalog.json and copied model files under files/<modelKey>/.... Import finished Fiji-compatible StarDist .zip exports and Cellpose 3 model files through the Custom Model Manager, then validate them on representative images before batch analysis.

Supported Inputs

FLASH is designed for multi-channel fluorescence microscopy projects. It supports common Bio-Formats-readable microscopy containers and TIFF-based workflows through Fiji/Bio-Formats.

Typical input formats include:

  • Leica .lif
  • Zeiss .czi
  • Nikon .nd2
  • OME-TIFF and TIFF stacks

Runtime Dependencies

FLASH opens even if optional runtime dependencies are missing. Features that need optional dependencies show a clear message and repair guidance when used.

The Dependencies button in the main dialog opens the runtime check and repair panel. Depending on the selected workflow, optional dependencies can include Bio-Formats, 3D Objects Counter, mcib3d, StarDist/TrackMate, TensorFlow native libraries, Apache POI, Cellpose, 3D deconvolution engines, PSF Generator, and JTS.

Headless and Macro Use

FLASH can be driven from ImageJ macros and headless workflows after project configuration exists. CLI options are parsed by flash.pipeline.cli.CLIArgumentParser, and the main plugin entry point is flash.pipeline.FLASH_Pipeline.

Example ImageJ macro invocation:

run("FLASH", "dir=[/path/to/project] run_3d run_intensity");

Building

The project uses Maven and targets Java 8 bytecode for Fiji compatibility. Run the Maven wrapper with a JDK available on your system.

On Windows:

.\mvnw.cmd clean package "-Denforcer.skip=true"

On macOS or Linux:

./mvnw clean package -Denforcer.skip=true

The deployable artifact is:

target/FLASH-<version>.jar

Do not deploy *-sources.jar, *-tests.jar, shaded jars, or original-* jars as Fiji plugins.

Testing And Runtime Validation

Run the default Maven suite before committing or building a release:

.\mvnw.cmd test "-Denforcer.skip=true"

The full Maven test suite is expected to be green before release, but a green default suite does not prove every Fiji runtime path, because these runtime-sensitive test classes can be skipped on local machines without the required Fiji plugins, native/GPU dependencies, non-headless runtime, or LIF fixture:

  • flash.pipeline.deconv.engine.Clij2FftEngineTest
  • flash.pipeline.deconv.engine.DeconvolutionLab2EngineTest
  • flash.pipeline.deconv.engine.IterativeDeconvolve3DEngineTest
  • flash.pipeline.deconv.psf.EpflPsfGeneratorAdapterIntegrationTest
  • flash.pipeline.image.FilterExecutorTest
  • flash.pipeline.integration.LifBaselineRegressionTest

Before deployment to lab Fiji installs or public update-site release, validate those areas in a real Fiji install:

  • Install the built target/FLASH-<version>.jar into Fiji or install FLASH from the update site, then confirm the plugin opens.
  • Open Pipeline Dependencies and confirm the Fiji runtime dependencies needed for the planned workflow are present or show clear repair guidance.
  • Run 3D deconvolution with each available engine: CLIJ2 FFT, DeconvolutionLab2, and Iterative Deconvolve 3D. Verify outputs keep the input dimensions and the result is visibly deconvolved.
  • Generate an EPFL PSF from the deconvolution workflow and verify a non-empty, centered PSF is produced.
  • Run a filter or threshold workflow that uses Fiji's Auto Local Threshold command and verify it produces output without a missing-command error.
  • Run a representative .lif project through image loading and split/merge, then verify series count, calibration metadata, and representative outputs match the expected baseline.
  • Record the Fiji version, Java version, operating system, GPU/native dependency state, and pass/fail notes for each runtime-sensitive area.

There is currently no dedicated pom.xml profile or exact Maven command that runs all of these real-Fiji validations. Use the manual checklist above until a real-Fiji integration harness is added.

Repository Layout

pom.xml
mvnw / mvnw.cmd
src/main/java/flash/pipeline/
src/main/resources/plugins.config
src/test/java/flash/pipeline/

Citation

If you use FLASH in published work, please cite it. The concept DOI below always resolves to the latest release:

Malcolm, J. (2026). FLASH: Fluorescence Automated Spatial Histology (Version 5.0.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.21633367

@software{malcolm_flash_2026,
  author    = {Malcolm, Jamie},
  title     = {{FLASH}: {F}luorescence {A}utomated {S}patial {H}istology},
  version   = {5.0.0},
  year      = {2026},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.21633367},
  url       = {https://doi.org/10.5281/zenodo.21633367}
}

Where exact reproducibility matters, cite the DOI of the specific version you ran instead — v5.0.0 is 10.5281/zenodo.21633368.

GitHub's Cite this repository button (top right, generated from CITATION.cff) produces both APA and BibTeX automatically.

If you use specific features, please also cite their upstream tools:

  • Fiji (Schindelin et al., Nature Methods, 2012, doi:10.1038/nmeth.2019)
  • Bio-Formats (Linkert et al., J Cell Biol, 2010, doi:10.1083/jcb.201004104)
  • 3D ImageJ Suite / mcib3d-core (Ollion et al., Bioinformatics, 2013, doi:10.1093/bioinformatics/btt276) for 3D measurement
  • StarDist (Schmidt et al., MICCAI 2018; Weigert et al., WACV 2020) for star-convex segmentation
  • Cellpose (Stringer et al., Nature Methods, 2021, doi:10.1038/s41592-020-01018-x) for generalist cell segmentation
  • TrackMate (Tinevez et al., Methods, 2017, doi:10.1016/j.ymeth.2016.09.016) for tracking

Acknowledgements

Developed by Jamie Malcolm in the Brancaccio Lab at the UK Dementia Research Institute, Imperial College London.

This work was supported by the UK Dementia Research Institute, which receives its core funding from the UK Medical Research Council, the Alzheimer's Society, and Alzheimer's Research UK.

Built on the Fiji / ImageJ ecosystem; we thank the SciJava community for the platform.

License

BSD 3-Clause License. See LICENSE for the full text.

About

Fiji/ImageJ plugin for automated fluorescence microscopy analysis, spatial histology, 3D object analysis, and ROI workflows

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages