Skip to content

Tuple-pattern return, snake_case fields, SMLMData 0.7#11

Merged
kalidke merged 13 commits intomainfrom
feature/tuple-pattern
Feb 8, 2026
Merged

Tuple-pattern return, snake_case fields, SMLMData 0.7#11
kalidke merged 13 commits intomainfrom
feature/tuple-pattern

Conversation

@kalidke
Copy link
Copy Markdown
Member

@kalidke kalidke commented Feb 8, 2026

Summary

  • Return (combined, info) tuple from frameconnect() with FrameConnectInfo metadata struct
  • Rename ConnectConfig/ConnectInfo to FrameConnectConfig/FrameConnectInfo inheriting from SMLMData abstract types
  • Rename all struct fields to snake_case: nnearestclustersn_density_neighbors, nsigmadevmax_sigma_dist, maxframegapmax_frame_gap, nmaxnnmax_neighbors, initialdensityinitial_density
  • Update SMLMData compat to 0.7 (registered version)
  • Full covariance propagation for σ_xy support
  • Add CLAUDE.md, update docs/README/api_overview/examples

Test plan

  • All 115 tests pass locally
  • New kwarg names work: FrameConnectConfig(max_frame_gap=10, max_sigma_dist=3.0)
  • Grep confirms zero remaining old field names
  • CI passes

🤖 Generated with Claude Code

kalidke and others added 13 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: frameconnect() now returns (combined, info) instead of NamedTuple

- Add ConnectInfo struct with track assignments and algorithm metadata
- Capture timing with elapsed_ns field
- Include n_input, n_tracks, n_combined, n_preclusters counts
- Rate parameters (k_on, k_off, k_bleach, p_miss) accessible via info
- Update all tests, examples, and documentation
- Bump version to 0.4.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add ConnectConfig with @kwdef for algorithm parameters
- Support both calling conventions:
  - frameconnect(smld, config::ConnectConfig)
  - frameconnect(smld; kwargs...) forwards to config form
- Export ConnectConfig from module
- All 115 tests pass

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- README: Add Configuration section with kwargs and config struct examples
- api_overview: Add ConnectConfig type, update frameconnect signatures

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
ConnectConfig <: AbstractSMLMConfig, ConnectInfo <: AbstractSMLMInfo
from SMLMData v0.6.0 (feature/tuple-pattern c366f68).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ctInfo

Namespace-qualified type names across struct definitions, exports,
tests, docs, README, and api_overview.md. Zero old names remain.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove dev/path dependency override. SMLMData now resolves from
General registry as v0.7.0 (requires AbstractSMLMConfig/Info types).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Renames: nnearestclusters→n_density_neighbors, nsigmadev→max_sigma_dist,
maxframegap→max_frame_gap, nmaxnn→max_neighbors, initialdensity→initial_density.
Also removes redundant `using SMLMData` from doc examples (re-exported).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
actions/cache v1 was deprecated by GitHub, causing immediate CI failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@kalidke kalidke merged commit 156cf53 into main Feb 8, 2026
9 checks passed
@kalidke kalidke deleted the feature/tuple-pattern branch February 8, 2026 23:15
kalidke referenced this pull request Feb 9, 2026
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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