liftOver 不同版本基因组文件相互转化

大家好,我是邓飞。前一段时间有小伙伴在星球提问:想将不同版本的SNP数据合并,不想重新call snp,想把绵羊的V2和V4版本的数据合并,具体来说,是V2转为V4然后与V4合并。


我建议用liftOver软件进行处理,并许诺写篇博客介绍一下。

还有小伙伴想把1.2的参考基因组,变为3.1的,问我如何处理,我还是建议用liftOver,在线网站也可以解决,但是本地编程更快一些。

1. 不同基因组转换对应关系原理

每一次参考基因组的更新,位置信息会有所变化,有些是插入了一些,有些是平移,有些是没有改变。

但是,每一个版本的参考基因组,都有对应的关系,如果我们根据对应的关系,就可以把旧版本的更新到新版本的位置。

应用领域:不同参考基因组call snp的vcf数据,可以通过这种方式转换为同一基因组版本,然后合并。有些芯片设计时是不同的基因组版本,也可以通过这种形式,进行转换,然后合并。

2. liftOver软件下载

网址:http://hgdownload.cse.ucsc.edu/admin/exe/

有苹果系统和Linux系统,这里以Linux系统为例进行介绍。

3. 查找物种的基因组版本

网址:https://hgdownload.soe.ucsc.edu/downloads.html

常见的物种都有:

比如猪的版本有:

  • V11
  • V10
  • V9


鸡的有:

  • V6
  • V5
  • V4

牛的有:

  • V9,V8,V7

人的有:

  • hg38
  • hg19
  • mm39
  • mm10

4. 下载不同版本的liftOver数据文件

比如,这里以鸡为例子,进入网站:https://hgdownload.soe.ucsc.edu/goldenPath/galGal6/liftOver/

这里有V6变为V5,V6变为V4:,我们想把V6变为V5,可以下载:


当然,也可以V5变为V6,V4变为V6,只需要下载对应的chain文件即可:


注意,下载的gz文件,不要解压缩。保持压缩状态

5. 整理位置信息

我们以plink数据为例,我们想把v5版的map变为v6版的map,首先将map数据变为bed的格式:

将位置信息整理为bed文件,可以根据map进行整理,染色体,开始位置,结束位置,没有行头。

只接受BED格式文件,BED格式文件只定义前三列:chr start end,无表头
注:end不等于start(如果是单位点的话,建议所有end = start+1)

转换代码:

sed 's/\s\+/ /g' new_v3.map >t1.map
awk '{print "chr"$1,$4,$4+1}' t1.map >tt.bed

6. 运行liftOver命令行转换

liftOver的语法为:

liftOver <输入文件> <chain文件> <输出文件> <unmapped文件>

示例代码:

将bed的V6版本,变为V5版本:

liftOver tt.bed galGal6ToGalGal5.over.chain.gz re_map.bed re_un_map.bed
  • 第一个参数,tt.bed,就是bed文件,根据map生成的bed文件
  • 第二个参数,是根据liftOver网站,下载的压缩文件,是对应关系,网址:https://hgdownload.soe.ucsc.edu/goldenPath/galGal5/liftOver/
  • 第三个参数,是输出的结果文件
  • 第四个参数,是没有匹配的结果文件

结果会输出成功转换的位点,和没有转换的位点。

为了方便我们后续使用,可以先运行一遍代码,将没有转换成功的位点删掉,然后再转换,这样就是一一对应的了。

有任何使用的问题,可以到关注公众号答疑。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ue4 安装教程

ue4 安装入门教程 UE4 的全名是 Unreal Engine 4&#xff0c;中文译为“虚幻引擎4”。UE4 是一款由 Epic Games 公司开发的开源、商业收费、学习免费的游戏引擎。 基于 UE4 开发的大作无数&#xff0c;除《虚幻竞技场3》外&#xff0c;还包括《战争机器》《质量效应》《生化奇…

吃鸡 反作弊服务器未运行,绝地求生反作弊服务(BE)修复工具

绝地求生反作弊服务be未正常运行怎么解决&#xff1f;绝地求生反作弊服务(BE)修复工具是一款修复绝地求生游戏中出现“反作弊服务(BE) 为正常运行”问题的工具&#xff0c;支持一键修复游戏&#xff0c;让你游戏运行无忧&#xff01; 绝地求生反作弊服务be未正常运行解决方法 绝…

绝地求生按键指南-教程

绝地求生按键指南 1.基础按键普通战斗战斗详情 载具载具详情 游泳地图用户界面 2.进阶操作 1.基础按键 按键 作用 鼠标左键 射击 鼠标右键 瞄准 R 装弹 G 切换武器 左ctrl 步行 物品栏按ctrl键 拆分物品数量 左shift 冲刺&#xff0c;开车加速&#xff0c;如果饮料喝的多&…

计算机低配配置单,吃鸡需要什么配置|电脑玩绝地求生最低配置多少

吃鸡游戏要求什么样的配置&#xff1f;pubg绝地求生现在特别火&#xff0c;对电脑硬件要求特别高&#xff0c;内存就需要6G或8G&#xff0c;很多玩家忍痛剁手&#xff0c;因为现在内存价格飙升&#xff0c;那么绝地求生大逃杀要求怎样的硬件配置呢&#xff1f;下面小编跟大家介…

绝地求生测试服画质优化软件,绝地求生Reshade安装教程-PUBG画质优化插件使用教程...

Reshade是一款经《绝地求生大逃杀》官方允许使用的游戏画质增强插件&#xff0c;由于PUBG本身的游戏画面灰暗且亮度低&#xff0c;很难发现阴影或草丛下的敌人&#xff0c;而使用Reshade则能拥有更高的色彩明度&#xff0c;使画面更清晰&#xff0c;让你更容易发现敌人&#xf…

吃鸡更新找不到服务器,绝地求生PUBGExperimentalServer为什么找不到_绝地求生PUBGExperimentalServer安装方法_玩游戏网...

《绝地求生》自救型除颤器位置大全 《绝地求生》自救型除颤器在哪找&#xff1f;具体的位置介绍小编已经为大家准备好了。那么接下来&#xff0c;就跟随玩游戏网的小编一起继续往下看&#xff0c;感兴趣的小伙伴一定不要错过哦&#xff01;自救型除颤器位置大全与复活赛类似&am…

Ethercat学习-从站FOE固件更新(QT上位机)

文章目录 简介1、源码简介1、ec_FOEread2、ec_FOEwrite3、ec_FOEdefinehook 2、程序思路3、修改实现1、ecx_FOEwrite_gxf2、ecx_FOEread_gxf 4、其他5、结果6、源码连接 简介 FOE协议与下位机程序实现过程之前文章有提到&#xff0c;这里不做介绍了。这里主要介绍1、QT上位机通…

Feign的另一种玩法-动态Feign

1.Feign传统方式的不足 ①.在微服务架构中,当我们使用Feign传统方式进行服务调用的时候,需要在每个服务消费者中添加FeignClient接口,编写对应的方法,而且当服务生产者Handler新增方法之后,服务消费者也要在FeignClient接口中添加方法,这样的话,会有些累赘. 那么能不能在调用服…

Feign总结

目录 Feign简介 Feign能干什么 Feign与Ribbon区别 Feign和Open Feign的区别 Feign和Dubbo的区别 Feign的使用 Feign的调用方式 Feign中使用熔断器 Feign的核心原理 Feign远程调用的基本流程 Feign 远程调用的重要组件 远程接口的本地JDK Proxy代理实例 调用处理器…

feign漫谈

feign的简单使用。 文章目录 一. 什么是feign二. 准备工作三. 如何使用3.1 定义pom文件3.2 定义配置文件及启动类注解3.3 定义feign接口 四. 部署 一. 什么是feign 远程调用框架 二. 准备工作 需要nacos环境&#xff1a; 涉及到feign调用&#xff0c;就没法抛开注册中心&am…

Feign简介

Feign feign是声明式的web service客户端&#xff0c;它让微服务之间的调用变得更简单了&#xff0c;类似controller调用service。Spring Cloud集成了Ribbon和Eureka&#xff0c;可在使用Feign时提供负载均衡的http客户端。 Feign是什么? Feign是一个声明式WebService客户端…

feign的使用入门篇

Feign简介 Feign是一个声明式的Web服务客户端&#xff0c;使用Feign可使得Web服务客户端的写入更加方便。 它具有可插拔注释支持&#xff0c;包括Feign注解和JAX-RS注解、Feign还支持可插拔编码器和解码器、Spring Cloud增加了对Spring MVC注释的支持&#xff0c;并HttpMessag…

Feign的简介及使用

一、Feign简介 Feign是一个声明式的http客户端&#xff0c;官方地址:https://github.com/OpenFeign/feign 其作用就是帮助我们优雅的实现http请求的发送&#xff0c;解决代码可读性差&#xff0c;编程体验不统一、参数复杂URL难以维护的问题。 二、使用Feign的步骤 1.引入依赖…

架构愿景: 构建良好软件的关键

在产品开发生命周期的各个阶段&#xff0c;牢记架构愿景&#xff0c;始终坚持每个决策都符合愿景原则&#xff0c;是避免架构腐化的唯一方式。原文: Architecture Vision — A critical ingredient in building well-maintained software 上一篇文章《软件架构: 一切皆有代价》…

Feign原理

是一个HTTP请求调用轻量级框架&#xff0c;可以以Java接口注解的方式调用HTTP请求&#xff0c;而不用像Java中通过封装HTTP请求报文的方式直接调用。 Feign解决了什么问题 在服务调用的场景中&#xff0c;我们经常调用基于HTTP协议的服务&#xff0c;而我们经常使用到的框架可…

Feign是什么?

Feign能干什么&#xff1f; Feign旨在是编写Java Http客户端变得更加容易。 之前使用RibbonRestTemplate时&#xff0c;利用RESTTemplate请求的封装处理&#xff0c;形成了一套模板化的调用方法。但是在实际开发中&#xff0c;有偶遇对于服务依赖的调用可能不止一处&#xff…

Feign 与 OpenFeign

1. 什么是Feign Netflix Feign 是 Netflix 公司发布的一种实现负载均衡和服务调用的开源组件。Spring Cloud 将其与 Netflix 中的其他开源服务组件&#xff08;例如 Eureka、Ribbon 以及 Hystrix 等&#xff09;一起整合进 Spring Cloud Netflix 模块中&#xff0c;整合后全称为…

Feign的工作原理

文章目录 Feign的简单介绍Feign的工作原理1.创建远程接口的本地代理实例2.封装Request对象并进行编码3.feign.Client发送请求并对获取结果进行解码 总结 Feign的简单介绍 Feign组件主要用于微服务项目中&#xff0c;用来简化服务之间的远程调用&#xff0c;相信大家对他的使用…

OpenFeign和feign使用简介

1.OpenFeign简介 Feign是一个声明式的Web Service客户端。它的出现使开发Web Service客户端变得很简单。使用Feign只需要创建一个接口加上对应的注解&#xff0c;比如&#xff1a;FeignClient注解。Feign有可插拔的注解&#xff0c;包括Feign注解和JAX-RS注解。 Feign也支持编码…

Feign详解与实例

基本介绍 Feign是一种负载均衡的HTTP客户端, 使用Feign调用API就像调用本地方法一样&#xff0c;从避免了调用目标微服务时&#xff0c;需要不断的解析/封装json 数据的繁琐。Feign集成了Ribbon。Ribboneureka是面向微服务编程&#xff0c;而Feign是面向接口编程。 Fegin是一个…