ALRA (Adaptively-thresholded Low Rank Approximation) imputes dropout values in scRNA-seq data while preserving true biological zeros. It computes a rank-k approximation to the normalized expression matrix, then thresholds values based on the distribution of negative entries produced by the approximation.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/satijalab/seurat-wrappers/llms.txt
Use this file to discover all available pages before exploring further.
No additional package installation is required. ALRA is implemented directly in SeuratWrappers and uses
rsvd, which is already imported as a dependency.Reference
Linderman, G. C., Zhao, J., & Kluger, Y. (2018). Zero-preserving imputation of scRNA-seq data using low rank approximation. bioRxiv, 397588. https://doi.org/10.1101/397588 Source: KlugerLab/ALRAHow it works
ALRA operates on a normalized expression matrix:- Computes a rank-k approximation using randomized SVD (via
rsvd). - For each gene, determines a threshold from the quantile of the approximation’s negative values — a signal of the noise floor.
- Sets values below the threshold to zero, preserving true biological zeros.
- Rescales imputed values to match the original nonzero distribution.
Key functions
RunALRA()— Runs ALRA imputation on a Seurat object or matrix. Creates analraassay containing imputed values.ALRAChooseKPlot()— Plots singular values, spacings, and p-values from the automated rank selection step. Useful for inspecting the chosen k before running imputation.
Workflow
Simple one-step usage
RunALRA will automatically select the rank k and perform imputation in a single call:Two-step workflow (inspect k first)
Usek.only = TRUE to run rank selection without performing imputation, inspect the diagnostic plot, then run imputation using the stored k:
Inspect the rank selection plot
Plot the singular value spectrum, spacings, and p-values to verify the chosen k is sensible.
Visualize original vs. imputed expression
Parameters
RunALRA()
Rank of the approximation. When
NULL, k is chosen automatically using the singular value spacing heuristic.Number of additional power iterations in the randomized SVD. Higher values improve accuracy at the cost of speed.
Quantile probability used to determine the threshold for each gene from its negative approximation values.
Assay to use. Defaults to the default assay of the Seurat object.
Slot (layer) within the assay to use as input.
If
TRUE, sets the new alra assay as the default assay after imputation.Subset of genes to impute. Defaults to all genes in the object.
Number of singular values to compute during automated rank selection. Must be less than the smallest dimension of the expression matrix.
Index from which singular values are considered noise during automated k selection. Defaults to
K - 20.Number of additional power iterations used when computing the SVD for automated k selection.
If
TRUE, only computes the optimal k and stores it in the object without performing imputation.ALRAChooseKPlot()
A Seurat object on which
RunALRA(k.only = TRUE) has already been called.Index to start plotting singular value spacings from. Defaults to
floor(k / 2) when set to 0, which skips the large early spacings for a cleaner visualization.If
TRUE, returns the three plots combined into a single ggplot object using CombinePlots().