知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍

简介: 知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍

kinship矩阵 和 IBS矩阵

亲缘关系矩阵(kinship matrix)和同源性矩阵(IBS matrix)是基于遗传数据计算得到的两种矩阵,用于描述个体之间的亲缘关系和遗传相似度。

重测序数据发掘亲缘关系

构建基于重测序数据的亲缘关系矩阵(kinship matrix)和同源性矩阵(IBS matrix)是基因组学研究中常见的任务之一,下面介绍操作方法:

读取重测序数据

您可以使用 read.table()readr::read_tsv() 函数从文件中读取数据,并将其存储为数据框。

library(readr)
seq_data <- read_tsv("path/to/sequencing/data/file.tsv")

过滤和清理数据

您需要根据自己的研究问题和目标样本集合,选择适当的过滤和清理策略来处理重测序数据。例如,去除缺失位点、低覆盖度位点或过滤掉与疾病相关的位点等。

# 假设要去除缺失位点和低覆盖度位点
filtered_data <- seq_data[complete.cases(seq_data), ]
filtered_data <- filtered_data[filtered_data$Coverage > 10, ]

计算杂合率

杂合率是指在某个位点上两个等位基因的频率之和,通常用于估计个体的基因型质量。您可以使用 VCFtools 或其他软件包计算杂合率并将其添加到数据框中。

# 假设杂合率的列名为 "HetRate"
filtered_data$HetRate <- calculate_heterozygosity(filtered_data)

计算亲缘关系矩阵和同源性矩阵

在 R 中,您可以使用 snpStats 或 GenABEL 包中的函数来计算亲缘关系矩阵和同源性矩阵。您需要提供一个包含所有样本的基因型信息的矩阵对象,并指定矩阵的类型(例如,二倍体或多倍体)和计算方法(例如,经典MLE或EM-REML)。

library(snpStats)
geno_matrix <- read.plink("path/to/genotype/data/file")
ibs_matrix <- ibs(geno_matrix)
kinship_matrix <- ibs2kin(ibs_matrix, type = "RR", Nind = ncol(geno_matrix))

可视化结果

您可以使用 ggplot2 或其他可视化软件包来可视化亲缘关系矩阵和同源性矩阵。例如,下面的代码使用 ggplot2 包绘制了一个基于 kinship 矩阵的 heatmap。

library(ggplot2)
kinship_df <- as.data.frame(as.matrix(kinship_matrix))
ggplot(kinship_df, aes(x = Var1, y = Var2, fill = value)) + 
  geom_tile() + 
  scale_fill_gradient(low = "white", high = "blue") +
  theme(axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.title.x = element_blank(),
        axis.title.y = element_blank())

补充介绍

亲缘关系矩阵衡量了不同个体之间亲缘关系的程度,通常使用 Pearson 相关系数或 Euclidean 距离来表示。亲缘关系矩阵的对角线元素为 1,表示每个个体与自己的亲缘关系是最近的。而非对角线元素的大小表示不同个体之间的亲缘关系程度,例如,越接近 1 表示越近亲。

同源性矩阵是指在某个位点上,两个个体所拥有的等位基因是否相同。同源性矩阵可以用三种方式(AA, AB, BB)表示两个个体在某个位点上的等位基因状态,其中 A 代表一个等位基因,B 代表另一个等位基因。同源性矩阵是通过计算每对个体之间在所有位点上的同源性程度得到的。

作用与应用场景

一般情况下,亲缘关系矩阵和同源性矩阵是通过重测序数据或 SNP array 数据计算得到的。对于 SNP array 数据,同源性矩阵可以直接从样本的基因型数据计算得到。而亲缘关系矩阵则需要进一步转换。亲缘关系矩阵和同源性矩阵在基因组学研究中具有重要作用。


以上内容整理并参考了Chatgpt3.5,每天分享一个生信知识点,欢迎后台提问,将优先考虑粉丝提出的问题并整理答案~

END

© 素材来源于网络,侵权请联系后台删除

往期推荐:

文献丨群体转录组分析锁定关键转录因子

文献丨转录组RNA seq——青年阶段!

文献丨高通量表型组图像识别与GWAS

笔记丨ggplot2热图入门学习笔记

笔记丨PCA分析基本知识和数学原理

图书丨R语言、Python、Linux

超算丨数据分析时电脑配置不够用?试试

软件 | 如何进行基因家族分析?TBtools

服务器丨家用联想台式机重装Linux系统

转录组丨一套完整的操作流程案例

转录组丨利用limma包进行差异表达分析

Python笔记丨函数和类相关基础知识总结

Python笔记丨条件与循环流程知识总结

Python笔记丨数据类型基础与易错点总结

GWAS丨全基因组关联分析工具GAPIT最新版

数据可视化丨优雅的带显著性标记的箱线散点图

相关文章
XP-CLR分析笔记丨检测不同种群之间由于选择引起的差异信息,群体遗传学经典方法
XP-CLR分析笔记丨检测不同种群之间由于选择引起的差异信息,群体遗传学经典方法
如何用vcftools从VCF文件中提取某条染色体信息
如何用vcftools从VCF文件中提取某条染色体信息
|
存储 索引 Python
生信教程:使用全基因组SNP数据进行ABBA-BABA分析
生信教程:使用全基因组SNP数据进行ABBA-BABA分析
|
并行计算 数据可视化 算法
CMplot & rMVP | 全基因组曼哈顿图和QQ图轻松可视化!
`CMplot`和`rMVP`是R语言中的两个包,用于全基因组关联分析(GWAS)的数据可视化。`CMplot`专注于曼哈顿图和QQ图的绘制,支持多种图表类型,如常见的SNP密度图、环状曼哈顿图、矩阵图、单条染色体图和多重曼哈顿图等。`rMVP`不仅包含了`CMplot`的功能,还支持更复杂的GWAS方法,如线性/混合线性模型和基因组选择算法,优化了内存管理和计算效率,特别适合大规模数据集。此外,它还提供PCA图和柱状图。两者都提供了丰富的参数定制图表。
983 1
CMplot & rMVP | 全基因组曼哈顿图和QQ图轻松可视化!
|
Perl
技术笔记:samtools统计重测序数据深度depth、depth
技术笔记:samtools统计重测序数据深度depth、depth
699 0
|
存储 算法 Linux
算法丨根据基因型VCF文件自动识别变异位点并生成序列fasta文件,基于R语言tidyverse
算法丨根据基因型VCF文件自动识别变异位点并生成序列fasta文件,基于R语言tidyverse
|
Linux Shell 数据格式
Linux脚本丨批量提取VCF文件指定样本数据
Linux脚本丨批量提取VCF文件指定样本数据
|
Linux Python
SGAT丨利用GAPIT进行GWAS分析的方法
SGAT丨利用GAPIT进行GWAS分析的方法
|
数据采集 弹性计算 数据可视化
GWAS全基因组关联分析工具GAPIT最新版!详细安装教程与报错解决方案笔记(Linux版)
GWAS全基因组关联分析工具GAPIT最新版!详细安装教程与报错解决方案笔记(Linux版)
|
数据可视化 数据挖掘 数据处理
跟着Nature Genetics学数据分析:使用GEC软件计算有效位点数从而确定GWAS的阈值
跟着Nature Genetics学数据分析:使用GEC软件计算有效位点数从而确定GWAS的阈值