I’m trying to run an ancestral character estimation assuming equal rates using the “ape” package. I’ve read my phylogeny in as a NEXUS file and my discrete traits in a list.
However, when I try to carry out the “ace” command, I get the following error:
> equalrates_model = lapply (var.list, function (x) ace (x, tree,
+ type = "discrete",
+ model = "ER"))
Error in names(obj$ace) <- phy$node.label :
attempt to set an attribute on NULL
Here is the structure of my tree:
> str (tree)
List of 6
$ edge : int [1:92, 1:2] 48 49 50 51 51 50 52 52 53 53 ...
$ edge.length: num [1:92] 0.0137 0.0146 0.0271 0.0389 0.0674 ...
$ Nnode : int 46
$ node.label : int [1:46] 1 2 3 4 5 6 7 8 9 10 ...
$ root.edge : num 0
$ tip.label : chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
- attr(*, "class")= chr "phylo"
- attr(*, "order")= chr "cladewise"
and here is the structure of my list of traits:
> str(var.list)
List of 12
$ Species : Named chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Hemiptera : Named int [1:47] 1 0 0 0 0 0 0 1 0 0 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Diptera : Named int [1:47] 1 1 1 1 1 1 0 1 1 0 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Hymenoptera: Named int [1:47] 0 0 0 0 0 0 0 0 1 0 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Lepidoptera: Named int [1:47] 0 0 0 1 0 0 0 0 0 0 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Orthoptera : Named int [1:47] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Coleoptera : Named int [1:47] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Trichoptera: Named int [1:47] 0 0 0 1 0 0 0 0 0 0 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Araneae : Named int [1:47] 0 0 0 0 0 0 0 0 0 1 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Psocodea : Named int [1:47] 0 0 0 0 0 0 1 0 0 0 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Blattodea : Named int [1:47] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
$ Mantodea : Named int [1:47] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "names")= chr [1:47] "Ectemnius_sonorensis" "Dasyproctus_spec" "Lindenius_panzeri2" "Crossocerus_quadrimaculatus" ...
Any help in solving this error would be greatly appreciated.