## ----echo=FALSE, results="hide"-----------------------------------------------
knitr::opts_chunk$set(error=FALSE, warning=FALSE, message=FALSE)
library(BiocStyle)
set.seed(10918)

## -----------------------------------------------------------------------------
library(scuttle)
library(scRNAseq)
sce <- ZeiselBrainData()
sce

## -----------------------------------------------------------------------------
# Pretending that the first 10 cells are empty wells, for demonstration.
per.feat <- perFeatureQCMetrics(sce, subsets=list(Empty=1:10))
summary(per.feat$mean)
summary(per.feat$detected)
summary(per.feat$subsets_Empty_ratio)

## -----------------------------------------------------------------------------
ave <- calculateAverage(sce)
summary(ave)

## -----------------------------------------------------------------------------
# Original row names are Ensembl IDs.
sce.ens <- ZeiselBrainData(ensembl=TRUE)
head(rownames(sce.ens)) 

# Replacing with guaranteed unique and non-missing symbols:
rownames(sce.ens) <- uniquifyFeatureNames(
    rownames(sce.ens), rowData(sce.ens)$originalName
)
head(rownames(sce.ens)) 

## -----------------------------------------------------------------------------
out <- makePerCellDF(sce, features="Tspan12", assay.type="counts")
colnames(out)

## -----------------------------------------------------------------------------
out2 <- makePerFeatureDF(
    sce,
    cells=c("1772063062_D05", "1772063061_D01", "1772060240_F02", "1772062114_F05"),
    assay.type="counts"
)
colnames(out2)

## -----------------------------------------------------------------------------
summary(medianSizeFactors(sce))

## -----------------------------------------------------------------------------
library(scran)
clusters <- quickCluster(sce)

sce <- computePooledFactors(sce, clusters=clusters)
summary(sizeFactors(sce))

## -----------------------------------------------------------------------------
sce <- computePooledFactors(sce, clusters=sce$level1class)
summary(sizeFactors(sce))

## -----------------------------------------------------------------------------
sce2 <- computeSpikeFactors(sce, "ERCC")
summary(sizeFactors(sce2))

## -----------------------------------------------------------------------------
sessionInfo()

