Dear all

To prepare for SH tests between optimised and "expected" trees, I've been 
attempting to do tree manipulations in R. Pruning is easy with the dual 
functions of extract.clade() and drop.tip(), however grafting the clade into a 
different place using bind.tree() is proving much more difficult.

What seems to be happening is that during the tree binding process, some tips 
are becoming nodes and vice versa. 

Any help is much appreciated!

Thank you!

Sam


Some code:

library(ape)
data(bird.orders)
phy<-bird.orders

node<-43                                  #Node with taxa of interest 
(Columbiformes:Passeriformes)
site<-21                                   #Where above group is expected to be 
(In a clade with Struthioniformes:Anseriformes)

j<-allDesc(node)                        #See function definition below
grp<-extract.clade(phy, node)
rest<-drop.tip(phy, j)

tr<-bind.tree(rest, grp, where=site)

plot(tr)                                    #Should get an error: "Error in 
plot.phylo(tr) : NA/NaN/Inf in foreign function call (arg 6)"

write.tree(tr)                             #Can see Upupiformes as sister to 
NODE11, among others.



where:

allDesc<-function(node){
    N<-length(phy$tip.label)

    index<-which(phy$edge[,1]==node)
    desc<-phy$edge[index,2]

    taxa<-desc[desc<=N]

    desc<-desc[desc>N]

    while(length(desc)>=1){
        ind<-NULL
        for(i in 1:length(desc)){
            ind<-c(ind,which(phy$edge[,1]==desc[i]))
        }
        desc<-phy$edge[ind,2]
        taxa<-c(taxa,desc[desc<=N])
        desc<-desc[desc>N]
    }
    taxa
}
                                          
_________________________________________________________________

 Facebook.

k-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-nz:SI_SB_2:092010
        [[alternative HTML version deleted]]

_______________________________________________
R-sig-phylo mailing list
R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo

Reply via email to