Copyright | (c) Dominik Schrempf 2021 |
---|---|
License | GPL-3.0-or-later |
Maintainer | dominik.schrempf@gmail.com |
Stability | unstable |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Creation date: Sat Jul 18 13:15:49 2020.
A topology, as it is used in phylogenetics is a Topology
with unique leaf
labels, and the order of the topologies in the sub-forest is considered to be
meaningless.
NOTE: The functions in this module are defined using the functions in ELynx.Tree.Phylogeny. This induces a runtime overhead, but greatly reduces the probability of additional bugs.
Synopsis
- equal :: (Eq a, Ord a) => Topology a -> Topology a -> Either String Bool
- equal' :: Eq a => Topology a -> Topology a -> Bool
- intersect :: Ord a => [Topology a] -> Either String [Topology a]
- bifurcating :: Topology a -> Bool
- outgroup :: (Default a, Ord a) => Set a -> Topology a -> Either String (Topology a)
- midpoint :: Default a => Topology a -> Either String (Topology a)
- roots :: Default a => Topology a -> Either String [Topology a]
Documentation
equal :: (Eq a, Ord a) => Topology a -> Topology a -> Either String Bool Source #
The equality check is slow because the order of children is considered to be arbitrary.
Return Left
if a topology does not have unique leaves.
equal' :: Eq a => Topology a -> Topology a -> Bool Source #
Same as equal
, but assume that leaves are unique.
intersect :: Ord a => [Topology a] -> Either String [Topology a] Source #
Intersection of topologies.
| See intersect
.
outgroup :: (Default a, Ord a) => Set a -> Topology a -> Either String (Topology a) Source #
Root topology using an outgroup.
See outgroup
.