nei.dist tree

R中计算Nei's遗传距离,并利用UPGMA获取聚类树的具体流程如下:

  1. Excel中整理marker数据并用Genalex生成需要的格式后再在R中转成需要的“genind”对象类型。
    nei.dist tree_第1张图片
  2. 按照Genalex要求​准备好原始数据(C4)


    nei.dist tree_第2张图片
  3. Genalex自动生成格式并保存成.csv
    Parameters>All for Codom (这是共显性标记,显性标记不是这个,是loci?)
    nei.dist tree_第3张图片

    注意!第二列要加上群体的代号,如果不分群体就编码一致就可以。这里是共显性标记,对于显性标记也一样。缺失的条带用NA表示。然后需要处理缺失数据时可以用missingno {poppr}函数,可选方案有"ignore", "zero", "mean", "loci", or "geno"。位点的名字中不要有点.
  4. 读取
# 加载包
library(poppr)
library(phangorn) # upgma
# 读取标记数据
dataset<-read.genalex("name.csv",genclone = F,ploidy = 2)
# nei距离
nei.dis<-nei.dist(dataset,warning = T)
# 需要的话可以保存下来
write.csv(as.matrix(nei.dis),"name.csv")
  1. 制作树
# 先写了一个生成图片的函数
# 声明包含上一步得到的距离对象,要保存pdf的名字,图片的宽和高
make.tree <- function(nei.dis, filename, width, height) {
 tr <- upgma(nei.dis)
# 需要的话也可以把树文件保存下来用其他软件处理
 write.tree(tr, paste0(filename,".tree"))
 pdf(paste0(filename, ".tree.pdf"), family = "serif", width = width, height = height)
 par(mar = c(1, 1, .5, .5))
 plot(ladderize(tr))
 add.scale.bar(length = 0.1,font = 1)
 dev.off()
}
# 执行
make.tree(nei.dis,"Clones",4,5)
make.tree(nei.dis,"Mei.Sha",4,10)

你可能感兴趣的:(nei.dist tree)