Я пытаюсь построить филогенетическое дерево с начальной загрузкой с использованием методологии, определенной here. Построение имени каждого человека (названное 1,2,3,4, ... для этих примеров) не является информативным, так как у меня есть ОГРОМНЫЙ набор данных. Поэтому я хочу, чтобы подсказки были окрашены, чтобы отражать вид человека. Индивидуальная информация вида хранится в отделенных матричных называются виды:Цвет кончиков филогенетического дерева по видам человека
species = data.frame(Ind=c(1 ,2 ,3 ,4 ,5),
Spe=c("s1","se1","se2","se2","se3"))
Тем не менее, всякий раз, когда я пытался заменить имена лиц, с его видами в пригонках $ дерева $ этикетки, только результаты в предвосхищают вектор. Вероятно, это потому, что fit - это объект класса pml, который вызывает конфликт с моей стратегией, но я не уверен. Есть ли способ окрасить кончики дерева на основе отдельных видов? Мой код выглядит следующим образом, на данный момент:
library(phangorn)
#Create a tree from data in fasta format
dat = read.phyDat(file = "myalignment.fasta", format ="fasta")
tree <- pratchet(dat) # parsimony tree
mt <- modelTest(dat, tree=tree, multicore=TRUE)
mt[order(mt$AICc),]
bestmodel <- mt$Model[which.min(mt$AICc)]
env = attr(mt, "env")
fitStart = eval(get("GTR+G+I", env), env)
fit = optim.pml(fitStart, rearrangement = "stochastic", optGamma=TRUE, optInv=TRUE, model="GTR")
bs = bootstrap.pml(fit, bs=100, optNni=TRUE, multicore=TRUE)
#Replace the names with the species...
fit$tree$tip.label <- species[which(species[,1] == fit$tree$tip.label),2]
#If I print fit$tree$tip.label here, the output is factor(0)
#...and create the tree with colored tips
plotBS(midpoint(fit$tree), bs, p = 50, type="p", show.tip.label = FALSE)
tiplabels(pch=19, col = as.factor(fit$tree$tip.label), adj = 2.5, cex = 2)
непередаваем Пример
Сохранить следующий с именем «myalignment.fasta» и запустить приведенный выше код. Он должен создать пример игрушки, чтобы играть с:
>1
AACCAGGAGAAAATTAA
>2
AAAAA---GAAAATTAA
>3
ACACAGGAGAAAATTAA
>4
AACCTTGAGAAAATTAT
>5
CCTGAGGAGAAAATTAA
Вы должны создать минимальную [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Включите образцы данных (мы не можем читать файлы на вашем локальном компьютере). Если мы можем скопировать/вставить код в R, его легче протестировать и помочь. Если вопрос о построении, удалите любой код, не относящийся к вопросу. – MrFlick
Часто функция пакета включает пример кода, который использует встроенные наборы данных, чтобы продемонстрировать, как работают функции. Также 'dput()' можно использовать для воссоздания переменных в соответствии со ссылкой, которую я включил. Вы можете создать минимальные данные для использования в самом вопросе. Я предлагаю только эти вещи, если вы хотите облегчить людям помощь вам. – MrFlick
@MrFlick Я создал минимальное «myalignment.fasta», которое вы можете использовать для воспроизведения кода. – j91