
Load in data from a SingleCellExperiment
load_sce.RdBrings a Bioconductor SingleCellExperiment into a SingleCells object.
colData becomes the obs table, rowData becomes the var table, and the
chosen assay goes through the same Rust quality control and normalisation
every other loader uses.
The assay has to hold raw counts. Plenty of objects in the wild ship only
logcounts, and a negative binomial cannot model those, so pick the right
one rather than letting the default find whatever is there.
reducedDims and altExps are not carried over. Run the embedding on this
side, and use SingleCellsMultiModal() for ADT.
Usage
load_sce(
object,
sce,
assay_name = "counts",
sc_qc_param = params_sc_min_quality(),
streaming = 1L,
batch_size = 1000L,
max_genes_in_memory = 2000L,
cell_batch_size = 100000L,
.verbose = TRUE
)Arguments
- object
SingleCellsclass.- sce
SingleCellExperimentclass you want to transform.- assay_name
String. Which assay holds the raw counts. Defaults to
"counts".- sc_qc_param
List. Output of
params_sc_min_quality(). A list with the following elements:min_unique_genes - Integer. Minimum number of genes to be detected in the cell to be included.
min_lib_size - Integer. Minimum library size in the cell to be included.
min_cells - Integer. Minimum number of cells a gene needs to be detected to be included.
target_size - Float. Target size to normalise to. Defaults to
1e5.
- streaming
Integer. CSR-to-CSC conversion mode.
0L-> in-memory (fastest, highest memory),1L-> light streaming with cell batching,2L-> heavy streaming with memory upper boundaries. Defaults to1L.- batch_size
Integer. Cell batch size when
streaming = 1L. Defaults to1000L.- max_genes_in_memory
Integer. Maximum genes held in memory at once when
streaming = 2L. Defaults to2000L.- cell_batch_size
Integer. Cell batch size when
streaming = 2L. Defaults to100000L.- .verbose
Boolean. Controls the verbosity of the function.
Examples
# \donttest{
# colData becomes obs, rowData becomes var, the counts assay gets normalised
data <- generate_single_cell_test_data(
syn_data_params = params_sc_synthetic_data(n_cells = 200L, n_genes = 40L)
)
sce <- SingleCellExperiment::SingleCellExperiment(
assays = list(counts = as(Matrix::t(data$counts), "CsparseMatrix")),
colData = data.frame(data$obs, row.names = data$obs$cell_id),
rowData = data.frame(data$var, row.names = data$var$gene_id)
)
dir_data <- tempfile("sc_sce")
dir.create(dir_data, recursive = TRUE)
sc <- load_sce(
object = SingleCells(dir_data = dir_data),
sce = sce,
sc_qc_param = params_sc_min_quality(
min_unique_genes = 5L,
min_lib_size = 25L,
min_cells = 5L
),
streaming = 0L,
.verbose = FALSE
)
dim(sc)
#> [1] 200 40
unlink(dir_data, recursive = TRUE, force = TRUE)
# }