scverse / scverse/spatialdata

Clarify uniqueness of index for points and shapes

Open
#1,130 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
394
Forks
95
Avg merge
4d 3h
Merged PRs (30d)
7

Description

Points and shapes are not required to have an unique .index. On the other hand the instance_key obs column of a table requires unique values, and usually shapes (more rarely also points) are annotated by a table. So effectively the uniqueness constraint of the instance_key obs column is transferred to the .index of the shapes or points dataframe.

This can create confusion (one could understand that the index of points and shapes is always unique). For instance this bug https://github.com/scverse/spatialdata/issues/1105 is related to non-uniqueness of Xenium transcripts.

When the new design for inter-element relationships lands (see https://github.com/BiocCodingCollaborations/VeniceHackathon2026/tree/main/interoperability/relationships), this case should be clarified. Also validators will be added to detect/ensure uniqueness when expected.

CC @timtreis

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading issue #1105 and the linked inter-element relationships design to understand the non-unique Xenium transcript case. Define how index uniqueness should be communicated and how future validators should detect or enforce it; the work is done when the expected behavior is explicitly settled.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.