Skip to content

Python scripts for the SearchFirst option in Wako Software Suite

Notifications You must be signed in to change notification settings

fmi-faim/faim-wako-searchfirst

Repository files navigation

FAIM Wako SearchFirst

DOI codecov test PyPI - Version PyPI - Python Version


Table of Contents

Installation

pip install faim-wako-searchfirst

Usage

Configuration is managed in a config.yml file:

# Required

# criteria for file selection in case of multiple channels/slices per position
file_selection:
    channel: C01

# choose method how to segment, filter, and sample the objects
process:
    # segment methods: threshold, cellpose
    segment: threshold
    # filter methods: bounding_box, area, solidity, feature, border, intensity, dilate
    filter: [bounding_box, area, solidity, feature, border, intensity, dilate]
    # sample methods: centers, grid_overlap, dense_grid,
    #                 object_centered_grid, region_centered_grid
    sample: centers

# Each section below provides arguments to one of the methods set in 'process'.
# Config sections for methods not selected above will be ignored.

# segment
threshold:
    threshold: 128
    include_holes: true
    gaussian_sigma: 0.0  # default: 0.0

# filter
bounding_box:
    min_x: 64
    min_y: 0
    max_x: 256
    max_y: 190
area:
    min_area: 100
    max_area: 10000
solidity:
    min_solidity: 0.9
    max_solidity: 1.0
feature:
    feature: eccentricity
    min_value: 0.0
    max_value: 0.99
border:
    margin: 5  # default: 0
intensity:
    target_channel: C03
    min_intensity: 128
dilate:
    pixel_distance: 1.0

# sample
dense_grid:
    binning_factor: 50  # default: 50
grid_overlap:
    mag_first_pass: 4
    mag_second_pass: 60
    overlap_ratio: 0.05  # default: 0
object_centered_grid:
    mag_first_pass: 4
    mag_second_pass: 60
    overlap_ratio: 0.05  # default: 0
region_centered_grid:
    mag_first_pass: 4
    mag_second_pass: 60
    overlap_ratio: 0.05  # default: 0

The Python script called by Wako Automation Software needs to accept the acquisition folder folder_path as only parameter:

import typer
from faim_wako_searchfirst.main import run

def main(folder_path: str):
    run(folder=folder_path, configfile="config.yml")

if __name__ == "__main__":
    typer.run(main)

License

faim-wako-searchfirst is distributed under the terms of the MIT license.