Skip to content

feat(panel): track panel sources and concatenate panels - #482

Open
Aratz wants to merge 4 commits into
pna-3624_combined_panelsfrom
cursor/03-panel-sources-concatenate-e226
Open

Aratz wants to merge 4 commits into
pna-3624_combined_panelsfrom
cursor/03-panel-sources-concatenate-e226

Conversation

@Aratz

@Aratz Aratz commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • A panel is one or more PanelSources. name, version, and the other single-source properties raise unless the panel has exactly one source.
  • concatenate joins panels. Equality ignores source order.
  • Stacks on the hashing-marker pull request. The patch-alignment pull request is based on this branch.

Test plan

  • CI passes (ruff, ruff format, mypy, pytest)
  • Concatenation, equality, replace_source, and source_as_panel tests pass
  • Adding a multi-source panel through config is rejected

Made with Cursor

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

Comment thread src/pixelator/pna/config/panel/antibody_panel.py
@Aratz
Aratz requested a review from elhb October 5, 2026 14:46
@Aratz
Aratz added this pull request to stack #490 October 6, 2026 12:13

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

Comment thread src/pixelator/pna/config/panel/antibody_panel.py
Base automatically changed from cursor/02-hashing-marker-id-helpers-e226 to pna-3624_combined_panels October 6, 2026 13:52
cursoragent and others added 2 commits October 6, 2026 16:00
A PNAAntibodyPanel now records the panel files that contributed its markers. Metadata properties are only defined for a single source. Panels can be concatenated, split per source, and compared independently of source order.

Co-authored-by: Adrien Coulier <adrien.coulier@pixelgen.com>
@Aratz
Aratz force-pushed the cursor/03-panel-sources-concatenate-e226 branch from bf13818 to 2f8d6d5 Compare October 6, 2026 14:02

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 21b32de. Configure here.

source_ids.astype("int64"),
file_name=self.filename if single_source else None,
filepath=self.filepath if single_source else None,
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Negative source index mishandles markers

Low Severity

replace_source and source_as_panel use the same integer as a Python list index and as a marker_source_ids value. Negative indexes select a source from sources but match no marker ids, so replace_source(-1, ...) keeps every original marker, attaches replacement rows under id -1, and overwrites the last source's metadata.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 21b32de. Configure here.

This branch has not been deployed

No deployments
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.

3 participants