This page demonstrates the use ofDocumentation 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.
estimate_cycle_position from the tricycle Bioconductor package on Seurat objects via SeuratWrappers.
Universal prediction of cell cycle position using transfer learning Shijie C. Zheng, Genevieve Stein-O’Brien, Jonathan J. Augustin, Jared Slosberg, Giovanni A. Carosso, Briana Winer, Gloria Shin, Hans T. Bjornsson, Loyal A. Goff, Kasper D. Hansen bioRxiv, 2021. doi: 10.1101/2021.04.06.438463
Installation
The following packages are required before proceeding:
Introduction
tricycle infers a continuous cell cycle position for each cell, represented as an angle θ bounded between 0 and 2π. Rather than assigning cells to discrete G1/S/G2M phases, this approach captures the full spectrum of cell cycle states with higher resolution. As a rough guide to interpreting θ values:| θ range | Approximate cell cycle stage |
|---|---|
| ~0.5π | Start of S phase |
| ~π | Start of G2M phase |
| ~1.5π | Middle of M phase |
| ~1.75π – 0.25π | G1/G0 phase |
tricycle requires library-size-adjusted log-expression values as input. When converting from a SingleCellExperiment object, the
"logcounts" assay is stored as the "data" slot in the Seurat default assay — use slot = "data" (the default) to ensure correct input.Workflow
Load data
This example uses the
neurosphere_example dataset bundled with the tricycle package. After converting from SingleCellExperiment to Seurat, log-normalized counts are available in the "data" slot.Estimate cell cycle position
Runtricycle() projects cells into the tricycle cell cycle embedding using the package’s internal reference projection matrix, then computes θ (the cell cycle angle). Results are added to the Seurat object in two places:$tricyclePosition: continuous angle θ in[0, 2π]stored in cell metadata- A new dimensional reduction (default name:
"tricycleEmbedding") with two components
Visualize the embedding
Extract the cell cycle embedding and color cells by their estimated position.You can also color cells by
tricyclePosition on any existing embedding (e.g. UMAP or tSNE) using FeaturePlot().Assess performance
A quick way to validate tricycle is to check whether a known cell cycle marker gene oscillates as expected along θ.
Top2a is commonly used; its expression should peak near θ = π (G2M boundary).Functions
Runtricycle()
Runs tricycle::estimate_cycle_position on a Seurat object. Internally it calls tricycle:::.project_cycle_space() to project cells into the cell cycle embedding using the package’s built-in reference, then tricycle:::.getTheta() to compute θ. Results are added to both cell metadata and a new DimReduc slot.
A Seurat object.
Name of the assay to use. Defaults to the active assay.
Slot within the assay to use as input. Should contain library-size-adjusted log-expression values. Defaults to
"data", which corresponds to the "logcounts" slot from a SingleCellExperiment converted via as.Seurat().Name of the dimensional reduction object added to the Seurat object to store the two-dimensional cell cycle projection.
Key prefix for accessing embedding coordinates (e.g.
tricycleEmbedding_1, tricycleEmbedding_2).Alternative gene names to use for mapping features in
object to genes in the tricycle reference. If NULL (the default), the row names of object are used directly.The gene identifier type. Must be
"ENSEMBL" or "SYMBOL". Used when mapping features in object to the reference.Species of the input data. Must be
"mouse" or "human".An
AnnotationDb object for mapping Ensembl IDs to gene symbols (used only for human data with Ensembl IDs). If not provided, org.Hs.eg.db is used.Center of PC1 used when computing the angle θ from the two-dimensional projection.
Center of PC2 used when computing the angle θ from the two-dimensional projection.
Output added to the Seurat object
| Slot | Content |
|---|---|
object$tricyclePosition | Continuous cell cycle position θ ∈ [0, 2π] for each cell |
object[[reduction.name]] | DimReduc object with the two-dimensional cell cycle embedding (PC1 and PC2 of the projection) |
Performance assessment
Deeper sequenced datasets will show a clearly ellipsoid pattern in the cell cycle embedding with an empty interior. As sequencing depth decreases, the radius shrinks until the interior disappears — this does not indicate that tricycle has failed. The more reliable quality check is inspecting marker gene expression (e.g. Top2a, Smc2) as a function of θ usingfit_periodic_loess().
For more on building custom references or running tricycle outside Seurat, see the tricycle Bioconductor page.