omicverse-single-cell-sctour-trajectory

Installation
SKILL.md

OmicVerse Single-Cell scTour Trajectory

Goal

Run the sctour branch of ov.single.TrajInfer on a raw-count AnnData and capture the trainer-produced pseudotime, latent space, and vector field. Keep this separate from the lighter graph-based trajectory skill because it has a different dependency and compute profile.

Quick Workflow

  1. Inspect the input AnnData and confirm raw UMI counts are available in .X.
  2. Preserve or restore counts into .X before the sctour call.
  3. Instantiate ov.single.TrajInfer(...) with the plotting basis, groupby, and any existing representation you want to preserve for downstream plots.
  4. Run TrajInfer.inference(method='sctour', **trainer_kwargs).
  5. Validate that pseudotime, latent coordinates, and vector-field outputs were written.
  6. For lineage topology, draw the unified trajectory backbone with ov.pl.trajectory(adata, method='sctour', ...) or overlay on a custom UMAP with ov.pl.trajectory_overlay(adata, ax=ax, method='sctour') — same visual grammar shared with the other trajectory skills (commit 4f28ab6).
  7. Summarize branch structure with ov.pl.branch_streamplot(adata, group_key=..., pseudotime_key='sctour_pseudotime').
  8. Fit marker trends with the shared GAM stack: ov.single.dynamic_features(adata, genes=..., pseudotime='sctour_pseudotime')ov.pl.dynamic_trends(...); many-gene panels via ov.pl.dynamic_heatmap(...).
  9. Only invert or rescale pseudotime after fit when that direction change is biologically justified for the dataset.

Interface Summary

Installs
2
GitHub Stars
13
First Seen
Jun 29, 2026
omicverse-single-cell-sctour-trajectory — omicverse/omicverse-skills