Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[r] Add initial support for ragged array writing for Seurat v5 #2523

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

mojaveazure
Copy link
Member

@mojaveazure mojaveazure commented May 7, 2024

Seurat v5 adds support for ragged arrays, where not every X layer has exactly the same cells and features. To handle these ragged arrays on ingestion, re-indexing the soma join IDs is necessary to pad the X layer to the full domain of the SOMA measurement

Implemented SOMA methods:

  • write_soma.Assay5(): write a Seurat v5 assay to a SOMA measurement. When writing X layers, if a layer is ragged:
    • cast layer to TsparseMatrix for COO representation
    • re-index Seurat's character IDs to SOMA join IDs
    • re-index COO coordinates to SOMA join IDs
    • write array using SOMASparseNDArray$private$.write_coo_dataframe()

Notes:

  • This PR does not implement alternate matrix (eg. DelayedArray, BPCells) ingestion

resolves #2658

Seurat v5 adds support for ragged arrays, where not every `X` layer has
exactly the same cells and features. To handle these ragged arrays on
ingestion, re-indexing the soma join IDs is necessary to pad the `X`
layer to the full domain of the SOMA measurement

Implemented SOMA methods:
- `write_soma.Assay5()`: write a Seurat v5 assay to a SOMA measurement.
  When writing `X` layers, if a layer is ragged:
  - cast layer to `TsparseMatrix` for COO representation
  - re-index Seurat's character IDs to SOMA join IDs
  - re-index COO coordinates to SOMA join IDs
  - write array using `SOMASparseNDArray$private$.write_coo_dataframe()`

Notes:
 - This PR does not implement alternate matrix (eg. DelayedArray,
   BPCells) ingestion
@mojaveazure mojaveazure force-pushed the paulhoffman/sc-46644/add-support-for-ragged-arrays-in-write-soma branch from b21a806 to 49e4edf Compare May 30, 2024 21:01
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.

[r] Add support for ragged arrays in write_soma()
1 participant