## ----options, include=FALSE, echo=FALSE--------------------------------------- knitr::opts_chunk$set(warning=FALSE, error=FALSE, message=FALSE) ## ----eval= FALSE-------------------------------------------------------------- # if (!requireNamespace("BiocManager", quietly=TRUE)){ # install.packages("BiocManager")} # BiocManager::install("ExperimentSubset") ## ----eval = FALSE------------------------------------------------------------- # library(devtools) # install_github("campbio/ExperimentSubset") ## ----------------------------------------------------------------------------- library(ExperimentSubset) ## ----------------------------------------------------------------------------- counts <- matrix(rpois(100, lambda = 10), ncol=10, nrow=10) sce <- SingleCellExperiment(list(counts = counts)) es <- ExperimentSubset(sce) es ## ----------------------------------------------------------------------------- counts <- matrix(rpois(100, lambda = 10), ncol=10, nrow=10) ExperimentSubset(list(counts = counts)) ## ----------------------------------------------------------------------------- es <- createSubset(es, subsetName = "subset1", rows = c(1:2), cols = c(1:5), parentAssay = "counts") es ## ----------------------------------------------------------------------------- subset1Assay <- assay(es, "subset1") subset1Assay[,] <- subset1Assay[,] + 1 es <- setSubsetAssay(es, subsetName = "subset1", inputMatrix = subset1Assay, subsetAssayName = "subset1Assay") es ## ----------------------------------------------------------------------------- #get assay from 'subset1' getSubsetAssay(es, "subset1") #get internal 'subset1Assay' getSubsetAssay(es, "subset1Assay") ## ----------------------------------------------------------------------------- subsetSummary(es) ## ----------------------------------------------------------------------------- #store colData to parent object colData(es) <- cbind(colData(es), sampleID = seq(1:dim(es)[2])) #store colData to 'subset1' using option 1 colData(es, subsetName = "subset1") <- cbind( colData(es, subsetName = "subset1"), subsetSampleID1 = seq(1:subsetDim(es, "subset1")[2])) #store colData to 'subset1' using option 2 subsetColData(es, "subset1") <- cbind( subsetColData(es, "subset1"), subsetSampleID2 = seq(1:subsetDim(es, "subset1")[2])) #get colData from 'subset1' without parent colData subsetColData(es, "subset1", parentColData = FALSE) #get colData from 'subset1' with parent colData subsetColData(es, "subset1", parentColData = TRUE) #same applies to `colData` and `rowData` methods when using with subsets colData(es, subsetName = "subset1", parentColData = FALSE) #without parent data colData(es, subsetName = "subset1", parentColData = TRUE) #with parent data ## ----------------------------------------------------------------------------- #creating a dummy ES object counts <- matrix(rpois(100, lambda = 10), ncol=10, nrow=10) sce <- SingleCellExperiment(list(counts = counts)) es <- ExperimentSubset(sce) #create a subset es <- createSubset(es, subsetName = "subset1", rows = c(1:2), cols = c(1:4)) #store an assay inside the newly created 'subset1' #note that 'assay<-' setter has two important parameters 'x' and 'i' where #'x' is the object and 'i' is the assay name, but in the case of storing to a #subset we use 'x' as the object, 'i' as the subset name inside which the assay #should be stored and an additional 'subsetAssayName' parameter which defines #the name of the new assay assay( x = es, i = "subset1", subsetAssayName = "subset1InternalAssay") <- matrix(rpois(100, lambda = 10), ncol=4, nrow=2) ## ----------------------------------------------------------------------------- #assay getter has parameters 'x' which is the input object, 'i' which can either #be a assay name in the parent object, a subset name or a subset assay name #getting 'counts' from parent es object assay( x = es, i = "counts" ) #getting just the 'subset1' from es object assay( x = es, i = "subset1" ) #getting the 'subset1InternalAssay' from inside the 'subset1' assay( x = es, i = "subset1InternalAssay" ) ## ----------------------------------------------------------------------------- counts <- matrix(rpois(100, lambda = 10), ncol=10, nrow=10) sce <- SingleCellExperiment(list(counts = counts)) es <- ExperimentSubset(sce) subsetSummary(es) ## ----------------------------------------------------------------------------- es <- createSubset(es, subsetName = "subset1", rows = c(1:5), cols = c(1:5), parentAssay = "counts") subsetSummary(es) ## ----------------------------------------------------------------------------- es <- createSubset(es, subsetName = "subset2", rows = c(1:2), cols = c(1:5), parentAssay = "subset1") subsetSummary(es) ## ----------------------------------------------------------------------------- subset2Assay <- assay(es, "subset2") subset2Assay[,] <- subset2Assay[,] + 1 ## ----------------------------------------------------------------------------- #approach 1 es <- setSubsetAssay(es, subsetName = "subset2", inputMatrix = subset2Assay, subsetAssayName = "subset2Assay_a1") #approach 2 assay(es, "subset2", subsetAssayName = "subset2Assay_a2") <- subset2Assay subsetSummary(es) ## ----------------------------------------------------------------------------- altExp(x = es, e = "subset2_alt1", subsetName = "subset2") <- SingleCellExperiment(assay = list( counts = assay(es, "subset2") )) ## ----------------------------------------------------------------------------- subsetSummary(es) ## ----eval = FALSE------------------------------------------------------------- # if (!requireNamespace("BiocManager", quietly = TRUE)) # install.packages("BiocManager") # BiocManager::install(version = "3.11", ask = FALSE) # BiocManager::install(c("TENxPBMCData", "scater", "scran")) ## ----eval = FALSE------------------------------------------------------------- # library(ExperimentSubset) # library(TENxPBMCData) # library(scater) # library(scran) ## ----eval = FALSE------------------------------------------------------------- # tenx_pbmc4k <- TENxPBMCData(dataset = "pbmc4k") # es <- ExperimentSubset(tenx_pbmc4k) # subsetSummary(es) ## ----eval = FALSE------------------------------------------------------------- # perCellQCMetrics <- perCellQCMetrics(assay(es, "counts")) # colData(es) <- cbind(colData(es), perCellQCMetrics) ## ----eval = FALSE------------------------------------------------------------- # filteredCellsIndices <- which(colData(es)$sum > 1500) # es <- createSubset(es, "filteredCells", cols = filteredCellsIndices, parentAssay = "counts") # subsetSummary(es) ## ----eval = FALSE------------------------------------------------------------- # assay(es, "filteredCells", subsetAssayName = "filteredCellsNormalized") <- normalizeCounts(assay(es, "filteredCells")) # subsetSummary(es) ## ----eval = FALSE------------------------------------------------------------- # topHVG1000 <- getTopHVGs(modelGeneVar(assay(es, "filteredCellsNormalized")), n = 1000) # es <- createSubset(es, "hvg1000", rows = topHVG1000, parentAssay = "filteredCellsNormalized") # subsetSummary(es) ## ----eval = FALSE------------------------------------------------------------- # reducedDim(es, type = "PCA", subsetName = "hvg1000") <- calculatePCA(assay(es, "hvg1000")) ## ----eval = FALSE------------------------------------------------------------- # subsetSummary(es) ## ----------------------------------------------------------------------------- sessionInfo()