## ----style, echo = FALSE, results = 'asis'------------------------------------
BiocStyle::markdown()
## ----'install_dev', eval = FALSE----------------------------------------------
# if (!require("devtools")) install.packages("devtools")
# remotes::install_github("MicTott/SpotSweeper")
## ----'install', eval = FALSE--------------------------------------------------
# if (!requireNamespace("BiocManager", quietly = TRUE)) {
# install.packages("BiocManager")
# }
#
# BiocManager::install("SpotSweeper")
## ----example_spe--------------------------------------------------------------
library(SpotSweeper)
# load Maynard et al DLPFC daatset
spe <- STexampleData::Visium_humanDLPFC()
# show column data before SpotSweeper
colnames(colData(spe))
# drop out-of-tissue spots
spe <- spe[, spe$in_tissue == 1]
## ----example_scuttle----------------------------------------------------------
# change from gene id to gene names
rownames(spe) <- rowData(spe)$gene_name
# identifying the mitochondrial transcripts
is.mito <- rownames(spe)[grepl("^MT-", rownames(spe))]
# calculating QC metrics for each spot using scuttle
spe <- scuttle::addPerCellQCMetrics(spe, subsets = list(Mito = is.mito))
colnames(colData(spe))
## ----example_local_outliers---------------------------------------------------
# library size
spe <- localOutliers(spe,
metric = "sum",
direction = "lower",
log = TRUE
)
# unique genes
spe <- localOutliers(spe,
metric = "detected",
direction = "lower",
log = TRUE
)
# mitochondrial percent
spe <- localOutliers(spe,
metric = "subsets_Mito_percent",
direction = "higher",
log = FALSE
)
## ----example_combine_local_outliers-------------------------------------------
# combine all outliers into "local_outliers" column
spe$local_outliers <- as.logical(spe$sum_outliers) |
as.logical(spe$detected_outliers) |
as.logical(spe$subsets_Mito_percent_outliers)
## ----local_outlier_plot, fig.width=3, fig.height=3, dpi=100-------------------
library(escheR)
# all local outliers
plotQCmetrics(spe, metric = "sum_log", outliers = "local_outliers", point_size = 1.1,
stroke = 0.75) +
ggtitle("All Local Outliers")
## ----example_artifactRemoval--------------------------------------------------
# load in DLPFC sample with hangnail artifact
data(DLPFC_artifact)
spe <- DLPFC_artifact
# inspect colData before artifact detection
colnames(colData(spe))
## ----artifact_QC_plots, fig.width=4, fig.height=4, dpi=100--------------------
plotQCmetrics(spe,
metric = "expr_chrM_ratio",
outliers = NULL, point_size = 1.1
) +
ggtitle("Mitochondrial Percent")
## ----artifact_plot------------------------------------------------------------
# find artifacts using SpotSweeper
spe <- findArtifacts(spe,
mito_percent = "expr_chrM_ratio",
mito_sum = "expr_chrM",
n_order = 5,
name = "artifact"
)
# check that "artifact" is now in colData
colnames(colData(spe))
## ----artifact_visualization, fig.width=4, fig.height=4, dpi=100---------------
plotQCmetrics(spe,
metric = "expr_chrM_ratio",
outliers = "artifact", point_size = 1.1
) +
ggtitle("Hangnail artifact")
## -----------------------------------------------------------------------------
utils::sessionInfo()