Start a fresh conversation. Replace the highlighted placeholders.
Use bioconductor-scarray to convert [large SingleCellExperiment or count matrix] to GDS at [local output destination], then produce a GDS-backed normalized object with memory-efficient PCA using scRunPCA.
Required inputs
[large SingleCellExperiment or count matrix]
[local output destination]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: bioconductor-scarraydescription: Provides large-scale single-cell omics data manipulation using Genomic Data Structure (GDS) files. It combines dense and sparse matrices stored in GDS files and the Bioconductor infrastructure framework (SingleCellExperiment and DelayedArray) to provide out-of-memory data storage and large-scale manipulation using the R programming language.when_to_use: Use when: Overview; Single-cell RNA-seq data manipulation using GDS files; Single-cell RNA-seq analysis (SCArray). Not for: Requires R ≥ 3.5.0 and Bioconductor ≥ 3.16user-invocable: false
scarray
Workflows
Standard Workflow
Convert single-cell data to GDS format, load it as a GDS-backed SingleCellExperiment, and perform memory-efficient downstream analysis.
SCArray.verbose (TRUE/FALSE): Global option to enable displaying debug information during SCArray operations.
dimred: The name of the reduced dimension slot to plot in plotReducedDim (e.g., "PCA", "UMAP").
Best Practices
Use scRunPCA instead of scater::runPCA for large-scale datasets to avoid high memory usage from realizing the full matrix in memory.
Enable verbose debugging with options(SCArray.verbose=TRUE) to track GDS-backed matrix operations.
Keep the GDS file connection closed when not in use by calling scClose if manually opened with scOpen.
Common Pitfalls
Attempting to run standard memory-intensive functions (like scater::runPCA) on very large GDS-backed objects, which triggers in-memory realization and defeats the out-of-memory benefit. Use scRunPCA instead.
Forgetting that GDS-backed matrices are DelayedMatrix objects, meaning operations are delayed until explicitly realized.
Alternatives
HDF5Array: For HDF5-backed out-of-memory data storage and manipulation.
TileDBArray: For TileDB-backed multi-dimensional array storage.
LoomExperiment: For Loom-backed single-cell data storage.