Skip to content

Release v0.3.1: track_length range filter#13

Merged
kalidke merged 1 commit into
mainfrom
feature/track-length-filter
May 27, 2026
Merged

Release v0.3.1: track_length range filter#13
kalidke merged 1 commit into
mainfrom
feature/track-length-filter

Conversation

@kalidke

@kalidke kalidke commented May 27, 2026

Copy link
Copy Markdown
Member

Release v0.3.1

Changes

  • Add FrameConnectConfig.track_length::Union{Tuple{Float64,Float64}, Nothing} = nothing — an inclusive (min, max) range on localizations per track. Tracks outside the range are dropped during combinelocalizations.
    • nothing (default) disables filtering — fully backward compatible.
    • (2.0, Inf) drops single-frame blinks.
    • (2.0, 50.0) also drops over-long tracks (fiducials, sticky docking strands in dense DNA-PAINT).
  • Add FrameConnectInfo.n_filtered::Int — cause-attributed count of tracks dropped by the range filter (0 when disabled).
  • Filtering is offset-safe (ncumulative spans all localizations; a keep-mask selects emitted clusters) and only affects the combined output. info.connected retains all tracks as full ground-truth.
  • Mirrors the (min, max) filter idiom used elsewhere in the ecosystem (photons/precision/pvalue).

Breaking Changes

  • None for typical usage. The track_length kwarg defaults to a no-op, and the kwarg/config constructor paths are verified backward compatible. FrameConnectInfo gained n_filtered as a positional field; this affects only code that constructs FrameConnectInfo positionally (an output type normally received, not built). Treated as a patch per pre-1.0 convention.

Version Bump

  • Previous: v0.3.0
  • New: v0.3.1
  • Type: FEATURE/FIX (pre-1.0 patch)

Checklist

  • Version updated in Project.toml
  • Changes documented (docstrings, README, docs/src/index.md, api_overview.md, CLAUDE.md)
  • Tests pass (184 tests)
  • Ready for release

🤖 Generated with Claude Code

Add optional (min, max) localizations-per-track filter on
FrameConnectConfig.track_length (Union{Tuple{Float64,Float64},Nothing},
nothing = disabled). Tracks outside the inclusive range are dropped during
combinelocalizations: (2.0, Inf) removes single-frame blinks, while a finite
upper bound like (2.0, 50.0) also removes over-long tracks (fiducials, sticky
docking strands in dense DNA-PAINT).

Filtering is offset-safe (ncumulative spans all localizations, a keep-mask
selects emitted clusters) and only affects the combined output; info.connected
retains all tracks as full ground-truth. FrameConnectInfo gains n_filtered, a
cause-attributed count of tracks dropped by the range filter.

Docs (docstrings, README, docs/src/index.md, api_overview.md, CLAUDE.md) and
tests updated; 184 tests pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@kalidke kalidke merged commit f06dcda into main May 27, 2026
6 checks passed
@kalidke kalidke deleted the feature/track-length-filter branch May 27, 2026 22:01
@kalidke

kalidke commented May 27, 2026

Copy link
Copy Markdown
Member Author

@JuliaRegistrator register

Release notes:

v0.3.1 - 2026-05-27

Changes

  • Add FrameConnectConfig.track_length — an inclusive (min, max) range on localizations per track. Tracks outside the range are dropped during combination. nothing (default) disables filtering, so existing usage is unchanged. (2.0, Inf) removes single-frame blinks; a finite upper bound like (2.0, 50.0) also removes over-long tracks (fiducials, sticky docking strands in dense DNA-PAINT).
  • Add FrameConnectInfo.n_filtered — cause-attributed count of tracks dropped by the range filter (0 when disabled).
  • Filtering is offset-safe and only affects the combined output; info.connected retains all tracks as full ground-truth.

Breaking Changes

  • None. The track_length kwarg defaults to a no-op and the kwarg/config constructor paths are backward compatible. FrameConnectInfo gained n_filtered as a positional field, affecting only code that constructs that output type positionally.

Released via PR #13

@JuliaRegistrator

Copy link
Copy Markdown

Comments on pull requests will not trigger Registrator, as it is disabled. Please try commenting on a commit or issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants