当前位置: 首页 > news >正文

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 gene4

2. 提取每个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 gene3

5. 查看每个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 …...

堆排序算法的原理与应用

堆排序&#xff08;Heap Sort&#xff09;是一种基于堆数据结构的比较排序算法。它具有时间复杂度为 O(n log n) 的优点&#xff0c;并且空间复杂度为 O(1)&#xff0c;是一种不稳定的排序算法。本文将详细介绍堆排序的工作原理、步骤以及它的应用场景。 一、堆排序的基本概念…...

【2024版本】Mac/Windows IDEA安装教程

IDEA 2024版本真的很强大&#xff0c;此外JDK发布了最新稳定版 JDK21 &#xff0c;只有新版本支持JDK 21、JDK22。原来数据库插件不支持redis等一些NoSql的数据库的连接&#xff0c;如果要使用需要自己单独装收费的插件。直接打开idea就很吃内存了&#xff0c;再打开其他一大堆…...

Oracle bbed编译安装及配置

1. 什么是bbed &#xff1f; Oracle Block Brower and EDitor Tool,是一个可以对oracle data block进行查看&#xff0c;编辑修改的内置工具。对于bbed&#xff0c;oracle本身是不提供支持的。 2. 如何编译bbed环境&#xff1f; 10g版本&#xff1a; 1) 编译bbed cd $ORACL…...

MindSearch 部署到Github Codespace 和 Hugging Face Space

conda init后需要重开终端&#xff0c;不然一键复制会导致后续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 是一个项目管理工具&#xff0c;基于 POM&#xff08;Project Object Model&#xff0c;项目对象模型&#xff09;的概念&#xff0c;Maven 可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件 大白话&#xff1a;Maven 是一个项目管理工…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

Mac flutter环境搭建

一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...

深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学

一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件&#xff0c;其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时&#xff0c;价带电子受激发跃迁至导带&#xff0c;形成电子-空穴对&#xff0c;导致材料电导率显著提升。…...

短视频时长预估算法调研

weighted LR o d d s T p 1 − p ( 1 − p ) o d d s T p ( T p o d d s ∗ p ) o d d s p o d d s T o d d s odds \frac{Tp}{1-p} \newline (1-p)odds Tp \newline (Tp odds * p) odds \newline p \frac{odds}{T odds} \newline odds1−pTp​(1−p)oddsTp(Tpodds…...

MongoDB $type 操作符详解

MongoDB $type 操作符详解 引言 MongoDB 是一款流行的开源文档型数据库,它提供了丰富的查询操作符来满足不同的数据查询需求。在 MongoDB 中,$type 操作符是一个非常有用的查询操作符,它允许用户根据文档中字段的类型来查询文档。本文将详细介绍 MongoDB 的 $type 操作符,…...

Mac版Visual Studio Code Copilot 无法使用的解决方法

1 app文件夹删除Visual Studio Code 2 终端里面 输入以下指令&#xff0c;删除各种缓存 rm -fr ~/Library/Preferences/com.microsoft.VSCode.helper.plist rm -fr ~/Library/Preferences/com.microsoft.VSCode.plist rm -fr ~/Library/Caches/com.microsoft.VSCode rm -f…...

低空城市场景下的多无人机任务规划与动态协调!CoordField:无人机任务分配的智能协调场

作者&#xff1a;Tengchao Zhang 1 ^{1} 1 , Yonglin Tian 2 ^{2} 2 , Fei Lin 1 ^{1} 1, Jun Huang 1 ^{1} 1, Patrik P. Sli 3 ^{3} 3, Rui Qin 2 , 4 ^{2,4} 2,4, and Fei-Yue Wang 5 , 1 ^{5,1} 5,1单位&#xff1a; 1 ^{1} 1澳门科技大学创新工程学院工程科学系&#xff0…...