Not sure if I understand the problem completely, but this should allow you to 
examine all of the clades (and should work if polytomies are involved):

# for tree phy
rootID <- length(phy$tip.label) + 1;
for (i in rootID:max(phy$edge[,1])) {
  clade <- extract.clade(phy, i);
  # do something

This includes the root node (i.e. whole tree), but that can be changed. This 
can be rewritten as an lapply if necessary.

Joseph W. Brown
Post-doctoral Researcher, Smith Laboratory
University of Michigan
Department of Ecology & Evolutionary Biology
Room 2071, Kraus Natural Sciences Building
Ann Arbor MI 48109-1079

> On 5 Jan, 2017, at 15:50, Kamila Naxerova <> wrote:
> Hi all, 
> I would like to break a phylogenetic tree into all possible clades and then 
> examine each one of them for certain characteristics.
> I am writing some code to do this from scratch, but it’s getting pretty 
> cumbersome quickly. 
> I was wondering whether there are some functions out there already that could 
> help me with this task?
> Thanks so much for any help.
> Cheers,
> Kamila
> The information in this e-mail is intended only for th...{{dropped:21}}

R-sig-phylo mailing list -
Searchable archive at

Reply via email to