PhyloTree#

missionbio.plotting.phylotree.PhyloTree

class PhyloTree(labels: Sequence[str], parents: Sequence[Optional[str]], description: Optional[Sequence[str]] = None, font_size: float = 14, marker_size: float = 18, margin: float = 10, marker_gap: Tuple[float, float] = (60, 30))#

Container for creating a phylogenetic tree.

Snippets#

A tree with 4 nodes with custom descriptions and colors

>>> from missionbio.plotting.phylotree import PhyloTree
>>> labels = ["1", "2", "3", "4"]
>>> parents = [None, "1", "1", "2"]
>>> descriptions = ["WT", "KIT HET", "KIT HET<br>TP53 HET", "KIT LOH"]
>>> graph = PhyloTree(labels, parents, descriptions)
>>> graph.draw(palette={"1": "#000000", "2": "crimson", "3": "skyblue", "4": "red"})

Functions#

draw([palette, fig, row, col])

Create and draw the subclone tree graph.

expected_fig_size([positions, node_sizes, ...])

Estimate the plot size required to fit the tree.

Create a new PhyloTree instance.

Parameters:
labelsSequence[str]

The labels of the nodes in the tree.

parentsSequence[str]

The parent for each label. This must have the same length as labels and each parent must be present in labels.

descriptionSequence[str]

A long description for each label. This is the value shown on the plot.

font_sizefloat

The font size of the text in the plot

marker_sizefloat

The size of the circular markers used to represent the nodes.

marginfloat

The number of pixels that must be left empty within the plot boundaries on each edge of the plot

marker_gapTuple[float, float]

The gap between the nodes in the x and y direction respectively

Raises:
ValuError:

When the labels are not unique