# -*- coding: utf-8 -*-
"""
This file contains all the tunables available in mycelyso.
You can set them via :code:`-t Name=value` on the command line.
"""
from tunable import Tunable
from .processing import binarization as binarization_module
[docs]class NodeEndpointMergeRadius(Tunable):
""" Radius in which endpoints are going to be merged [µm] """
default = 0.5
[docs]class NodeJunctionMergeRadius(Tunable):
""" Radius in which junctions are going to be merged [µm] """
default = 0.5
[docs]class NodeLookupRadius(Tunable):
""" Radius in which nodes will be searched for found pixel structures [µm] """
default = 0.5
[docs]class NodeLookupCutoffRadius(Tunable):
""" Radius at which nodes will be ignored if they are further away [µm] """
default = 2.5
[docs]class NodeTrackingJunctionShiftRadius(Tunable):
""" Maximum search radius for junctions [µm·h⁻¹] """
default = 5.0
[docs]class NodeTrackingEndpointShiftRadius(Tunable):
""" Maximum search radius for endpoints [µm·h⁻¹] """
default = 100.0
[docs]class CropWidth(Tunable):
""" Crop value (horizontal) of the image [pixels] """
default = 0
[docs]class CropHeight(Tunable):
""" Crop value (vertical) of the image [pixels] """
default = 0
[docs]class BoxDetection(Tunable):
""" Whether to run the rectangular microfluidic growth structure detection as ROI detection """
default = False
[docs]class StoreImage(Tunable):
""" Whether to store images in the resulting HDF5. This leads to a potentially much larger output file. """
default = False
[docs]class SkipBinarization(Tunable):
""" Whether to directly use the input image as binary mask. Use in case external binarization is desired. """
default = False
[docs]class CleanUpGaussianSigma(Tunable):
"""Clean up step: Sigma [µm] used for Gaussian filter"""
default = 0.075
[docs]class CleanUpGaussianThreshold(Tunable):
"""Clean up step: Threshold used after Gaussian filter (values range from 0 to 1)"""
default = 0.5
[docs]class CleanUpHoleFillSize(Tunable):
"""Clean up step: Maximum size of holes [µm²] which will be filled"""
default = 1.0
[docs]class RemoveSmallStructuresSize(Tunable):
"""Remove structures up to this size [µm²]"""
default = 10.0
[docs]class BorderArtifactRemovalBorderSize(Tunable):
"""Remove structures, whose centroid lies within that distance [µm] of a border"""
default = 10.0
[docs]class TrackingMaximumRelativeShrinkage(Tunable):
""" Tracking, maximal relative shrinkage """
default = 0.2
[docs]class TrackingMinimumTipElongationRate(Tunable):
""" Tracking, minimum tip elongation rate [µm·h⁻¹]"""
default = -0.0
[docs]class TrackingMaximumTipElongationRate(Tunable):
""" Tracking, maximum tip elongation rate [µm·h⁻¹] """
default = 100.0
[docs]class TrackingMaximumCoverage(Tunable):
""" Tracking, maximum covered area ratio at which tracking is still performed """
default = 0.2
[docs]class TrackingMinimumTrackedPointCount(Tunable):
""" Tracking, minimal time steps in track filter [#] """
default = 5
[docs]class TrackingMinimalMaximumLength(Tunable):
""" Tracking, minimal hyphae end length in track filter [µm] """
default = 10.0
[docs]class TrackingMinimalGrownLength(Tunable):
""" Tracking, minimal hyphae gained length in track filter [µm] """
default = 5.0
[docs]class ThresholdingTechnique(Tunable):
""" Binarization method to use, for available methods see documentation (mycelyso.processing.binarization) """
[docs] @classmethod
def test(cls, value):
return value in dir(binarization_module)
default = "experimental_thresholding"
[docs]class ThresholdingParameters(Tunable):
""" Parameters for the used binarization method, passed as key1:value1,key2:value2,... string """
default = ""