scverse/anndataR

Implement `from_Seurat` and `to_Seurat`

Opened this issue · 3 comments

Implement `from_Seurat` and `to_Seurat`

from_Seurat strategy

  • Only support single-assays when converting to "AbstractAnnData".
  • When a Seurat object has >1 assay, tell the user the Default assay is being used.
  • Also allow the user to select which assay they want to use.
  • Alternatively, could store original assay name in uns slot. If the stored assay name is available, use that, if not use the default "RNA".
  • Turn each matrix element within the selected assay into layers (counts, data, scaled.data).
  • Set X as counts matrix element by default, as you can always normalise/manipulate the data from afterwards. However, allow the user the option of setting X=NULL
  • Enable conversion of obsm slot
  • Enable conversion of varm slot

to_Seurat strategy

  • Check names of layers, and if they correspond to canonical Seurat matrix element names (counts, data, scaled.data), assign them accordingly.
  • Allow the user to set the assay name. If NULL, will set to Seurat default assay name ("RNA").
  • When X is not provided, use first layer as assay data, and the rest as additional assays.
  • When neither X nor layers are provided, throw error.
  • Enable conversion of obsm slot
  • Enable conversion of varm slot

Sounds good, thanks!

@bschilder @rcannood By the way, I will not have time to work on this anymore before the deadline. You can see what I've done so far in the issue-60-from-seurat-obsm-varm branch. I didn't get to test it very much yet so some parts will probably not work.