[R] How to colour the tip labels in a phylogenetic tree

Ben Bolker bolker at ufl.edu
Thu Sep 17 18:49:26 CEST 2009




Graham Etherington wrote:
> 
> Hi,
> Using Ape, I have constructed an object of class "phylo", using the 
> method 'nj' (lets call the object 'tree_ja').
> I also have a given subset of 'tree_ja' in a vector (lets call the 
> vector 'subspecies').
> What I want to do, is construct a nj tree - plot(tree_ja) - but have the 
> species in vector 'subspecies' shown as red at the tips of the tree.
> 
> The closest I've come is this:
> Given that 'tree_ja$tip.label' provides the following:
>   [1] "1_T1"      "2_T1"      "3_T1"      "4_T1"      "5_T1"      "6_T1"
>   [7] "7_T1"      "8_T1"      "9_T1"     "10_T1"     "11_T1"     "12_T1"
>  
> and that my 'subspecies' vector is:
> subspecies <- c("1_T1", "2_T1", "3_T1", "4_T1", "6_T1")
> which can also be written as:
> subspecies <- c(tree_ja$tip.label[1:4], tree_ja$tip.label[5])
> 
> I can construct a method which gives me the following statement:
> 
> plot(tree_ja, tip.col = c('red', 'red', 'red', 'red', 'black', 'red', 
> 'black', 'black', 'black', 'black', 'black', 'black'))
> 
> But this doesn't work (at least not on my full dataset, which as 118 
> tips - reduced to 12 here for brevity) and I'm SURE there must be a 
> better way of doing it.
> 
> Could anyone help me with this?
> Many thanks,
> Graham
> 
> -- 
> Dr. Graham Etherington
> Post-doctoral Bioinformatician,
> Department of Computational and Systems Biology
> John Innes Centre
> Norwich Research Park
> Colney
> Norwich
> NR4 7UH
> UK
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> 

  In general the r-sig-phylo group is better for this kind of question, and
it would
be better to give us a reproducible example, but here's an example that (I
think)
does what you want:

> library(ape)
> set.seed(1001)
> z = rcoal(10)
> z

Phylogenetic tree with 10 tips and 9 internal nodes.

Tip labels:
	t1, t7, t6, t10, t3, t9, ...

Rooted; includes branch lengths.
> names(z)
[1] "edge"        "edge.length" "tip.label"   "Nnode"      
> ss <- z$tip.label[c(1,3,5,7)]
> ?plot.phylo
> plot(z,tip.color=ifelse(z$tip.label %in% ss, "red","black"))

-- 
View this message in context: http://www.nabble.com/How-to-colour-the-tip-labels-in-a-phylogenetic-tree-tp25490805p25491995.html
Sent from the R help mailing list archive at Nabble.com.




More information about the R-help mailing list