# seqneighjoin

Construct phylogenetic tree using neighbor-joining method

## Syntax

* PhyloTree* = seqneighjoin(

*)*

`Distances`

*= seqneighjoin(*

`PhyloTree`

*,*

`Distances`

*)*

`Method`

*= seqneighjoin(*

`PhyloTree`

*,*

`Distances`

*,*

`Method`

*)*

`Names`

*= seqneighjoin(..., 'Reroot',*

`PhyloTree`

*)*

`RerootValue`

## Input Arguments

`Distances` | Matrix or vector containing biological distances between pairs
of sequences, such as returned by the `seqpdist` function. |

`Method` | Character vector or string specifying a method to compute the distances between nodes.
Choices are `'equivar'` (default) or
`'firstorder'` . |

`Names` | Either of the following: Vector of structures with the fields `Header` and`Name` Cell array of character vectors or string vector
. `Distances` |

## Description

computes * PhyloTree* = seqneighjoin(

*)*

`Distances`

*, a phylogenetic tree object, from*

`PhyloTree`

*, pairwise distances between the species or products, using the neighbor-joining method.*

`Distances`

specifies * PhyloTree* = seqneighjoin(

*,*

`Distances`

*)*

`Method`

*, a method to compute the distances of the new nodes to all other nodes at every iteration. The general expression to calculate the distances between the new node,*

`Method`

`n`

, after joining `i`

and `j`

and
all other nodes (`k`

), is given byD(n,k) = a*D(i,k) + (1-a)*D(j,k) - a*D(n,i) - (1-a)*D(n,j)

This expression is guaranteed to find the correct tree with additive data (minimum variance reduction).

Choices for * Method* are:

Method | Description |
---|---|

`equivar` (default) | Assumes equal variance and independence of evolutionary distance estimates (a = 1/2), such as in the original neighbor-joining algorithm by Saitou and Nei, JMBE (1987) or as in Studier and Keppler, JMBE (1988). |

`firstorder` | Assumes a first-order model of the variances and covariances
of evolutionary distance estimates, with `'a'` being
adjusted at every iteration to a value between `0` and `1` ,
such as in Gascuel, JMBE (1997). |

passes * PhyloTree* = seqneighjoin(

*,*

`Distances`

*,*

`Method`

*)*

`Names`

*, a list of names (such as species or products), to label the leaf nodes in the phylogenetic tree object.*

`Names`

```
```

specifies
whether to reroot * PhyloTree* = seqneighjoin(...,
'Reroot',

*)*

`RerootValue`

*. Choices are*

`PhyloTree`

`true`

(default)
or `false`

. When *is*

`RerootValue`

`false`

, `seqneighjoin`

excludes
rerooting the resulting tree, which is useful for observing the original
linkage order followed by the algorithm. By default `seqneighjoin`

reroots
the resulting tree using the midpoint method. ## Examples

## References

[1] Saitou, N., and Nei, M. (1987). The neighbor-joining
method: A new method for reconstructing phylogenetic trees. Molecular
Biology and Evolution *4(4)*, 406–425.

[2] Gascuel, O. (1997). BIONJ: An improved
version of the NJ algorithm based on a simple model of sequence data.
Molecular Biology and Evolution *14* 685–695.

[3] Studier, J.A., Keppler, K.J. (1988). A
note on the neighbor-joining algorithm of Saitou and Nei. Molecular
Biology and Evolution *5(6)* 729–731.

## Version History

**Introduced before R2006a**

## See Also

`multialign`

| `phytree`

| `seqlinkage`

| `seqpdist`

| `cluster`

| `plot`

| `reroot`

| `view`