# designTree

##### Compute a design matrix or non-negative LS

`nnls.tree`

estimates the branch length using non-negative least
squares given a tree and a distance matrix. `designTree`

and
`designSplits`

compute design matrices for the estimation of edge
length of (phylogenetic) trees using linear models. For larger trees a
sparse design matrix can save a lot of memory.
computes a contrast matrix if the method is "rooted".

- Keywords
- cluster

##### Usage

`designTree(tree, method = "unrooted", sparse = FALSE, ...)`nnls.tree(dm, tree, rooted = FALSE, trace = 1, weight = NULL,
balanced = FALSE)

nnls.phylo(x, dm, rooted = FALSE, trace = 0, ...)

nnls.splits(x, dm, trace = 0)

nnls.networx(x, dm)

designSplits(x, splits = "all", ...)

##### Arguments

- tree
an object of class

`phylo`

- method
design matrix for an "unrooted" or "rooted" ultrametric tree.

- sparse
return a sparse design matrix.

- …
further arguments, passed to other methods.

- dm
a distance matrix.

- rooted
compute a "rooted" or "unrooted" tree.

- trace
defines how much information is printed during optimisation.

- weight
vector of weights to be used in the fitting process. Weighted least squares is used with weights w, i.e., sum(w * e^2) is minimized.

- balanced
use weights as in balanced fastME

- x
number of taxa.

- splits
one of "all", "star".

##### Value

`nnls.tree`

return a tree, i.e. an object of class
`phylo`

. `designTree`

and `designSplits`

a matrix, possibly
sparse.

##### See Also

##### Examples

```
# NOT RUN {
example(NJ)
dm <- as.matrix(dm)
y <- dm[lower.tri(dm)]
X <- designTree(tree)
lm(y~X-1)
# avoids negative edge weights
tree2 <- nnls.tree(dm, tree)
# }
```

*Documentation reproduced from package phangorn, version 2.5.5, License: GPL (>= 2)*