Parameter Reference
exo2micro has 29 tunable parameters in v2.3. For most use cases the defaults work well and you won’t need to change anything. This page documents every parameter, its filename abbreviation, default value, and the pipeline stage it affects.
How parameters affect filenames
Only non-default parameters appear in checkpoint filenames. A run
with all defaults produces clean names like
02_icp_aligned_pre.tiff. When you change a parameter, its
abbreviation and value are appended:
02_icp_aligned_pre_bw20.tiff.
Upstream parameters cascade into downstream filenames. Changing
pad (stage 1) to 3000 affects all stages:
01_padded_post_pad3000.tiff
02_icp_aligned_pre_pad3000.tiff
03_interior_aligned_pre_pad3000.tiff
04_difference_difference_pad3000.tiff
This means different parameter settings coexist in the same directory without overwriting each other.
Full parameter table
Parameter |
Abbrev |
Default |
Stage |
Description |
|---|---|---|---|---|
|
|
2000 |
1 |
Zero-padding pixels added on each side before registration |
|
|
True |
2 |
Focus coarse pass on tissue boundary rings |
|
|
15 |
2 |
Boundary ring thickness in pixels at coarse resolution |
|
|
10 |
2 |
Gaussian softening sigma on the boundary ring |
|
|
True |
2 |
Search over rotations in the coarse pass |
|
|
20 |
2 |
Rotation search range: ± degrees |
|
|
1 |
2 |
Rotation search step size in degrees |
|
|
True |
2 |
Search over isotropic scale factors in coarse pass |
|
|
0.85 |
2 |
Minimum scale factor to search |
|
|
1.15 |
2 |
Maximum scale factor to search |
|
|
0.05 |
2 |
Scale search step size |
|
|
True |
2 |
Run boundary correlation coarse pass before ICP |
|
|
0.3 |
2 |
Downsample factor for alignment visualization |
|
|
False |
2 |
Run a fine homography ECC pass after ICP (rarely useful) |
|
|
200 |
2 |
Maximum allowed ICP translation in pixels |
|
|
5.0 |
2 |
Maximum allowed ICP rotation in degrees |
|
|
0.2 |
2 |
Maximum deviation of scale from 1.0 |
|
|
0.15 |
2 |
Maximum allowed absolute difference between scale_x and scale_y |
|
|
500 |
2 |
Maximum ECC iterations for legacy fine pass |
|
|
1e-6 |
2 |
ECC convergence threshold for legacy fine pass |
|
|
False |
2 |
Save coarse-only alignment intermediate for diagnosis |
|
|
True |
3 |
Enable interior SIFT refinement after ICP |
|
|
3 |
3 |
Not used (retained for API compatibility) |
|
|
8.0 |
3 |
Gaussian blur sigma applied before SIFT feature detection |
|
|
95 |
3 |
Not used (retained for API compatibility) |
|
|
500 |
3 |
Max allowed total correction from SIFT (full-res pixels) |
|
|
0.4 |
3 |
Minimum RANSAC inlier ratio to accept interior alignment |
|
|
None |
4 |
If set (float), produce an additional difference image using this percentile of the log₁₀(post/pre) distribution as the scale |
|
|
None |
4 |
If set (float), produce an additional difference image using this exact scale factor |
Parameters that matter most
In practice you will almost never touch most parameters. Here are the ones that come up most often when tuning exo2micro for a new dataset:
boundary_width/boundary_smooth— when coarse alignment is struggling. Bigger values are more tolerant of shape differences between pre and post.angle_range— when your samples can rotate significantly between imaging sessions.interior_blur_base— when SIFT is struggling in stage 3. Higher values suppress microbe-scale features so they don’t corrupt the feature matching.interior_ecc=False— when the sample interior is too uniform for SIFT and you want to fall back to the stage 2 result.scale_percentile— when you want to produce a difference image using a percentile of the ratio distribution alongside the Moffat fit (see Scale Estimation Methods).manual_scale— when you want to override the scale estimate entirely with a value of your choice.
Setting parameters
In Python:
run = e2m.SampleDye('CD070', 'SybrGld_microbe')
run.set_params(boundary_width=20, scale_percentile=50.0)
run.run()
In the GUI: open the Advanced Parameters accordion and adjust
values in the appropriate stage tab. For the scale-related options,
use the top-level Scale dropdown rather than editing
scale_percentile / manual_scale in the accordion — the
dropdown provides a cleaner interface and ensures the right
values flow through.
Resetting to defaults:
run.reset_params()
Filename parsing
To decode a filename suffix back to parameter values:
from exo2micro.defaults import params_from_suffix
params_from_suffix('_bw20_sp50')
# → {'boundary_width': 20, 'scale_percentile': 50.0}
To build a filename suffix from current parameters:
from exo2micro.defaults import build_suffix, DEFAULTS
params = dict(DEFAULTS)
params['boundary_width'] = 20
params['manual_scale'] = 1.42
build_suffix(params, stage=4)
# → '_bw20_msc1.42'
Legacy parameters
The following parameters existed in v2.1 and earlier but have been removed in v2.3 because the pipeline stages that used them no longer exist:
signal_threshold,dilation_iters— from the deleted joint tissue mask stage.robust_percentile— replaced byscale_percentile(identical math, clearer name).signal_percentile,noise_floor_percentile,boundary_erosion,n_hist_bins,zoom_box— from the deleted LS/robust-percentile scaling stage.
If you have scripts that pass any of these via set_params,
they’ll raise ValueError("Unknown parameter ..."). See
Migration Guide for how to update them.