Amova 使用单倍型频率数据

问题描述 投票:0回答:1

我想根据从线粒体 DNA 中提取的单倍型进行 Amova。根据这些序列,我想看看是否存在任何显着的人口结构。

首先,我尝试将 fasta 文件转换为 genind 类,这样我就可以使用 poppr 中的 amova 函数进行分析。然而,我认为它不起作用,因为这种方法主要用于二倍体DNA。因此,我尝试使用 pegas 的 amova 函数根据我的频率数据计算距离矩阵。

haplo_freq \<- data.frame(
Population = c("A", "B", "C", "D"),
Hap_1 = c(1, 0, 0, 0, 0, 0),
Hap2 = c(1, 0, 0, 0, 11, 5),
Hap3 = c(0, 5, 2, 0, 5, 12),
Hap4 = c(5, 0, 0, 3, 19, 14),
Hap5 = c(0, 0, 0, 0, 5, 0),
Hap6 = c(0, 0, 0, 0, 4, 0),
Hap7 = c(0, 0, 0, 0, 9, 1),
Hap8 = c(0, 0, 0, 0, 1, 0)
)
rownames(haplo_freq) \<- haplo_freq$Population
haplo_freq \<- haplo_freq\[, -1\]
dist_matrix \<- dist(haplo_freq, method = "euclidean")
populations \<- factor(rownames(haplo_freq))  # or create a factor variable for grouping if you have additional levels
amova_result \<- amova(dist_matrix \~ populations, nperm=1000)
print(amova_result)

但是,我收到以下错误:amova(dist_matrix ~ Populations, nperm = 1000) 中的错误: 未使用的参数(nperm = 1000)。奇怪的是,我仍然能够打印 amova 的结果,但我不确定我是否可以信任输出。有人可以帮助我吗?

r rstudio dna-sequence
1个回答
0
投票

AMOVA 的

pegas
实施中的 nperm 论据。如果你想使用它,请添加参数
method = "pegas"
。否则,它默认使用 ade4 实现,并且
nperm
参数被忽略。它不应该影响您的结果,但请确保尝试在没有参数的情况下或使用正确的方法重新运行。

© www.soinside.com 2019 - 2024. All rights reserved.