# NOT RUN {
library(scTenifoldNet)
# Simulating of a dataset following a negative binomial distribution with high sparcity (~67%)
nCells = 2000
nGenes = 100
set.seed(1)
X <- rnbinom(n = nGenes * nCells, size = 20, prob = 0.98)
X <- round(X)
X <- matrix(X, ncol = nCells)
rownames(X) <- c(paste0('ng', 1:90), paste0('mt-', 1:10))
# Performing Single cell quality control
qcOutput <- scQC(
X = X,
minLibSize = 30,
removeOutlierCells = TRUE,
minPCT = 0.05,
maxMTratio = 0.1
)
# Visualizing the Differences
oldPar <- par(no.readonly = TRUE)
par(
mfrow = c(2, 2),
mar = c(3, 3, 1, 1),
mgp = c(1.5, 0.5, 0)
)
# Library Size
plot(
Matrix::colSums(X),
ylim = c(20, 70),
ylab = 'Library Size',
xlab = 'Cell',
main = 'Library Size - Before QC'
)
abline(h = c(30, 58),
lty = 2,
col = 'red')
plot(
Matrix::colSums(qcOutput),
ylim = c(20, 70),
ylab = 'Library Size',
xlab = 'Cell',
main = 'Library Size - After QC'
)
abline(h = c(30, 58),
lty = 2,
col = 'red')
# Mitochondrial ratio
mtGenes <- grepl('^mt-', rownames(X), ignore.case = TRUE)
plot(
Matrix::colSums(X[mtGenes,]) / Matrix::colSums(X),
ylim = c(0, 0.3),
ylab = 'Mitochondrial Ratio',
xlab = 'Cell',
main = 'Mitochondrial Ratio - Before QC'
)
abline(h = c(0.1), lty = 2, col = 'red')
plot(
Matrix::colSums(qcOutput[mtGenes,]) / Matrix::colSums(qcOutput),
ylim = c(0, 0.3),
ylab = 'Mitochondrial Ratio',
xlab = 'Cell',
main = 'Mitochondrial Ratio - Before QC'
)
abline(h = c(0.1), lty = 2, col = 'red')
par(oldPar)
# }
Run the code above in your browser using DataLab