(DBA table_five
)
Experimental library for quick quintet tallying, useful when you have a lot of quintets that somehow you don't want to count yourself.
Binary wheels are provided on PyPI for Python starting from 3.7, but note that PyPy is not supported (yet).
python3 -m pip install table-five
A treeset is an efficient (i.e., fast parsing) list of tree topologies. The construction is
from table_five import TreeSet
trees = TreeSet("path_to_newline_delimited_newicks.tre")
The major API is tally_single_quintet
returning a list of length 15 containing the empirical
counts of the 15 ADR unrooted quintet topology among the tree-set in
# get counts of the ADR unrooted quintet topologies on taxa '1','2','3','4','5'. Taxa order matters.
treeset.tally_single_quintet(('1','2','3','4','5'))
# obviously you might want to convert it to numpy arrays
# normalize by the number of genes in the tree-set
new_tree_dist = np.asarray(treeset.tally_single_quintet(q_taxa)) / len(treeset)
After installing the Rust toolchain and Maturin, see the following commands:
# build the library
maturin build
# installing it locally
maturin develop
See the Maturin documentation for more details.