liamrevell / phytools

GNU General Public License v3.0
198 stars 56 forks source link

add.species.to.genus could not match your species to a genus #143

Closed alrichardbollans closed 11 months ago

alrichardbollans commented 11 months ago

I have a species tree to which I am trying to add species, which includes a tip "Geissospermum laeve". When I run: with_polytomes = phytools::add.species.to.genus(tree, "Geissospermum polytome1", where='root'), the original tree is returned with the error message: 'could not match your species to a genus check spelling, including case'.

Reproducible example:

test_tree = ape::rtree(5)
test_tree$tip.label = c("t3 sp1", "t4 sp1", "t5 sp1", "t2 sp1", "t1 sp1")
with_polytomes = phytools::add.species.to.genus(test_tree, "t1 polytome1", where='root')

I don't understand why this is happening, if anyone could shed some light that would be great

alrichardbollans commented 11 months ago

I tried lots of different combinations of parameters but in the end the only thing that resolved the issue was using underscores instead of spaces in the tree labels i.e. test_tree$tip.label = c("t3_sp1", "t4_sp1", "t5_sp1", "t2_sp1", "t1_sp1"). Curiously though when the tip labels are set like this, the function works with species = "t1_polytome1" and species = "t1 polytome1".