Repository navigation
Conversation
- Modified pyproject.toml to add dependencies for volume reading, validation and config writing. - Modified uv.lock to add dependencies for volume reading, validation and config writing.
- Added utils/star.py to define utility functions for reading & writing STAR file loops and for merging tomograms.star files from several RELION runs into one with absolute paths and run-prefixed names. - Added tests/conftest.py to add fixture mocking a fake RELION project. - Added tests/test_utils.py to define tests for utility functions, and added tests for STAR file round trips, prefixing, absolute paths, duplicate skipping and empty-run errors.
- Added config.py to define the project settings, per-kind definitions, ring estimator parameters, and TOML loading/saving. - Added tests/test_config.py to add tests for default cage kind, TOML save & load round trip, path resolution and kind validation.
- Added utils/io.py to define utilities for pairing STAR file rows to raw and (optionally) denoised MRCs, rejecting tomograms whose header disagrees with the STAR file, and reading volumes as read-only memory maps. - Modified tests/conftest.py to add fixture for writing a small synthetic project. - Modified tests/test_utils.py to add tests for utils/io.py.
- Added utils/coords.py to define utilities for converting between reconstruction voxels and RELION centred Angstrom coordinates. - Modified tests/test_utils.py to add tests for utils/coords.py.
- Added project.py to create a project directory containing configuration TOML file from merged RELION runs. - Added tests/test_project.py to define tests for project creation.
- Modified pyproject.toml to add dependencies for GUI and GUI testing. - Modified uv.lock to add dependencies for GUI and GUI testing.
- Modified project.py to add schema for an open project, and to save changed settings to the project's configuration. - Modified tests/test_project.py to add tests for project opening/saving.
- Added gui/workers.py to create a thread pool which runs functions in background, returning results/errors. - Added tests/gui/test_workers.py to define tests for GUI functions, and added tests for workers.
- Added gui/new_project_dialog.py to create dialog for collating RELION runs, tomogram jobs, raw/denoised directories and project directory. - Added tests/gui/test_new_project_dialog.py to define tests for creating new project via dialog.
- Added gui/project_tab.py to open or create a project, list tomograms with shapes/pixel size/denoised pairing/rejection reason, and edit the volume source and ring estimator parameters. - Added tests/test_project_tab.py to add tests covering the project tab's functionality.
- Added gui/main_window.py to wrap tabs into single window. - Added gui/app.py to create the application and window. - Modified __init__.py to add entrypoint for pickmix command. - Added tests/test_main_window.py to define tests for tabs only becoming enabled once a project opens.
- Added estimate/registry.py to define estimator registry and fit results. - Added estimate/none.py to define the passthrough estimator. - Added tests/test_estimate.py to define tests for estimator registry and passthrough.
- Added gui/kinds_tab.py to add/edit/remove pick kinds, and to reorder for hotkey assignment. - Added tests/test_kinds_tab.py to define tests for loading/editing/saving kinds and rejecting invalid input.
- Modified gui/main_window.py to show the Kinds tab and refresh it whenever a project opens or reloads. - Modified tests/test_main_window.py to add test to check the Kinds tab shows the opened project's kinds.
- Added timing.py to print per-step elapsed time to stderr when enabled. - Added tests/test_timing.py to check timing output appears only when enabled.
- Added model.py to define schema for recording picks, picks per tomogram and kind and adding tomogram navigation/progress information. - Added tests/test_model.py to define tests for pick and tomogram navigation/progress schema.
- Added loader.py to open tomograms in the background, compute contrast limits and to prefetch the next tomogram. - Added tests/test_loader.py to define tests for loading/prefetching tomograms and computing contrast limits.
- Added gui/canvas.py to draw Z slice and kind markers. - Added tests/test_canvas.py to define tests covering rendering, marker visibility and controls.
- Added gui/tomo_dock.py to list tomograms with pick counts, selected/opened tomograms, and a navigation box. - Added tests/test_tomo_dock.py to define tests for tomogram dock.
- Added gui/pick_tab.py to show current tomogram's slice and picks with controls. - Added tests/test_pick_tab.py to define tests for pick tab.
- Modified gui/main_window.py to show the Picks tab and tomogram dock, and refresh it when kinds or settings are saved. - Modified tests/test_main_window.py to add test to check the Picks tab shows the current session, steps correctly, and is only enabled for an open project.
- Modified pyproject.toml to add dependencies for image processing. - Modified uv.lock to add dependencies for image processing.
- Added estimate/ring.py to fit a dark ring to a z slab grown about the pick until ring contrast stops improving. - Modified estimate/registry.py to register the ring estimator. - Modified tests/test_estimate.py to define tests for ring score and fit. - Modified tests/test_kinds_tab.py to update unregistered estimator name.
- Added estimates.py to store a fit per pick keyed by position and digest of the settings and to queue estimates. - Added tests/test_estimates.py to cover estimating in background.
- Added export.py to write a particles file and per-tomogram coordinate files per kind in centred Angstrom, apply SNR and flag filters, and recommend the box size to use. - Added extract.py to cut cubic boxes at the fitted centres into per-kind folders, padding with the local mean at volume edges. - Added tests/test_export.py to define tests covering particle/coordinate export. - Added tests/test_extract.py to define tests covering box extraction.
- Modified gui/canvas.py to draw add rings/boxes to picks. - Modified gui/pick_tab.py to estimate extents in background. - Modified tests/test_canvas.py to define tests covering overlay visibility. - Modified tests/test_pick_tab.py to define tests covering background estimate and overlays.
- Added gui/review_tab.py to list all picks with kind, tomogram, filters, and to export particles or extract boxes. - Modified gui/main_window.py to show the Review tab. - Added tests/test_review_tab.py to add tests covering Review tab functionality. - Modified tests/test_main_window.py to add test for Review tab.
- Modified utils/coords.py to convert unit membrane normal to rotation, tilt and psi angles in degrees and back. - Modified tests/test_utils.py to check axes, rotation convention and the round trip for normal to euler angle conversion.
- Added geometry.py to find the nearest parent fit for a given pick and its outward normal and angles. - Added tests/test_geometry.py to define tests for parent matching.
- Modified export.py to add functions to export subtomogram angles, zeroed refinement angles and optional tilt priors. - Modified tests/test_export.py to add tests covering updated export functionality.
- Modified gui/canvas.py to draw arrow for normal on picks with parents. - Modified gui/pick_tab.py to match parents for the current tomogram, draw normals, and flag picks with no parent. - Modified gui/review_tab.py to flag picks with no parent, report before export and pass geometry to the export. - Modified tests/test_canvas.py to add tests covering the drawn normal arrows. - Modified tests/test_pick_tab.py to add tests covering normal arrows and the noparent flag. - Modified tests/test_review_tab.py to add tests covering orphan flagging, export report and written angles.
- Modified test_config.py to refactor tests into a class.
- Modified pyproject.toml to add dependency for writing PNGs. - Modified uv.lock to add dependency for writing PNGs.
- Modified extract.py to export pixel size check and box size calculation. - Added average.py to cut boxes at fitted picks, average per tomogram and write PNGs. - Added tests/test_average.py to cover a blob appearing in the mean, files written, empty case and mixed pixel sizes.
- Added gui/images.py to turn arrays into scaled pixmaps. - Added gui/average_pane.py to choose kinds and tomograms, run the average in the background, and show averaging results. - Modified gui/review_tab.py to use the shared pixmap helper. - Modified gui/kinds_tab.py to add average pane. - Modified gui/main_window.py to refresh average pane when kinds change. - Added tests/gui/test_average_pane.py to add tests covering the tomogram list, an averaging run and empty cases. - Modified tests/gui/test_main_window.py to add test covering the average pane wiring.
- Modified README.md to include information on pickmix and screenshots of how to use. - Added docs/images/*.png to include screenshots of pickmix GUI for docs.
Merge pull request #1 from holsam/v0.1.0-release
- Added .github/workflows/check-version-increment.yaml to check that version numbers increase when pull requests raised against main branch. - Added .github/workflows/publish-release.yaml to automate release publication on merges to main branch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog
pickmixfunctionality, including a GUI for setting up projects/defining kinds/picking particles/exporting coordinates (Initialpickmixfunctionality #1).