Comparison of a list of trees using the Kendall Colijn metric. Output is given as a pairwise distance matrix. This is equivalent to the $D
output from treespace
but may be preferable for large datasets, and when principal co-ordinate analysis is not required. It includes an option to save memory at the expense of computation time.
multiDist(
trees,
lambda = 0,
return.lambda.function = FALSE,
save.memory = FALSE,
emphasise.tips = NULL,
emphasise.weight = 2
)
an object of the class multiPhylo
containing the trees to be compared
a number in [0,1] which specifies the extent to which topology (default, with lambda=0) or branch lengths (lambda=1) are emphasised. This argument is ignored if return.lambda.function=TRUE
.
If true, a function that can be invoked with different lambda values is returned. This function returns the matrix of metric values for the given lambda.
A flag that saves a lot of memory but increases the execution time (not compatible with return.lambda.function=TRUE).
an optional list of tips whose entries in the tree vectors should be emphasised. Defaults to NULL
.
applicable only if a list is supplied to emphasise.tips
, this value (default 2) is the number by which vector entries corresponding to those tips are emphasised.
The pairwise tree distance matrix or a function that produces the distance matrix given a value for lambda.
## generate 10 random trees, each with 6 tips
trees <- rmtree(10,6)
## pairwise distance matrix when lambda=0
multiDist(trees)
#> 1 2 3 4 5 6 7 8
#> 2 5.567764
#> 3 3.605551 4.242641
#> 4 6.557439 5.099020 5.477226
#> 5 5.916080 4.690416 5.477226 5.477226
#> 6 6.082763 4.898979 5.477226 3.162278 5.477226
#> 7 6.708204 4.690416 5.477226 4.690416 5.656854 4.898979
#> 8 6.928203 5.567764 6.244998 7.141428 6.244998 7.000000 4.582576
#> 9 5.000000 5.291503 4.898979 5.656854 4.472136 5.656854 5.656854 7.141428
#> 10 2.645751 5.099020 4.242641 5.830952 5.099020 5.291503 5.830952 6.403124
#> 9
#> 2
#> 3
#> 4
#> 5
#> 6
#> 7
#> 8
#> 9
#> 10 5.291503
## pairwise distance matrix as a function of lambda:
m <- multiDist(trees, return.lambda.function=TRUE)
## evaluate at lambda=0. Equivalent to multiDist(trees).
m0 <- m(0)
## save memory by recomputing each tree vector for each pairwise tree comparison (for fixed lambda):
m0.5 <- multiDist(trees,0.5,save.memory=TRUE)