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_cellrankCompute fate probabilities
compute_lineage_driversIdentify genes driving lineage commitment