вручную добавить таксоны в дерево phylogeneti c в R - PullRequest
0 голосов
/ 05 августа 2020

У меня есть дерево phylogeneti c в R, и в настоящее время переменными являются таксоны. Я хочу назначить taxa_names из data.frame (дерево основано на указанном data.frame).

 matrix <- data.frame(row.names = c('aa','bb','cc'),aa=c(0,1,1),bb=c(1,1,0),cc=c(0,1,1))
> matrix
   aa bb cc
aa  0  1  0
bb  1  1  1
cc  1  0  1

d.matrix <- dist(matrix)
h.matrix <- hclust(d.matrix) %>% ape::as.phylo(.)

Имена таксонов: aa,bb,cc. Но я хочу установить имена taxa_name на t и a. Эти буквы взяты из data.frame dd.

dd <- data.frame(row.names = c('aa','bb','cc'),values = c('t','a','a'))
> dd
   values
aa      t
bb      a
cc      a

dd на самом деле имеет намного больше столбцов, но здесь я его сократил.

Как вручную установить taxa_names для дерево в R? Желаемые имена таксонов указаны в data.frame

РЕДАКТИРОВАТЬ: Я пробовал taxa_names <- c() и AssignTaxonomy() (из dada2 пакета) безуспешно

1 Ответ

0 голосов
/ 05 августа 2020

Во-первых, я считаю хорошей практикой читать ваши данные как character вместо factor (по умолчанию для data.frames). Это можно сделать с помощью аргумента stringsAsFactors:

dd <- data.frame(row.names = c('aa','bb','cc'),values = c('t','a','a'), stringsAsFactors = FALSE)

Затем вы можете просто присвоить имя непосредственно указанной c записи объекта phylo (вы можете изменить порядок, как хотите ):

h.matrix$tip.label = dd$values

Чтобы узнать больше о проверке класса phylo https://www.rdocumentation.org/packages/ape/versions/2.6-3/topics/read.tree

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...