В настоящее время я работаю над созданием путаницы, в которой выращиваемые виды находятся на одной стороне, а выращиваемый субстрат - на другой.Тем не менее, мне нужно, чтобы вывод также представлял собой запутанную диаграмму, где каждая сторона диаграммы должна быть концами дендограммы.В настоящее время у меня есть филогения видов и субстратов в форматах Ньюика.
Я успешно использовал пакет 'ape' и функцию plot.phylo()
для генерации 2 филогений.Затем я использовал следующий код из этого поста для экспорта порядка подсказок:
tree <- ladderize(tree, right = FALSE)
is_tip <- tree$edge[,2] <= length(tree$tip.label)
ordered_tips <- tree$edge[is_tip, 2]
x<-tree$tip.label[ordered_tips]
write.csv(x,file="test.csv",sep ="\t")
Затем я использовал порядок подсказок, чтобы сгенерировать матрицу для использования в пакет «двудольный» .
Однако, конечно, интервал на двудольном графе не совпадает с интервалом на дендрограммах, поэтому я не могу просто скопировать / вставить их рядом с однимдругой в программе обработки внешнего изображения.Мне интересно, есть ли способ, которым я могу сгенерировать диаграмму, которая объединяет дендрограммы и двудольный граф, чтобы сделать путаницу в rstudio?
Вот упрощенный визуальный пример того, что я надеюсь сделать:
Я хочу объединить 2 филогенетических дерева, которые, например, выглядят так:
tree1<-read.tree(text="((C,B),A);")
plot(tree1)
Вывод: tree1
tree2<-read.tree(text="((G,F),(E,D));")
plot(tree2)
Вывод: tree2
С двудольным графом
web = matrix(
c(0, 5, 0, 10, 10, 0, 0, 3, 0, 0, 0, 1),
nrow=4,
ncol=3,
byrow = TRUE,
dimnames = list(c("D","E","F","G"),c("A","B","C")))
plotweb(web,method="normal",empty="false",text.rot="90")
Вывод: двудольный график
Чтобы вместо этого создать график, который выглядит следующим образом (я только что сделал следующее в редакторе изображений, обширный набор данных, который я на самом деле использую, намного больше)
Желаемый результат: Tanglegram