Skip to content

Conversation

@kalidke
Copy link
Member

@kalidke kalidke commented Feb 1, 2026

Summary

  • Breaking change: frameconnect() now returns (combined, info) tuple instead of NamedTuple
  • New ConnectInfo{T} struct with connected SMLD, statistics, photophysics, and timing
  • SMLMData 0.6 compatibility with full covariance propagation
  • Version bump to 0.3.0

Changes

New API

(combined, info) = frameconnect(smld)

# Access results
combined          # BasicSMLD - main output
info.connected    # BasicSMLD with track_id assigned
info.n_input      # Number of input localizations
info.n_tracks     # Number of tracks formed
info.n_combined   # Number of output localizations
info.k_on         # Estimated photophysics
info.elapsed_ns   # Processing time

Files Changed

  • src/connectinfo.jl (new) - ConnectInfo struct
  • src/frameconnect.jl - new return pattern with timing
  • src/combinelocalizations.jl - full 2x2 covariance propagation
  • Updated all tests and documentation

Test plan

  • All 115 tests pass
  • New ConnectInfo tests added
  • Documentation updated (README, api_overview, docs/)

🤖 Generated with Claude Code

kalidke and others added 4 commits January 25, 2026 17:46
Breaking changes:
- Requires SMLMData ≥0.6 (adds σ_xy field to Emitter2DFit)
- clusterdata column layout changed: added σ_xy as column 5

Covariance propagation:
- create_costmatrix: Mahalanobis distance for separation cost,
  ellipse area π√det(Σ) for localization uncertainty
- estimatedensities: Precision-weighted cluster centers with full
  2x2 covariance matrix
- combinelocalizations: Full 2x2 matrix math for combining
  localizations, outputs proper σ_xy_combined

All 96 tests pass.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Breaking change: frameconnect() now returns (combined, info) tuple instead of
NamedTuple with :combined, :connected, :params fields.

New ConnectInfo{T} struct provides:
- connected::BasicSMLD{T} - input with track_id assigned
- Statistics: n_input, n_tracks, n_combined, n_preclusters
- Photophysics: k_on, k_off, k_bleach, p_miss, initialdensity
- Metadata: elapsed_ns (timing), algorithm (:lap)

Also includes:
- SMLMData 0.6 compatibility (σ_xy covariance field)
- Full covariance propagation in combinelocalizations()
- Updated documentation and tests
- Version bump to 0.3.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Resolved conflict in test/test_helpers.jl - using σ_pos naming convention
from smlmdata-0.6-compat branch for clarity (σ_pos for position uncertainty,
σ_xy_cov for covariance).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@kalidke
Copy link
Member Author

kalidke commented Feb 1, 2026

Reverting tuple-pattern rollout - starting fresh

@kalidke kalidke closed this Feb 1, 2026
@kalidke kalidke deleted the feature/tuple-pattern branch February 1, 2026 21:20
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.

1 participant