plastro.lineage_simulation.construct_tree

plastro.lineage_simulation.construct_tree(sim_ad: anndata.AnnData, terminal_ad: anndata.AnnData, latent_space_key: str = 'X_dc', save_to: str | None = None) TreeNode[source]

Construct phylogenetic tree from latent space coordinates.

Uses neighbor-joining algorithm on distances computed from latent space to build a phylogenetic tree representing cellular relationships.

Parameters:
  • sim_ad (anndata.AnnData) – Complete simulated dataset with latent space coordinates.

  • terminal_ad (anndata.AnnData) – Terminal/observed cells to include in the tree.

  • latent_space_key (str, optional) – Key for latent space coordinates in sim_ad.obsm, by default ‘X_dc’.

  • save_to (str, optional) – Directory to save the tree file, by default None.

Returns:

Phylogenetic tree of the cells.

Return type:

ete3.Tree

Raises:
  • KeyError – If latent_space_key is not found in sim_ad.obsm.

  • ValueError – If no suitable root cell is found.

Examples

>>> tree = construct_tree(sim_ad, terminal_ad, latent_space_key='X_dc')
>>> print(f"Tree has {len(tree.get_leaves())} leaves")
>>> tree.show()  # Display tree visualization