You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DNAbin单倍型数据转矩阵以运行stamppFst()与stamppConvert()?

DNAbin格式转STAMPP兼容格式并计算Fst的实操步骤

1. 加载依赖包

先安装并加载所需R包:

install.packages(c("ape", "pegas", "StAMPP")) # 首次使用执行安装
library(ape)
library(pegas)
library(StAMPP)

2. 从DNAbin提取单倍型并转成genind格式

假设你的DNAbin数据对象名为dna:

  • 提取所有单倍型:
haplotypes <- haplotype(dna)
  • 匹配每个样本对应的单倍型索引,生成基因型分组:
# 获取每个样本的单倍型编号
hap_assignments <- match(haplotype(dna, label = FALSE), haplotypes)
# 转换为genind对象(单倍体设ploidy=1,二倍体设ploidy=2)
genind_data <- df2genind(as.data.frame(hap_assignments), ploidy = 1)

3. 用stamppConvert转成STAMPP专用格式

stampp_genotype <- stamppConvert(genind_data, type = "genind")

4. 运行stamppFst计算遗传分化

如果你有预先定义的种群分组向量(比如pop_groups,每个元素对应样本所属种群):

fst_output <- stamppFst(stampp_genotype, pop = pop_groups)
# 查看计算结果
print(fst_output)

额外提示

  • 若只是想把DNAbin转成字符矩阵,直接用as.matrix(dna),但这种字符矩阵无法直接输入STAMPP函数,必须转成数值型的基因型编码,所以通过genind中转是更稳妥的方式。
  • 如果是二倍体数据,只需在生成genind对象时将ploidy参数设为2即可。

内容的提问来源于stack exchange,提问作者Isaiah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 00:10:44