Реконструкция филогенетического предка: укажите модель изменения состояния однонаправленного персонажа [ape][phytools]

Допустим, у меня есть филогенетическое дерево и некоторые символьные данные для моего дерева. У меня есть один символ, который, я знаю, является однонаправленным: скорость перехода от 0 до 1 положительна, но скорость перехода от 1 до 0 равна нулю (например, 0 - диплоид, а 1 - полиплоид). Допустим, я хочу сделать реконструкцию предка моего дерева. Я знаю, что могу использовать Ace из пакета Ape или make.simmap из пакета phytools для реконструкции предков, но я не знаю, как указать модель однонаправленного изменения символов.

Пример:

require(ape)
require(phytools)

# Generate example tree
set.seed(100)
tree<-rtree(10, rooted=T, tip.label=letters[1:10])
# Example characters
characters<-sample(0:1, 10, replace=T)
names(characters)<-letters[1:10]

# Equal-rates model
mod=matrix(c(0,1,1,0),2)
simmap<-make.simmap(tree, characters, model=mod)
plotSimmap(simmap) # Works fine


# My attempt at a unidirectional model: rate of change from 1 to 0 set to zero
mod = matrix(c(0,0,1,0),2)
simmap<-make.simmap(tree, characters, model=mod) # Gives me error; Error in eigen(mat) : infinite or missing values in 'x'

У кого-нибудь есть идеи, что делать?

1 ответ

Решение

Ваш код выше работал нормально для меня, используя R версии 3.1.2 (2014-10-31) - "Pumpkin Helmet" под Windows с недавно установленными версиями ape и phytools. Справочная документация make.simmap рассказывает о некоторых ошибках в предыдущих версиях.

mod = matrix(c(0,0,1,0),2)
simmap<-make.simmap(tree, characters, model=mod)
make.simmap is sampling character histories conditioned on the transition matrix
#Q =
#           0         1
#0 -0.8271365 0.8271365
#1  0.0000000 0.0000000
#(estimated using likelihood);
#and (mean) root node prior probabilities
#pi =
#  0   1 
#0.5 0.5 
#Done.
Другие вопросы по тегам