9 Cell Filtering
9.1 Threshold-based cell filtering
Filter out low-quality cells based on the QC metrics inspected in the previous chapters. The thresholds applied are:
-
percent.mt < 30— remove cells with high mitochondrial content indicative of damage -
nFeature_ATAC > 1000— remove cells with very few accessible peaks (poor ATAC library) -
nFeature_ATAC < 50000— remove potential doublets with inflated peak counts -
TSS.enrichment > 1— retain only cells with meaningful enrichment at regulatory elements -
nucleosome_signal < 2— remove cells with a high proportion of nucleosomal fragments
Doublets and unassigned cells from the SNP demultiplexing are also removed.
combined <- subset(combined,
subset =
percent.mt < 30 &
nFeature_ATAC > 1000 &
nFeature_ATAC < 50000 &
TSS.enrichment > 1 &
nucleosome_signal < 2
)
# remove doublets and unassigned cells from demultiplexing
combined <- combined[, !combined$donor_id %in% c('doublet', 'unassigned', 'NA',NA)]
table(combined@meta.data$donor_id, useNA = "always")
#>
#> donor0 donor1 <NA>
#> 2498 2000 0
table(combined@meta.data$sample_donor,useNA = "always")
#>
#> Sample_B_donor0 Sample_B_donor1 Sample_C_donor0
#> 576 703 1413
#> Sample_C_donor1 Sample_D_donor0 Sample_D_donor1
#> 391 509 906
#> <NA>
#> 09.2 Save merged object
SaveSeuratRds(combined, "data/seurat_object_donor_assigned.rds")