分享

如何利用系谱或者SNP数据划分家系?

 育种数据分析 2025-05-14 发布于河南

家系划分,也算是将亲缘关系近的放在一起,作为一个家系。因此是可以使用系谱构建的亲缘关系A矩阵,进行聚类分析,然后可视化,然后挑选家系的。

如果没有系谱,也可以根据不同的表型,进行相关分析,得到相关系数矩阵,然后进行家系划分的。当然,这个就比较扯,因为长得像不一定是一个家系,而家系默认为是有亲缘关系的。

那怎么办?

可以检测基因型数据,就可以根据G矩阵进行聚类分析,家系划分的。

道理都是相通的,很有意思。

概念定义

共祖系数:共祖系数为概率fAB,表示一个来自个体A,另一个来自个体B的两个同源基因(或等位基因)在系谱上是一致或相同的概率,也就是说来自同一祖先基因的概率,

相关系数: 是2倍的共祖系数

近交系数: 近交系数(inbreeding coefficient)是指根据近亲交配的世代数,将基因的纯化程度用百分数来表示即为近交系数,也指个体由于近交而造成异质基因减少时,同质基因或纯合子所占的百分比也叫近交系数,个体中两个亲本的共祖系数。

如果系谱构建好的A矩阵,如何进行家系划分呢?

1. 数据格式:矩阵

包括行号和列号

2. 热点图+聚类


# 热点图
heatmap(Amat)

3. 纵向聚类图1

# 横向聚类1
library(amap)
clu <- hclusterpar(Amat)
plot(clu,sub="",hang = -1,xlab = NA,ylab = NA,main = NA)

4. 纵向聚类图2

# 横向聚类
library(cluster)
agnx <- agnes(Amat,method = "complete")
pltree(agnx)

5. 横向聚类图

# 纵向聚类
dagn  <- as.dendrogram(as.hclust(agnx))
plot(dagn, horiz = TRUE, center = TRUE,
     nodePar = list(lab.cex = 0.6, lab.col = "forest green", pch = NA))

6. 拓展:家系划分

关于拓展,你有什么想到的呢?

如果根据系谱,构建A矩阵,然后将相关的个体提取出来,划分家系,这不就是聚类分析灵活的例子么?

如果根据基因组信息,构建G矩阵或者H矩阵,然后将感兴趣的个体提取出来,划分家系,指导育种选配,不也是一个方向么?

然后题目就构成了:如何利用系谱信息进行家系划分并可视化

上面是之前的思路,现在实现了用G矩阵划分家系了,实践效果很好,下面介绍一下思路:

1,构建G矩阵,可以是GCTA,可以是GEMMA,可以是ASRGenomics,也可以是R编程,都可以。

2,标准化矩阵,因为G矩阵会有偏,比如为负数,比如对角线小于1,这里可以将对角线标准化为1,负值变为0,相当于用G相关系数矩阵代替

3,全同胞,考虑到孟德尔随机误差,可以设置范围0.3~0.6,提取相关符合的个体对

4,分组,如果出现了一次,就划分到同一个家系中

5,家系间计算平均相关系数,如果比较接近,也可以考虑合并家系

下一篇分享一下具体代码。


分割线


1,快来领取 | 飞哥的GWAS分析教程

2,飞哥汇总 | 入门数据分析资源推荐

3,数量遗传学,分享几本书的电子版

4,R语言学习看最新版的电子书不香嘛?

5,书籍及配套代码领取--统计遗传分析导论

6,五一在家把GWAS分析学会吧!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多