ct.normalizeSpline: Normalize sample abundance estimates by a spline fit to...

View source: R/Normalization.R

ct.normalizeSplineR Documentation

Normalize sample abundance estimates by a spline fit to specific shared elements


This function normalizes Crispr gRNA abundance estimates by fiting a smoothed spline to a subset of the gRNAs within each sample and then equalizing these curves across the experiment. Specifically, the algorithm ranks the gRNA abundance estimates within each sample and uses a smoothed spline to determine a relationship between the ranks of the "anchor" guides and their abundance estimates. It then adjusts the spline trends from each sample to the mean of all of the sample spline fits in a manner analogous to quantile normalization, interpolating the gRNA abundance values between the anchor points; these values are returned as normalized counts in the 'exprs' slot of the input eset.


ct.normalizeSpline(eset, annotation, geneSymb = NULL, lib.size = NULL)



An ExpressionSet object containing, at minimum, count data accessible by exprs.


An annotation dataframe indicating the nontargeting controls in the geneID column.


The geneSymbol identifier(s) in annotation that corresponds to the "anchor" gRNAs. If absent, the method will attempt to infer nontargeting guides by searching for 'no_gid' or NA in the appropriate columns.


An optional vector of voom-appropriate library size adjustment factors, usually calculated with calcNormFactors and transformed to reflect the appropriate library size. These adjustment factors are interpreted as the total library sizes for each sample, and if absent will be extrapolated from the columnwise count sums of the exprs slot of the eset.


A normalized eset.


Russell Bainer



#Build the sample key and library sizes for visualization
sk <- (relevel(as.factor(pData(es)$TREATMENT_NAME), 'ControlReference'))
names(sk) <- row.names(pData(es))
ls <- colSums(exprs(es))

es.norm <- ct.normalizeSpline(es, ann, 'NoTarget', lib.size = ls)
ct.gRNARankByReplicate(es, sk, lib.size = ls)
ct.gRNARankByReplicate(es.norm, sk, lib.size = ls)

RussBainer/gCrisprTools documentation built on Nov. 5, 2022, 2:35 p.m.