GWAS分析中显著位点如何注释基因:excel???
大家好,我是邓飞。
今天星球的小伙伴问了一个问题:
我现在在做GWAS分析,现在已经找到性状关联的SNP位点,下一步我如何根据position 找到基因呢?
关于基因注释,之前写过一些博客,可以用到的软件有:ANNOVAR、Bedtools,今天回答了这个问题,感觉excel也可以做基因注释了。
下面,对我的回答进行进一步的阐述。
1. GWAS分析
GWAS分析,之前写过一个Cookbook,包括方方面面的内容了,如果是小白,推荐一遍看配套的视频,一遍敲代码学习:
录制了配套的视频教程,前面的数据下载、软件安装、环境配置等相关视频免费观看,后面的付费观看。对于想要快速学习的小白,视频+代码+数据+实操+技术支持,是比较快的一条路。

(扫码查看视频教程)
2,显著SNP位点
做完GWAS分析后,确定阈值,然后小于阈值的位点都是显著性位点,显著性位点最重要的两个信息:
-  染色体 
-  物理位置 
有时候还包括snp的名称,但是不是必填项,只需要上面两个信息,就可以知道显著snp在基因组上的位置了。
3,配套基因组的gff文件
一般,有基因组数据的物种,有基因组的版本,还有配套的gff或者gff3格式的文件,文件的内容里面有:
-  染色体 
-  基因起始位置 
-  基因终止位置 
-  基因功能描述 
-  …… 
类似:
4,计算LD衰减距离
为何要计算LD衰减距离呢,是为了知道显著snp代表的区间,因为存在连锁,所以衰减距离就是确定snp所代表的有效区间,可以代表这个有效区间的变异。虽然snp不在基因上,但是如果snp的衰减距离区间内(比如上下50kb)包含基因,那也可以说明这个基因是显著影响性状的。
所以,计算了LD衰减距离,显著性snp的信息,就变成了:
-  染色体 
-  有效区间起始位置 
-  有效区间终止位置 
5,用excel注释显著性snp
我们把gff文件,简化一下,整理成excel格式:

怎么用excel表格呢,可以手动查看,也可以编写一个函数。
话说,上面的显著性位点,一共就6个SNP,手动搞就行了。
第一个snp,区间是1染色体,5-15,这个区间有:gene1
 第二个snp,区间是1染色体,10-20,这个区间有:gene2,不是完全包括,但是有交集,也算是
 第三个snp,没有基因
 第四个snp,gene4
 第五个snp:没有基因
 第六个snp:没有基因
所以这些snp,一共注释的基因有:gene1, gene2, gene4
6,我有1000个显著性位点,谢谢
如果位点很多,这就需要用到软件了:bedttols
「换到基因注释的领域,看一下相关需求:」
-  1,显著性的SNP位点,取上下游50k的位点,作为候选的区间 
-  2,将候选区间有基因的,匹配到SNP的右边 
「处理注意:」
-  1,显著SNP在上下游区间时,可能会有交叉,所以要先合并(merge) 
-  2,匹配基因时,一个SNP区间可能会有多个基因 
1. 数据描述
「SNP区间文件:」
这里,提取显著SNP的区间,提取三列信息:染色体,开始位置,结束位置:
共有6个SNP区间,其中第一个和第二个有重合,第五个和第六个有重合。
 cat snp_infor.ped  chr1 5 15  chr1 10 20  chr1 30 40  chr1 80 90  chr1 110 120「基因区间文件:」
共有5个基因区间文件,分别是:染色体,开始位置,终止位置,基因名称。
 cat gene_infor.ped  chr1 1 14 gene1  chr1 17 19 gene2  chr1 45 82 gene3  chr1 88 93 gene42. 提取每个SNP上面的基因
「需求:」
-  每个SNP一行 
-  如果有基因在其区间,放到右边,如果没有基因,返回空 
-  如果一个SNP区间对应多个基因,写成多行 
代码:
-  intersect,交集 
-  -a,第一个位置信息表 
-  -b,第二个位置信息表 
-  -loj,以第一个为基准,返回结果 
结果可以看到,第二个SNP区间,对应两个基因,写成了两行。第三个SNP区间没有对应基因,用-1表示占位。共返回8行信息。
3. 返回有基因信息的SNP
如果不想要占位符,只想返回有基因的SNP信息,可以命令如下:
bedtools intersect -a snp_infor.ped -b gene_infor.ped  -wa -wb
结果:
$ bedtools intersect -a snp_infor.ped -b gene_infor.ped  -wa -wb  chr1 5 15 chr1 1 14 gene1  chr1 10 20 chr1 1 14 gene1  chr1 10 20 chr1 17 19 gene2  chr1 80 90 chr1 45 82 gene3可以看到,将没有匹配到基因的SNP删除了。
上面的信息中,有些SNP匹配到了多个基因,也就是基因是有重复的。
-  如果我们想看每个SNP匹配的基因情况,可以用上面的结果 
-  如果我们想看一下共有多少无重复的基因匹配,就需要对SNP区间先合并 
4. 合并SNP区间再匹配
合并命令:
bedtools merge -i snp_infor.ped >snp_infor_merge.ped
原始数据:
$ cat snp_infor.ped  chr1 5 15  chr1 10 20  chr1 30 40  chr1 80 90  chr1 110 120合并的结果:
$ cat snp_infor_merge.ped  chr1 5 20  chr1 30 40  chr1 80 90然后和基因的信息进行合并:
$ bedtools intersect -a snp_infor_merge.ped -b gene_infor.ped -wa -wb  chr1 5 20 chr1 1 14 gene1  chr1 5 20 chr1 17 19 gene2  chr1 80 90 chr1 45 82 gene35. 查看每个SNP区间基因的个数
结果可以用2中,统计一下个数,也可以用bedtools的-c参数:
$ bedtools intersect -a snp_infor.ped -b gene_infor.ped -c  chr1 5 15 1  chr1 10 20 2  chr1 30 40 0  chr1 80 90 2  chr1 110 120 0结果可以看到,SNP1有一个基因,SNP2有2个基因,SNP3没有基因……
6. 基因注释的不同玩法
把上面SNP的区间,作为显著性SNP上下游的信息,把基因的信息作为gff基因文件,就可以进行基因注释了!
上面的玩法都可以做。
「注意,将gff格式整理为:染色体,开始位置,结束位置,基因信息;
snp区间整理为:染色体,开始区间,结束区间」
可以实现的功能:
-  每个SNP区间内的基因 
-  每个SNP全进内基因的个数 
-  合并SNP区间内的基因 
-  合并SNP区间内基因的个数 
相关文章:
 
GWAS分析中显著位点如何注释基因:excel???
大家好,我是邓飞。 今天星球的小伙伴问了一个问题: 我现在在做GWAS分析,现在已经找到性状关联的SNP位点,下一步我如何根据position 找到基因呢? 关于基因注释,之前写过一些博客,可以用到的软件…...
深入浅出 CSS 定位:全面解析与实战指南
“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 目录 前言文章有误敬请斧正 不胜感恩!1. CSS 定位概述2. 定位类型详解2.1 static(默认定位)2.2 relative(相对定位)2.3 absolute(绝对定位&am…...
 
HTTPS协议详解:从原理到流程,全面解析安全传输的奥秘
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…...
Android 13.0 系统内存优化之修改dalvik虚拟机的内存参数
1.前言 在13.0的系统rom开发定制中,app应用也是运行在dalvik虚拟机上的,所以对于一些内存低的系统中,在某些大应用会出现耗内存 卡顿情况,这是系统分配的内存不够大,在进行耗内存的操作,就会出现频繁gc等等原因造成不流畅的现象,接下来就分析下 虚拟机分配内存的相关原理…...
 
C# 无边框窗体,加阴影效果、多组件拖动、改变大小等功能完美实现优化版效果体验
一、预览效果 国庆节第一天,祝祖国繁荣昌盛! 1.1 效果图 (WinForm无边框窗体,F11可全屏) 拖动窗体时半透明效果(拖动时参考窗体后面释放位置) 说明:本功能的实现基于网友的原型完善而来,更多代码可以参考他的文章 h...
深入解析 ChatGLM 模型:核心原理、优势与未来应用前景
1. 引言 1.1 ChatGLM 模型概述 ChatGLM 是一类基于自回归语言模型的生成式预训练模型,专门设计用于处理对话系统中的自然语言生成任务。ChatGLM 模型依托于 Transformer 架构,具备高度并行化的计算能力,并能够捕捉长距离的语言依赖关系。在…...
python全栈学习记录(二十二)多态性、封装、绑定方法与非绑定方法
多态性、封装、绑定方法与非绑定方法 文章目录 多态性、封装、绑定方法与非绑定方法一、多态性二、封装三、绑定方法与非绑定方法 一、多态性 多态指的是同一种事物的多种形态,如水:冰、水蒸气、液态水,又如动物:猫、狗、猪。 多…...
用Python制作自己的聊天机器人:从零开始构建智能对话助手
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 近年来,聊天机器人已经成为日常生活中不可或缺的工具,从自动客服到个人助手,聊天机器人在各类应用中广泛存在。如果你想了解如何制作一个自己的聊天机器人,那么这篇文章将带你一步步实现这个目标。我们将使用…...
 
LabVIEW裂纹深度在线监测系统
随着铁路运输技术的快速发展,火车安全问题成为重中之重,尤其是轮面裂纹的检测和管理。裂纹的出现可能导致严重的列车事故,因此,建立可靠的在线监测系统,实时掌握裂纹情况,对保障铁路运输安全至关重要。 La…...
工业物联网的伦理和社会影响
随着科技的飞速发展,工业物联网(IIoT)已经成为现代工业领域的重要组成部分。它通过将各种设备、传感器和系统连接起来,实现了生产过程的智能化、自动化和高效化。然而,在享受工业物联网带来的巨大便利和经济效益的同时…...
 
TCP --- 确认应答机制以及三次握手四次挥手
序言 在前一篇文章中,我们介绍了 UDP协议 (点击查看)👈,该协议给我们的感觉就两个字 — 简单,只是将我们的数据进行简单的添加报头然后发送。当然使用起来虽然简单,但是否能送到目的地,那就要看网络的状态了…...
GPT带我学-设计模式17-装饰器模式
概述 装饰器模式(Decorator Pattern)是一种结构型设计模式,允许你在不改变对象接口的前提下,动态地给对象添加新功能。这个模式通常用于扩展类的功能。 基本结构 组件接口(Component):定义一…...
 
【Redis】如何在 Ubuntu 上安装 Redis 5
🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 本期内容主要介绍如何在 Ubuntu 上安装 Redis5 一些碎碎念: 本来这期内容介绍如何在 Centos 安装 Redis …...
 
房屋水电费记账本:内置的数组数据击按钮不能删除,页面手动添加的可以删除
<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>房租水电费记录</title><script type&qu…...
 
【ubuntu】apt是什么
目录 1.apt简介 2.常用apt指令 2.1安装 2.2更新列表 2.3更新已经安装的软件包 2.4搜索软件包 2.5显示软件包信息 2.6移除软件包 2.7清理无用的安装包 2.8清理无用的依赖项 3.apt和apt-get 3.1区别 3.2 总结 1.apt简介 apt的全称是advanced package …...
堆排序算法的原理与应用
堆排序(Heap Sort)是一种基于堆数据结构的比较排序算法。它具有时间复杂度为 O(n log n) 的优点,并且空间复杂度为 O(1),是一种不稳定的排序算法。本文将详细介绍堆排序的工作原理、步骤以及它的应用场景。 一、堆排序的基本概念…...
 
【2024版本】Mac/Windows IDEA安装教程
IDEA 2024版本真的很强大,此外JDK发布了最新稳定版 JDK21 ,只有新版本支持JDK 21、JDK22。原来数据库插件不支持redis等一些NoSql的数据库的连接,如果要使用需要自己单独装收费的插件。直接打开idea就很吃内存了,再打开其他一大堆…...
 
Oracle bbed编译安装及配置
1. 什么是bbed ? Oracle Block Brower and EDitor Tool,是一个可以对oracle data block进行查看,编辑修改的内置工具。对于bbed,oracle本身是不提供支持的。 2. 如何编译bbed环境? 10g版本: 1) 编译bbed cd $ORACL…...
 
MindSearch 部署到Github Codespace 和 Hugging Face Space
conda init后需要重开终端,不然一键复制会导致后续pip install会安装错环境 还是报错 ImportError: cannot import name AutoRegister from class_registry (/opt/conda/envs/mindsearch/lib/python3.10/site-packages/class_registry/__init__.py)pip install --…...
 
【Maven】依赖管理,Maven仓库,Maven核心功能
Maven 是一个项目管理工具,基于 POM(Project Object Model,项目对象模型)的概念,Maven 可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件 大白话:Maven 是一个项目管理工…...
 
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
 
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
 
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
 
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
 
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
 
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
 
密码学基础——SM4算法
博客主页:christine-rr-CSDN博客 专栏主页:密码学 📌 【今日更新】📌 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 编辑…...
