nei.dist tree

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

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


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

    注意!第二列要加上群体的代号,如果不分群体就编码一致就可以。这里是共显性标记,对于显性标记也一样。缺失的条带用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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容