Skip to content

loom: read Baysor's and R LoomExperiment's looms - #59

Merged
Claptar merged 1 commit into
mainfrom
fix/loom-other-writers
Oct 19, 2026
Merged

Claptar merged 1 commit into
mainfrom
fix/loom-other-writers

Conversation

@Claptar

@Claptar Claptar commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #57 (#26), from converting 29 real looms found across cellgeni tickets: 22 Baysor segmentation counts (Xenium), 3 looms written through anndata/loompy, 3 R package examples (LoomExperiment, SummarizedExperiment), and a 2.3 GB Baysor ncvs.loom.

All 28 that were recognised already matched anndata.read_loom and exported to looms loompy validates. Fixed:

  • A .loom holding /matrix alone (Baysor's ncvs.loom, no attribute groups) was not recognised. In a file named .loom it now reads as a loom; the same content under another name is still refused. The 7,979,604 x 8,729 file converted in 10.5 min at a 211 MB Python-level peak; random blocks match the loom.
  • Baysor names genes in Name: now a fallback for gene symbols, so its looms no longer get numbered genes.
  • R's LoomExperiment writes LOOM_SPEC_VERSION as a one-element array (the summary showed ['2.0.1']) and graph vertices as floats (loompy refuses the file); vertices are now checked to be whole numbers rather than truncated.

Each has a regression test in tests/test_loom.py.

🤖 Generated with Claude Code

Found converting 29 real looms from cellgeni tickets:
- Baysor writes some looms as /matrix alone, with no attribute groups;
  in a file named .loom that is now read as a loom.
- Baysor names genes in a 'Name' row attribute, now a fallback for
  gene symbols.
- R's LoomExperiment writes LOOM_SPEC_VERSION as a one-element array
  (summaries showed "['2.0.1']") and graph vertices as floats, now
  checked to be whole numbers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 19, 2026 19:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T19:05:12.911905Z c279f07 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (py3.13)

1 539 tests   1 539 ✅  3m 48s ⏱️
    1 suites      0 💤
    1 files        0 ❌

Results for commit c279f07.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (py3.12)

1 539 tests   1 539 ✅  3m 54s ⏱️
    1 suites      0 💤
    1 files        0 ❌

Results for commit c279f07.

@Claptar
Claptar merged commit b5b5017 into main Oct 19, 2026
6 checks passed
@Claptar
Claptar deleted the fix/loom-other-writers branch October 19, 2026 19:11
@Claptar Claptar mentioned this pull request Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants