Source code for phylo2vec.base.edges
"""
Methods to convert Phylo2Vec vectors to a list of edges and vice versa.
"""
from typing import List, Tuple
import numpy as np
import phylo2vec._phylo2vec_core as core
[docs]
def from_edges(edges: List[Tuple[int, int]]) -> np.ndarray:
"""Convert a list of edges to a Phylo2Vec vector
Each edge is represented as a list of two nodes (child, parent)
Parameters
----------
edges : List[Tuple[int, int]]
List of (child, parent) edges
Returns
-------
v : numpy.ndarray
Phylo2Vec vector
"""
v = core.from_edges(edges)
return np.asarray(v)
[docs]
def to_edges(v: np.ndarray) -> List[Tuple[int, int]]:
"""Convert a Phylo2Vec vector to an edge list
Each edge is represented as a list of two nodes (child, parent)
Parameters
----------
v : numpy.ndarray
Phylo2Vec vector
Returns
-------
edges : List[Tuple[int, int]]
List of (child, parent) edges
"""
edge_list = core.get_edges(v)
return edge_list