重测序关系矩阵构建方式汇总

样本间亲缘关系矩阵(kinship matrix)和同源性矩阵(IBS matrix)构建的方式

1. 可以使用plink的–make-rel计算个体之间的亲缘关系(强调个体之间的遗传相似性)

/opt/software/plink --bfile vcf_bfile--make-rel --out relatedness_matrix # 得到亲缘关系距离矩阵:
# relatedness_matrix.rel

2. kinship

# 利用tassel计算
run_pipeline.pl -Xmx1536m-Xms512m -SortGenotypeFilePlugin -inputFile 你的vcf文件 -outputFile outvcf -fileType VCF
run_pipeline.pl-Xmx1536m -Xms512m -importGuess outvcf -KinshipPlugin -methodCentered_IBS -endPlugin -export tassel_kinship.txt -exportType SqrMatrix
# 利用gcta计算
使用 --make-grm-alg 1 或 --make-grm 0
gcta --make-grm --make-grm-alg 1 --out snp.gcta --bfile vcf_bfile snp --autosome-num 90

3. IBS

/opt/software/plink --bfile  vcf_bfile --make-bed --out IBS_matrix --maf 0.05 --recode --double-id --allow-extra-chr --chr-set 90  --distance square ibs
要计算遗传距离,使用1-ibs

群体关系矩阵如何构建?

转换方法:平均IBS(1-IBS)(个体对间均值)

计算所有个体两两之间的IBS(1-IBS)均值,反映群体内遗传相似性、遗传距离。

python3 /home/huguang/script/GWAS/group_dis.py distance_matrix group_labels # 具体group_dis.py代码如下
import sys
import numpy as np
import pandas as pd
from itertools import combinationsdef compute_intergroup_distances(distance_matrix, group_labels):"""计算组间遗传距离矩阵(组间平均距离)参数:distance_matrix: 全样本的遗传距离矩阵 (n x n)group_labels: 样本分组标签列表 (length = n),例如 [0,0,1,1,2,2]返回:group_dist_matrix: 组间距离矩阵 (k x k),k为组数"""# 参数检查assert distance_matrix.shape[0] == distance_matrix.shape[1], "距离矩阵必须是方阵"assert len(group_labels) == distance_matrix.shape[0], "标签数与矩阵维度不匹配"groups = np.unique(group_labels)k = len(groups)group_dist_matrix = np.zeros((k, k))# 计算每对组间的平均距离for i, j in combinations(range(k), 2):# 获取组i和组j的样本索引idx_i = np.where(group_labels == groups[i])[0]idx_j = np.where(group_labels == groups[j])[0]# 提取子矩阵submatrix = distance_matrix[np.ix_(idx_i, idx_j)]# 计算平均距离(可替换为中位数等其他统计量)avg_dist = np.nanmean(submatrix)# 对称赋值group_dist_matrix[i, j] = avg_distgroup_dist_matrix[j, i] = avg_dist# 对角线(组内距离)特殊处理for i in range(k):idx = np.where(group_labels == groups[i])[0]submatrix = distance_matrix[np.ix_(idx, idx)]group_dist_matrix[i, i] = np.nanmean(submatrix[np.triu_indices(len(idx), k=1)])return group_dist_matrix# 示例用法
if __name__ == "__main__":full_matrix = pd.read_csv(sys.argv[1], sep='\t', header=None, index_col=None,  engine='c').to_numpy()groups = pd.read_csv(sys.argv[2], sep="\t", header=None, index_col=None).iloc[:, 0].to_numpy()# 计算组间距离矩阵result = compute_intergroup_distances(full_matrix, groups)print("组间遗传距离矩阵:")print(np.round(result, 4))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/79452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 部署前、后端分离项目详细步骤(从打包到部署)

在平常的开发工作中,一个项目经历需求、开发、测试、上线等步骤。在开发测试完成后,我们需要部署测试环境、生产环境等,那么我们用 docker 方式应该怎么部署呢?前后端分离的项目又该如何部署呢?那么,今天我…

大语言模型理解一般需求到在专业领域中最大限度地发挥其效能的演变轨迹

在人工智能技术飞速发展的当下,大语言模型(LLM)凭借其强大的语言处理能力和广泛的应用潜力,成为了各行业关注的焦点。从最初的文本生成、简单问答,到如今在专业领域的深度应用,大语言模型与用户的交互模式正…

mindyolo填坑

1、按照gitee上的文档跑预测代码,跑不通 更改: 将predict.py复制到跟目录。如果是cpu(本地测试比较常见),那么正确的命令行是: python predict.py --device_targetCPU --config ./configs/yolov7/yolov7.…

Python集合全解析:从基础到高阶应用实战

一、集合核心特性与创建方法 1.1 集合的本质特征 Python集合(Set)是一种​​无序且元素唯一​​的容器类型,基于哈希表实现,具有以下核心特性: ​​唯一性​​:自动过滤重复元素​​无序性​​&#xff…

【javascript】竞速游戏前端优化:高频操作与并发请求的解决方案

文章目录 前言一、性能痛点分析二、核心技术方案1.Web Worker2.Promise高级控制3.智能队列系统4.游戏化节流设计 三、最佳实践选择 前言 在竞速类网页游戏中,玩家高频点击与服务器实时交互会引发两大核心挑战: 客户端性能瓶颈:频繁操作导致…

Linux操作系统系统编程:x86-64架构下的系统调用

在Linux操作系统里,系统编程如同精密仪器的核心部件,掌控着系统运行的关键。而 x86-64 架构下的系统调用,更是连接用户空间程序与内核的关键桥梁。你可以把用户空间的程序想象成一个个 “工匠”,它们有着各式各样的需求&#xff0…

理解数据湖

目录 一、数据湖的定义与相关概念 二、数据湖出现的背景 三、数据湖关键技术 (一)存储技术

前端应用开发技术历程的简要概览

前端应用开发技术详解 一、萌芽期&#xff08;1990s - 2004&#xff09; 技术特征 HTML 3.2 / HTML 4.01 是主流版本。 样式用 CSS1/CSS2&#xff0c;但大部分样式写在 <style> 标签甚至行内。 动态效果主要通过 JavaScript 控制 DOM&#xff0c;兼容性极差。 代表事…

交换机配置DHCP

交换机配置DHCP 背景先关闭路由器的DHCPconsole口连接到交换机配置交换机 背景 路由器的dhcp分配IP地址变慢&#xff0c;怎么处理 先关闭路由器的DHCP 查看路由器中DHCP地址池范围; 关闭路由器的DHCP console口连接到交换机 协议Serial端口COMX波特率9600流控无 配置交换机…

解决Flutter项目中Gradle构建Running Gradle task ‘assembleDebug‘卡顿问题的终极指南

解决Flutter项目中Gradle构建Running Gradle task ‘assembleDebug‘卡顿问题的终极指南 前言 在开发Flutter应用时,经常会遇到Gradle构建卡在Running Gradle task assembleDebug阶段的问题。本文将分享如何通过配置华为云镜像和使用自定义脚本下载依赖的方法解决这些问题。…

AI驱动文字冒险游戏

github地址&#xff1a;https://github.com/thornbsj/ImmenseSimGame 虽然游戏比较简陋&#xff0c;但是由于笔者不想对游戏做过多的“剧透”&#xff0c;因此本文只粗略讲一下大致逻辑以及部分代码&#xff0c;有兴趣的朋友可以看上面的仓库获得更详细的部分。 一、状态机改…

springboot中有关数据库信息转换的处理

现代项目一般都是前后端分离的&#xff0c;前端只负责展示数据&#xff0c;不负责对数据处理&#xff0c;所以所有数据处理工作都由后端进行 比如在仿京东中的status&#xff0c;审核信息展示&#xff0c;数据库中是以0/1显示&#xff0c;但是前端需要以"审核/未审核&quo…

提示词版本化管理:AI开发中被忽视的关键环节

当我的提示词"消失"在团队协作中 上周五下午&#xff0c;我经历了一场小型"灾难"。作为一名AI产品经理&#xff0c;我花了整整三天精心打磨的客服机器人提示词&#xff0c;在周末更新后突然"失效"了。机器人不再能够准确识别用户意图&#xff0…

Centos Ubuntu RedOS系统类型下查看系统信息

文章目录 一、项目背景二、页面三、说明四、代码1.SysInfo2.EmsSysConfig3.HostInformationController4.HostInfo 一、项目背景 公司项目想展示当前部署系统的&#xff1a;操作系统&#xff0c;软件版本、IP、主机名。 二、页面 三、说明 说明点1&#xff1a;查询系统类型及…

阿里云自动备份网站,阿里云自动备份网站的方法

阿里云提供了多种自动备份网站的方法&#xff0c;适用于不同场景和需求&#xff0c;用户可根据自身技术能力和业务要求选择合适的方案。以下是几种主流的自动备份方法及操作要点&#xff1a; 一、基于云服务器ECS的自动快照备份 适用场景&#xff1a;适用于基于ECS部署的网站…

输入输出(python)

open&#xff08;&#xff09;需要和close&#xff08;&#xff09;配合使用 with open () as 不需要用close&#xff08;&#xff09;函数 在python3.0中的一些变动&#xff1a; eval 是编程语言中用于动态执行字符串形式代码的内置函数 &#xff0c;名称源于英文 “evaluate”…

Arduino逻辑控制详细解答,一点自己的想法记录

一、逻辑控制的基础概念与核心语法 1.1 逻辑控制的基本原理 逻辑控制是嵌入式系统中最常见的功能之一,其核心在于通过条件判断(if-else)、循环(for/while)和布尔运算(&&/||)实现对硬件的精确控制。例如,通过按键状态切换LED亮度、根据传感器数据调整电机转速…

字符串的相关方法

1. equals方法的作用 方法介绍 public boolean equals(String s) 比较两个字符串内容是否相同、区分大小写 示例代码 public class StringDemo02 {public static void main(String[] args) {//构造方法的方式得到对象char[] chs {a, b, c};String s1 new String(chs);…

JAVA基础:Collections 工具类实战指南-从排序到线程安全

在 Java 开发中&#xff0c;集合类几乎贯穿每一个项目&#xff0c;而Collections工具类提供了一系列强大的方法&#xff0c;用于操作和增强集合的功能。无论是排序、查找还是线程安全的封装&#xff0c;Collections工具类都是提升代码效率和质量的重要工具。 一、Collections …

ReLU函数及其Python实现

ReLU函数及其Python实现 文章目录 ReLU函数及其Python实现1. ReLU函数定义2. Python实现3. 在深度学习中的应用总结 1. ReLU函数定义 ReLU&#xff08;Rectified Linear Unit&#xff0c;修正线性单元&#xff09;函数是深度学习中常用的激活函数之一。它的定义非常简单&#…