Skip to content

Conversation

@jeanpat
Copy link
Collaborator

@jeanpat jeanpat commented Oct 25, 2025

Summary

  • add a PyQt5 main window with slide/metaphase navigation, channel toggles, and integrated preprocessing, alignment, segmentation, and batch tabs
  • implement dedicated preprocessing, alignment, segmentation, and batch control panels with per-channel persistence backed by JSON configuration files
  • provide dataset discovery utilities with synthetic data fallback and document the new viewer workflow in the README

Testing

  • python -m py_compile viewer/.py viewer/utils/.py

https://chatgpt.com/codex/tasks/task_e_68f9f9ca3bbc832b93dc15fd399c331a

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +72 to +79
def set_channel(self, channel: str, data: Dict[str, Tuple[int, int]]) -> None:
self._channel = channel
self.label.setText(f"Channel: {channel} relative to DAPI")
if channel not in self._offsets:
self._offsets[channel] = (0, 0)
if data and channel in data:
self._offsets[channel] = tuple(data[channel])
self.dy_spin.blockSignals(True)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Clear per-channel offsets when slide changes

The alignment panel keeps a _offsets dictionary across slides, but set_channel() only overwrites an entry when the channel is missing or present in the new slide’s configuration. When a user opens slide A, adjusts Cy3 offsets, then switches to a slide whose alignment.json does not define Cy3 offsets, the existing entry is reused and subsequently persisted by _persist_current_config(). This silently copies the offsets from the previous slide into the new slide and misaligns every channel without any user action. The offsets should be reset when new slide data is provided or when the channel is not present in the passed dictionary.

Useful? React with 👍 / 👎.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants