ZetaSuitSC: Calculate zeta score for single cell RNA-seq quality control.

View source: R/ZetaSuitSC.R

ZetaSuitSCR Documentation

Calculate zeta score for single cell RNA-seq quality control.

Description

This function evaluates the quality of cells detected in single-cell RNA-seq data by calculating a zeta score for each cell. The zeta score is based on the distribution of gene expression across different expression thresholds. A cutoff value is automatically determined using a two-component Gaussian mixture model to separate high-quality cells from low-quality or damaged cells.

Usage

ZetaSuitSC(countMatSC, binNum = 10, filter = TRUE)

Arguments

countMatSC

A matrix of single-cell RNA-seq count data where rows represent cells and columns represent genes.

binNum

The number of bins for zeta score calculation. Default is 10. The function creates expression thresholds from 0 to the 80th percentile of non-zero expression values, divided into binNum intervals.

filter

Logical. Whether to filter out cells with total read counts less than 100. Default is TRUE. This helps remove extremely low-quality cells before analysis.

Details

The function works as follows:

  1. Filters cells based on total read count if filter=TRUE

  2. Samples a subset of cells and genes for computational efficiency

  3. Creates expression thresholds (bins) from 0 to the 80th percentile of non-zero expression values

  4. For each cell, counts how many genes exceed each threshold

  5. Calculates the zeta score as a weighted sum of these counts

  6. Fits a two-component Gaussian mixture model to log10-transformed zeta scores

  7. Determines an optimal cutoff to separate high-quality from low-quality cells

Value

A list containing:

zetaData

A data frame with two columns: 'Cell' (cell identifiers) and 'Zeta' (calculated zeta scores)

p_cutoff

A ggplot object showing the distribution of log10-transformed zeta scores with fitted Gaussian mixture components and the determined cutoff threshold

Author(s)

Yajing Hao, Shuyang Zhang, Junhui Li, Guofeng Zhao, Xiang-Dong Fu

Examples

data(countMatSC)
zetaDataSC <- ZetaSuitSC(countMatSC, binNum=50, filter=TRUE)


ZetaSuite documentation built on Nov. 5, 2025, 6:37 p.m.