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

Graham Etherington Graham.Etherington at bbsrc.ac.uk
Thu Sep 17 15:00:14 CEST 2009


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




More information about the R-help mailing list