## ---- include = FALSE--------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----------------------------------------------------------------------------- library(Seurat) library(curl) library(SimBu) ## ----------------------------------------------------------------------------- counts <- Matrix::Matrix(matrix(rpois(3e5, 5), ncol = 300), sparse = TRUE) tpm <- Matrix::Matrix(matrix(rpois(3e5, 5), ncol = 300), sparse = TRUE) tpm <- Matrix::t(1e6 * Matrix::t(tpm) / Matrix::colSums(tpm)) colnames(counts) <- paste0("cell-", rep(1:300)) colnames(tpm) <- paste0("cell-", rep(1:300)) rownames(counts) <- paste0("gene-", rep(1:1000)) rownames(tpm) <- paste0("gene-", rep(1:1000)) annotation <- data.frame( "ID" = paste0("cell-", rep(1:300)), "cell_type" = c( rep("T cells CD4", 50), rep("T cells CD8", 50), rep("Macrophages", 100), rep("NK cells", 10), rep("B cells", 70), rep("Monocytes", 20) ), row.names = paste0("cell-", rep(1:300)) ) seurat_obj <- Seurat::CreateSeuratObject(counts = counts, assay = "counts", meta.data = annotation) tpm_assay <- Seurat::CreateAssayObject(counts = tpm) seurat_obj[["tpm"]] <- tpm_assay seurat_obj ## ----------------------------------------------------------------------------- ds_seurat <- SimBu::dataset_seurat( seurat_obj = seurat_obj, count_assay = "counts", cell_id_col = "ID", cell_type_col = "cell_type", tpm_assay = "tpm", name = "seurat_dataset" ) ## ----------------------------------------------------------------------------- # example h5ad file, where cell type info is stored in `obs` layer #h5 <- system.file("extdata", "anndata.h5ad", package = "SimBu") #ds_h5ad <- SimBu::dataset_h5ad( # h5ad_file_counts = h5, # name = "h5ad_dataset", # cell_id_col = 0, # this will use the rownames of the metadata as cell identifiers # cell_type_col = "group", # this will use the 'group' column of the metadata as cell type info # cells_in_obs = TRUE # in case your cell information is stored in the var layer, switch to FALSE #) ## ----------------------------------------------------------------------------- ds <- SimBu::dataset( annotation = annotation, count_matrix = counts, tpm_matrix = tpm, name = "test_dataset" ) ds_multiple <- SimBu::dataset_merge( dataset_list = list(ds_seurat, ds), name = "ds_multiple" ) ## ----------------------------------------------------------------------------- simulation <- SimBu::simulate_bulk( data = ds_multiple, scenario = "random", scaling_factor = "NONE", nsamples = 10, ncells = 100 ) dim(SummarizedExperiment::assays(simulation$bulk)[["bulk_counts"]]) dim(SummarizedExperiment::assays(simulation$bulk)[["bulk_tpm"]]) ## ----------------------------------------------------------------------------- sessionInfo()