% Generated by roxygen2: do not edit by hand % Please edit documentation in R/sample_filtering.R \name{factor_sample_filter} \alias{factor_sample_filter} \title{Factor-based Sample Filtering: Function to filter single-cell RNA-Seq libraries.} \usage{ factor_sample_filter(expr, qual, gene_filter = NULL, max_exp_pcs = 5, qual_select_q_thresh = 0.01, force_metrics = NULL, good_metrics = NULL, min_qual_variance = 0.7, zcut = 1, mixture = TRUE, dip_thresh = 0.01, plot = FALSE, hist_breaks = 20) } \arguments{ \item{expr}{matrix The data matrix (genes in rows, cells in columns).} \item{qual}{matrix Quality metric data matrix (cells in rows, metrics in columns).} \item{gene_filter}{Logical vector indexing genes that will be used for PCA. If NULL, all genes are used.} \item{max_exp_pcs}{numeric number of expression PCs used in quality metric selection. Default 5.} \item{qual_select_q_thresh}{numeric. q-value threshold for quality/expression correlation significance tests. Default 0.01} \item{force_metrics}{logical. If not NULL, indexes quality metric to be forcefully included in quality PCA.} \item{good_metrics}{logical. If not NULL, indexes quality metric that indicate better quality when of higher value.} \item{min_qual_variance}{numeric. Minimum proportion of selected quality variance addressed in filtering. Default 0.70} \item{zcut}{A numeric value determining threshold Z-score for sd, mad, and mixture sub-criteria. Default 1.} \item{mixture}{A logical value determining whether mixture modeling sub-criterion will be applied per primary criterion (quality score). If true, a dip test will be applied to each quality score. If a metric is multimodal, it is fit to a two-component normal mixture model. Samples deviating zcut sd's from optimal mean (in the inferior direction), have failed this sub-criterion.} \item{dip_thresh}{A numeric value determining dip test p-value threshold. Default 0.05.} \item{plot}{logical. Should a plot be produced?} \item{hist_breaks}{hist() breaks argument. Ignored if `plot=FALSE`.} } \value{ A logical, representing samples passing factor-based filter. } \description{ This function returns a sample-filtering report for each cell in the input expression matrix, describing whether it passed filtering by factor-based filtering, using PCA of quality metrics. } \details{ None } \examples{ mat <- matrix(rpois(1000, lambda = 5), ncol=10) colnames(mat) <- paste("X", 1:ncol(mat), sep="") qc = as.matrix(cbind(colSums(mat),colSums(mat > 0))) rownames(qc) = colnames(mat) colnames(qc) = c("NCOUNTS","NGENES") mfilt = factor_sample_filter(expr = mat, qc, plot = TRUE,qual_select_q_thresh = 1) }