Arguments

a phylo4 object (or one inheriting from
phylo4, e.g. a phylo4d object)

node

either an integer corresponding to a node ID number, or a
character corresponding to a node label; for ancestors and
descendants, this may be a vector of multiple node numbers or names

type

(ancestors) specify whether to return just direct
ancestor ("parent"), all ancestor nodes ("all"), or all ancestor nodes
including self ("ALL"); (descendants) specify whether to return just
direct descendants ("children"), all extant descendants ("tips"), or all
descendant nodes ("all") or all descendant nodes including self ("ALL").

include.self

whether to include self in list of siblings

...

a list of node numbers or names, or a vector of node numbers or
names

Details

ancestors and descendants can take node vectors of
arbitrary length, returning a list of output vectors if the number of valid
input nodes is greater than one. List element names are taken directly from
the input node vector.

If any supplied nodes are not found in the tree, the behavior currently
varies across functions.

Invalid nodes are automatically omitted by ancestors
and descendants, with a warning.

ancestor
will return NA for any invalid nodes, with a warning.

Both children and siblings will return an empty
vector, again with a warning.

Value

ancestors

return a named vector (or a list
of such vectors in the case of multiple input nodes) of the
ancestors and descendants of a node

descendants

return a named vector (or a list of
such vectors in the case of multiple input nodes) of the ancestors
and descendants of a node

ancestor

ancestor is analogous to
ancestors(...{}, type="parent") (i.e. direct ancestor
only), but returns a single concatenated vector in the case of
multiple input nodes

children

is analogous to descendants(...{},
type="children") (i.e. direct descendants only), but is not
currently intended to be used with multiple input nodes