peach.tl.compute_lineage_pseudotimes

peach.tl.compute_lineage_pseudotimes#

peach.tl.compute_lineage_pseudotimes(adata, lineage_names=None, fate_prob_key='fate_probabilities')[source]#

Convert fate probabilities to lineage-specific pseudotimes.

Creates continuous pseudotime variables for each lineage by using fate probabilities as progression measures. Stores results in adata.obs.

Parameters:
  • adata (AnnData) – Annotated data matrix. Must contain: - adata.obsm[‘fate_probabilities’] : Fate probability matrix - adata.uns[‘lineage_names’] : List of lineage names

  • lineage_names (list of str, optional) – Specific lineages to compute pseudotime for. If None, computes for all lineages in adata.uns[‘lineage_names’]

  • fate_prob_key (str, optional (default: 'fate_probabilities')) – Key in adata.obsm containing fate probabilities

Returns:

Stores pseudotime variables in adata.obs with keys: ‘pseudotime_to_{lineage}’ for each lineage

Return type:

None

Examples

Compute pseudotimes for all lineages:

>>> import peach as pc
>>> pc.tl.compute_lineage_pseudotimes(adata)

Access specific pseudotime:

>>> pseudotime = adata.obs["pseudotime_to_archetype_5"]

Compute for specific lineages:

>>> pc.tl.compute_lineage_pseudotimes(adata, lineage_names=["archetype_3", "archetype_5"])

Use for gene trend analysis:

>>> import cellrank as cr
>>> cr.pl.gene_trends(
...     adata, model=cr.models.GAMR(adata), genes=["RARRES1", "SOD2"], time_key="pseudotime_to_archetype_5"
... )

Notes

  • Must run setup_cellrank() first to compute fate probabilities

  • Pseudotime values are simply the fate probabilities (range: 0-1)

  • Higher pseudotime = higher probability of committing to that lineage

See also

setup_cellrank

Compute fate probabilities

compute_lineage_drivers

Identify genes driving lineage commitment