R:从任意特征构建系统发育树?
R: Building phylogenetic tree from arbitrary features?
StackExchange。
我正在尝试使用 R 为超过 100 个个体构建系统发育树。
然而,虽然 APE 和 ggtree 等软件包的教程很容易展示如何使用原始 DNA 或预先排序的分组(例如 (((A,B),(C,D)) ,E)), 我的数据采用从整个基因组组装的机器编号标签列表的形式。
例如:
sample <- c("A", "B", "C"...)
ID <- c("1 2 4 5", "2 4 5", "1 2 3 5"...)
df <- data.frame(sample, ID)
sample
ID
A
1 2 4 5
B
2 4 5
C
1 2 3 5
我正在努力弄清楚如何(或者即使可能)从这种任意编号中构建系统发育。有人熟悉吗?
(Rooted/unrooted/circular不是特别重要)
感谢阅读!
(系统发育)树只是样本的层次聚类。唯一需要做的就是定义所有样本对之间的差异性度量。
在您的情况下,每一行都有一组数字,因此我们可以为此使用 Jaccard。比如样本B的所有元素在样本A中也都有,所以在树中应该并排放置:
library(tidyverse)
library(proxy)
sample <- c("A", "B", "C")
ID <- c("1 2 4 5", "2 4 5", "1 2 3 5")
df <- data.frame(sample, ID)
df
#> sample ID
#> 1 A 1 2 4 5
#> 2 B 2 4 5
#> 3 C 1 2 3 5
distances <-
df %>%
separate_rows(ID) %>%
mutate(has_ID = 1) %>%
pivot_wider(names_from = ID, values_from = has_ID, values_fill = list(has_ID = 0)) %>%
column_to_rownames("sample") %>%
proxy::dist(by_rows = TRUE, method = "Jaccard")
distances
#> A B
#> B 0.25
#> C 0.40 0.60
distances %>%
hclust() %>%
plot()
由 reprex package (v2.0.0)
创建于 2022-05-13
StackExchange。
我正在尝试使用 R 为超过 100 个个体构建系统发育树。
然而,虽然 APE 和 ggtree 等软件包的教程很容易展示如何使用原始 DNA 或预先排序的分组(例如 (((A,B),(C,D)) ,E)), 我的数据采用从整个基因组组装的机器编号标签列表的形式。
例如:
sample <- c("A", "B", "C"...)
ID <- c("1 2 4 5", "2 4 5", "1 2 3 5"...)
df <- data.frame(sample, ID)
sample | ID |
---|---|
A | 1 2 4 5 |
B | 2 4 5 |
C | 1 2 3 5 |
我正在努力弄清楚如何(或者即使可能)从这种任意编号中构建系统发育。有人熟悉吗? (Rooted/unrooted/circular不是特别重要)
感谢阅读!
(系统发育)树只是样本的层次聚类。唯一需要做的就是定义所有样本对之间的差异性度量。 在您的情况下,每一行都有一组数字,因此我们可以为此使用 Jaccard。比如样本B的所有元素在样本A中也都有,所以在树中应该并排放置:
library(tidyverse)
library(proxy)
sample <- c("A", "B", "C")
ID <- c("1 2 4 5", "2 4 5", "1 2 3 5")
df <- data.frame(sample, ID)
df
#> sample ID
#> 1 A 1 2 4 5
#> 2 B 2 4 5
#> 3 C 1 2 3 5
distances <-
df %>%
separate_rows(ID) %>%
mutate(has_ID = 1) %>%
pivot_wider(names_from = ID, values_from = has_ID, values_fill = list(has_ID = 0)) %>%
column_to_rownames("sample") %>%
proxy::dist(by_rows = TRUE, method = "Jaccard")
distances
#> A B
#> B 0.25
#> C 0.40 0.60
distances %>%
hclust() %>%
plot()
由 reprex package (v2.0.0)
创建于 2022-05-13