sce = assignCellCycle(sce)Scoring the cell cycle
cellula implements one method for cell cycle scoring, as done by the tricycle package by Zheng and colleagues.
The assignCellCycle() function is a simple wrapper to tricycle with a couple added features: two methods to determine the origin of the PCA point cloud automatically, and a simple way to infer the cell cycle phase (as a categorical vector) using the authors’ indications.
The methods for recentering (recenter argument) are:
optiman optimization routine that finds the point within the PCA point cloud that is farthest from all other points (by Pierre-Luc Germain)chullfinds the center by finding the centroid of the convex hull of the cloudnonetakes (0,0) as center.
Additional parameters feed directly into the tricycle::estimate_cycle_position() function, in particular:
gname.typethe type of gene names (rownames of theSCEobject), either"SYMBOL"or"ENSEMBL"gnametherowData(sce)column with gene identifiers, if not rownamesexpres_valuesthe assay to use to project data on the reference space.
The plotCellCycle() function takes tricycle results and plots them in a circular embedding in which the position of each cell reflects the cell cycle phase it is estimated to be in.
The rings_by argument controls how many rings the data will be divided into: it can be clusters, samples, batches, etc.
The colour_by argument controls the data used for the color scale. By default it is the position (angle) on the projection, which, being cyclical, requires a cyclical color palette.
# Let's make shorter labels
sce$labels_AUC = gsub(sce$labels_AUC, pattern = "MURARO_PANCREAS_", replacement = "")
sce$labels_AUC = gsub(sce$labels_AUC, pattern = "_CELL", replacement = "")
plotCycle(sce, rings_by = "labels_AUC")