Hi Kevin.

It sounds like what you want to do is perform a pre-order tree traversal and for each node visited ask if all the taxa to one side (e.g., descendants of the right daughter node) are in state "0" and all the taxa to the other side (e.g., descendants of the left daughter) are in state "1". If this evaluates to be true, then you record the number of tips in each category. To do this most efficiently, you should not visit any daughters of a node for which you have evaluated balance - but if you do, then you will find that it doesn't satisfy the criterion described above (specifically, descendants on either side of the node will be all in state "0" or "1").

This should be straightforward to code, but I do not have time to demonstrate right now. I will try to do it this evening. Let us know if you first figure it out yourself.

- Liam

Liam J. Revell, Assistant Professor of Biology
University of Massachusetts Boston
web: http://faculty.umb.edu/liam.revell/
email: liam.rev...@umb.edu
blog: http://blog.phytools.org

On 10/23/2014 11:13 AM, Arbuckle, Kevin wrote:
Hi Fran�ois,



Thanks again for your response. Wouldn't that lose the information of how many 
species were in each clade? And how would I specify that 'clades' to keep 
consist of those sharing either state? My original tree consists of almost 3000 
species so going through such clades manually would be difficult at best, hence 
the need to automate it somehow. (I apologise, my R coding skills are improving 
but still leave a lot to be desired in many cases).



I completely agree that BiSSE is far more appropriate for my aims, and indeed 
this was the approach I used. However, reviewers have asked if I get the same 
basic result using other methods, which is the only reason I am attempting such 
analyses now.



Thank you kindly once again for your time,



Kev



________________________________
From: Fran�ois Michonneau [francois.michonn...@gmail.com]
Sent: 23 October 2014 16:05
To: Arbuckle, Kevin
Cc: r-sig-phylo@r-project.org
Subject: Re: [R-sig-phylo] Extracting sister groups


HI Kevin,

   If I understand correctly what you're trying to do, you'll first need to 
collapse some of your tips to create clades, a proportion of which will have 
the trait. You'll then be able to use this new tree to generate the data.frame 
needed by the functions you mentioned in your original post.

   Depending on what you're trying to do, you may not want to lose this 
phylogenetic information. Maybe a different approach, such as using BiSSE in 
the diversitree package might be more appropriate?

   Cheers,
   -- Fran�ois

On Thu, Oct 23, 2014 at 10:27 AM, Arbuckle, Kevin 
<k.arbuc...@liverpool.ac.uk<mailto:k.arbuc...@liverpool.ac.uk>> wrote:

Hi Fran�ois,

Thank you kindly for your offer of help. The code below will simulate a phylogeny 
("tree") and a dataframe ("trait") with one binary trait for 100 species. The 
format is representative of the data I am using for my analyses so should serve as a test case. 
Hopefully this helps, let me know if there's any other information I can provide.



library(ape)
library(phytools)
tree<-rtree(100)
tran<-matrix(c(-1,1,1,-1),2,2)
rownames(tran)<-c("0","1")
colnames(tran)<-c("0","1")
phy<-sim.history(tree,tran)
trait<-data.frame(sp=tree$tip.label,bt=getStates(phy,type="tips"))
rownames(trait)<-tree$tip.label

Cheers,



Kev



________________________________
From: Fran�ois Michonneau 
[francois.michonn...@gmail.com<mailto:francois.michonn...@gmail.com>]
Sent: 23 October 2014 14:54
To: Arbuckle, Kevin
Subject: Re: [R-sig-phylo] Extracting sister groups


Hi Kevin,

   We should be able to help you but it would be much easier if you provided us 
with a small data set that illustrate the format of your current dataset. How 
is your trait currently stored? and how is it associated with the tips in your 
tree?

   Cheers,
   -- Fran�ois

On Thu, Oct 23, 2014 at 6:23 AM, Arbuckle, Kevin 
<k.arbuc...@liverpool.ac.uk<mailto:k.arbuc...@liverpool.ac.uk>> wrote:
Hi everyone,



I am attempting to run sister group analyses as one way to look at the effect 
of a binary trait on diversification. Two of the functions from ape that I'm 
looking at are diversity.contrast.test and richness.yule.test, but both have 
the same limitation. They require the data to be input as a dataframe of two 
columns, one with the number of species in clades that have the trait of 
interest, and the other with the number of species in the respective sister 
clades that don't have the trait. The issue is that I am working with a very 
large tree, and so extracting and entering such information by hand is not 
really feasible.



I am therefore looking for a function which extracts all sister clades that 
differ in the presence vs absence of the trait, and ideally is capable of 
generating a dataframe of the appropriate format for the above functions 
automatically. It seems that a function to do this should exist already, but as 
I can't seem to find anything I would appreciate some help (hopefully someone 
will know of such a function that already exists).



Thanks,



Kevin Arbuckle

         [[alternative HTML version deleted]]

_______________________________________________
R-sig-phylo mailing list - 
R-sig-phylo@r-project.org<mailto:R-sig-phylo@r-project.org>
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-phylo@r-project.org/



        [[alternative HTML version deleted]]



_______________________________________________
R-sig-phylo mailing list - R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-phylo@r-project.org/


_______________________________________________
R-sig-phylo mailing list - R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-phylo@r-project.org/

Reply via email to