Source code for phylo2vec.base.pairs

"""
Methods to convert Phylo2Vec vectors to a list of pairs and vice versa.
"""

import numpy as np
import phylo2vec._phylo2vec_core as core

from typing import List, Tuple


[docs] def from_pairs(pairs: List[Tuple[int, int]]) -> np.ndarray: """Convert a list of pairs to a Phylo2Vec vector Each pair is represented as a tuple (B, L) indicating that leaf L descends from branch B. Parameters ---------- pairs : List[Tuple[int, int]] List of (branch, leaf) pairs Returns ------- v : numpy.ndarray Phylo2Vec vector """ v = core.from_pairs(pairs) return np.asarray(v)
[docs] def to_pairs(v: np.ndarray) -> List[Tuple[int, int]]: """Convert a Phylo2Vec vector to a list of pairs Each pair is represented as a tuple (B, L) indicating that leaf L descends from branch B. Parameters ---------- v : numpy.ndarray Phylo2Vec vector Returns ------- pairs : List[Tuple[int, int]] List of (branch, leaf) pairs """ pairs = core.get_pairs(v) return pairs