Skip to content

Tracking possible detections via correlation table (and zipfft integration) - #126

Merged
mgiammar merged 28 commits into
Lucaslab-Berkeley:development_v1.3from
mgiammar:mdg-hdf5-corr-table
Aug 7, 2026
Merged

Tracking possible detections via correlation table (and zipfft integration)#126
mgiammar merged 28 commits into
Lucaslab-Berkeley:development_v1.3from
mgiammar:mdg-hdf5-corr-table

Conversation

@mgiammar

Copy link
Copy Markdown
Member

No description provided.

mgiammar and others added 17 commits September 23, 2025 22:26
Under the standard benchmark setup, this should be excluding ~25% of pixels during the conditional update based on MIP value. Benchmarking the code did not show a significant performance change, however. Statistics updates though are not consuming the majority of computation time.
…b-Berkeley#122)

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@v2...v3)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@mgiammar mgiammar self-assigned this May 16, 2026
@mgiammar mgiammar added the enhancement New feature or request label May 16, 2026
@mgiammar
mgiammar changed the base branch from main to development_v1.3 May 16, 2026 19:58
Comment thread benchmark/benchmark_match_template.py Outdated
Comment thread src/leopard_em/backend/core_match_template.py
Comment thread src/leopard_em/backend/core_match_template_distributed.py Outdated
Comment thread src/leopard_em/backend/process_results.py Outdated
Comment thread src/leopard_em/pydantic_models/results/correlation_table.py Outdated
Comment thread src/leopard_em/pydantic_models/results/correlation_table.py Outdated
Comment thread src/leopard_em/pydantic_models/results/correlation_table.py Outdated
Comment thread tests/backend/test_core_match_template.py Outdated
Comment thread tests/self_consistency/test_backend_cross_correlate.py Outdated
@mgiammar
mgiammar merged commit 1912d71 into Lucaslab-Berkeley:development_v1.3 Aug 7, 2026
8 checks passed
mgiammar added a commit to mgiammar/Leopard-EM that referenced this pull request Aug 12, 2026
…ation) (Lucaslab-Berkeley#126)

* feat: only update statistics on valid correlation region

Under the standard benchmark setup, this should be excluding ~25% of pixels during the conditional update based on MIP value. Benchmarking the code did not show a significant performance change, however. Statistics updates though are not consuming the majority of computation time.

* feat: add correlation table to multi-GPU match template

* fix: update correlation table for stability

* feat: initial integration with zipFFT

* test: update unit tests for zipFFT consistency

* fix: minor bug fixes for zipfft match template

* fix: changed to mitigate errors on feature integration

* feat: integrate all stats updates together and simplify backend logic

* lint: work towards passing linter

* ci(dependabot): bump softprops/action-gh-release from 2 to 3 (Lucaslab-Berkeley#122)

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@v2...v3)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bugfix to send correlation mean/var to proper devices on multi-GPU refine template (Lucaslab-Berkeley#125)

* feat: add CorrelationTable model and integrate into match template results

* test: add basic test coverage for correlation table

* fix: add tensordict dependency and update pytest filterwarnings

* fix: import errors after merge conflict resolution

* feat: add hdf5-backed version of MatchTemplateResult

* feat: integrate into match template manager

* test: add unit tests covering new result functionality

* feat: (untested) initial work on hdf5 backed result formats

* fix: failing CI from old file path attributes

* (fix) resolve edge-case in unit test data setup

* feat: add corr table for distributed backend, address review comments

* feat: add option to skip re-download of example data

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Josh Dickerson <jdickerson@mrc-lmb.cam.ac.uk>
mgiammar added a commit that referenced this pull request Aug 13, 2026
* ci(dependabot): bump softprops/action-gh-release from 2 to 3 (#122)

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@v2...v3)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bugfix to send correlation mean/var to proper devices on multi-GPU refine template (#125)

* (docs) migrate to zensical as build backend

* (docs) API build for zensical

* (docs) update paper ref and citation to published manuscript

* (CI/CD) update deployment pipeline for documentation with zensical

* ci(dependabot): bump codecov/codecov-action from 6 to 7 (#128)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6 to 7.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@v6...v7)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* (fix): CI/CD disable pre-release install dependencies

* Prior inspect peaks work (#124)

* feat: inspect peaks, fourier dropout, frame correlations, and distributed match-template

Squashed rebuild of the mdg_inspect_peaks PR (#124) on top of
development_v1.3 to remove duplicated upstream history. Tree is
identical to prior branch tip 84d1ce8.

* feat: pull out mean/std normalization into z-score from refinement core

* feat: implement peak inspection result saving/loading and refactor related components

* refactor: streamline peak inspection methods

* refactor: major restructuring of the per-frame inspect peaks manager

* Enhance per-frame inspection and result handling

- Introduced per-frame inspection capabilities in `inspect_peaks_result.py`, allowing independent scoring of each movie frame.
- Updated `InspectionResult` to include a `frame_index` for tracking frame-specific results.
- Modified `save_inspection_result` to handle per-frame data, including new axes for frame-specific results.
- Refactored `FrameInspectionManager` to streamline per-frame processing and result collection, including a new method for saving results to `.npz` files.
- Added tests for saving and loading inspection results, ensuring correct handling of both spatial and per-frame data formats.
- Adjusted `PreprocessingFilters` to conditionally apply random Fourier dropout during filter combination.
- Removed unused methods related to cross-correlation peak reduction and CSV output from `FrameInspectionManager`.

* fix: filter warnings raised internally by mrcfile

* Tracking possible detections via correlation table (and zipfft integration) (#126)

* feat: only update statistics on valid correlation region

Under the standard benchmark setup, this should be excluding ~25% of pixels during the conditional update based on MIP value. Benchmarking the code did not show a significant performance change, however. Statistics updates though are not consuming the majority of computation time.

* feat: add correlation table to multi-GPU match template

* fix: update correlation table for stability

* feat: initial integration with zipFFT

* test: update unit tests for zipFFT consistency

* fix: minor bug fixes for zipfft match template

* fix: changed to mitigate errors on feature integration

* feat: integrate all stats updates together and simplify backend logic

* lint: work towards passing linter

* ci(dependabot): bump softprops/action-gh-release from 2 to 3 (#122)

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@v2...v3)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bugfix to send correlation mean/var to proper devices on multi-GPU refine template (#125)

* feat: add CorrelationTable model and integrate into match template results

* test: add basic test coverage for correlation table

* fix: add tensordict dependency and update pytest filterwarnings

* fix: import errors after merge conflict resolution

* feat: add hdf5-backed version of MatchTemplateResult

* feat: integrate into match template manager

* test: add unit tests covering new result functionality

* feat: (untested) initial work on hdf5 backed result formats

* fix: failing CI from old file path attributes

* (fix) resolve edge-case in unit test data setup

* feat: add corr table for distributed backend, address review comments

* feat: add option to skip re-download of example data

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Josh Dickerson <jdickerson@mrc-lmb.cam.ac.uk>

* (docs) add updates to data format sections

* (docs) add information on zipFFT backend

* (docs) restrict documentation dependencies

* (docs) add documentation on inspect peaks/frames

* (docs) remove python 3.10 as supported version

* (lint) fix pylint errors towards allowing CI/CD

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Josh Dickerson <jdickerson@mrc-lmb.cam.ac.uk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants