专栏首页实验盒使用Hapbin基于EHH、iHS、XP-EHH方法检测基因组中的选择信号

使用Hapbin基于EHH、iHS、XP-EHH方法检测基因组中的选择信号

EHH(Extended Haplotype Homozygosity)、iHS(Integrated Haplotype Score) 和 XP-EHH(Cross Population Extended Haplotype Homozogysity)是常用的基于 haplotype 分析基因组受选择情况的方法。其中,EHH 和 iHS 是检测一个群体中的选择信号,而 XP-EHH 是在两个群体中进行比较。

Hapbin 是一个 C++ 写的工具,可以计算 EHH、iHS 和 XP-EHH。类似工具还有 selscan、rehh 等,而 hapbin 的操作更为方便,速度也非常快。下面简单介绍一下它的使用方法。

编译

Hapbin 需要从源码编译成可执行文件:

git clone https://github.com/evotools/hapbin.git
cd hapbin/build/
cmake ../src/
make

编译成功后,把 build 目录加在环境变量配置文件 .bash_profile.bashrc 中即可:

export PATH=/shiyanhe/softwares/hapbin/build:$PATH

编译过程依赖 GCC 4.7 以上版本,如果上面的编译失败,需要安装新版本的 GCC 再重新编译:

# 在 Ubuntu 上安装 GCC
 sudo apt-get update
 sudo apt-get install git cmake libcr-dev mpich libmpich-dev
 
# 在 CentOS 7 上安装 GCC
 sudo yum install cmake git gcc-c++

输入文件

需要两类输入文件:

「hap files (--hap):」 IMPUTE2 的 HAP / LEGEND / SAMPLE 格式中的 hap 文件,一行代表一个SNP,一列代表一个haplotype。如果是 haps haplotype 文件,可以用 SHAPEIT 转换格式:shapeit -convert --input-haps gwas.phased --output-ref gwas.phased.hap gwas.phased.leg gwas.phased.sam。如果是 vcf 格式,可以用 vcftools 转换格式:vcftools --gzvcf genotypes.vcf.gz --IMPUTE

「map files (--map):」 跟 plink 的 ped/map 格式的 map 文件一样,顺序需要与 hap 文件的 SNP 顺序对应。

注意,不同染色体的 hap 和 map 文件需要分开。另外,如果是在两个群体中计算 XP-EHH,hap 文件需要按群体分开来存放。

运行

计算 EHH:

ehhbin --hap [.hap file] --map [.map file] --locus [locus] --out [output prefix]

计算 iHS:

ihsbin --hap [.hap file] --map [.map file] --out [output prefix]

计算 XP-EHH:

xpehhbin --hapA [Population A .hap file]] --hapB [Population B .hap file]] --map [.map file] --out [output prefix] 

例子,计算 A 和 B 两个群体 1 号染色体的 XP-EHH:

xpehhbin --hapA popA_chr1.hap --hapB popB_chr1.hap --map chr1.map --out results_chr1

计算时也是分染色体进行。如果要跑全基因组,写个循环脚本批量跑即可。

本文分享自微信公众号 - 实验盒(gh_8a85afc0b064),作者:实验盒

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用XP-CLR检测基因组中的选择信号

    检测基因组选择信号的方法有很多种,其中 XP-CLR 方法是常用的一种。XP-CLR 是陈华老师、Nick Patterson 和 David Reich 在 ...

    实验盒
  • 使用Python版XP-CLR检测基因组中的选择信号

    上一篇文章 《使用XP-CLR检测基因组中的选择信号》 介绍了 XP-CLR。XP-CLR 是一种是基于选择扫荡(selective sweeep)的似然方法。...

    实验盒
  • 英特尔白盒uCPE能够迎合服务提供商的口味吗?

    SDNLAB
  • 数据分析36计 :Uber的 A/B 实验平台搭建

    实验是Uber如何改善客户体验的核心。Uber将多种实验方法应用于各种用例,例如测试一项新功能以增强我们的应用程序设计。Uber的实验平台(XP)在此过程中扮...

    数据森麟
  • 《深入理解计算机系统》(CSAPP)读书笔记 —— 第五章 优化程序性能

      2.编写出编译器能够有效优化以转换成高效可执行代码的源代码(例如,在C语言中,指针运算和强制类型转换使得编译器很难对它进行优化)。

    嵌入式与Linux那些事
  • 章节 1.3 极限编程 – 灵活,可靠的软件 使用设计模式和敏捷开发

    首先一个敏捷方法是极限编程,或者简写为XP。在千禧年之初得到了很多的关注。XP倡导的许多核心方法在本书中都有所展示且是很好的敏捷方法的代表。 1.3.1质量和范...

    麦克-堂
  • Windows TCP: TCP接收窗口自动调谐(Auto-Tuning)原理介绍

    TCP连接上的吞吐量可以通过发送和接收应用程序、TCP的发送和接收实现以及TCP对等体之间的传输路径来限制。在本文我将介绍TCP接收窗口及其对TCP吞吐量的影响...

    云语科技
  • windows XP cmd命令大全

    它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络...

    cwl_java
  • 电脑入门必懂的常识(二)

    在Windows XP中,我们可以通过“事件查看器”的事件日志服务查看计算机的开、关机时间。因为事件日志服务会随计算机一起启动和关闭,并在事件日志中留下记录。

    RunWsh
  • 敏捷开发:5种主流开发方法介绍

    极限编程(ExtremeProgramming,简称XP)是由KentBeck在1996年提出的。极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常...

    DevOps时代
  • 访问80端口的网页报错 This page can‘t be displayed 解决过程小记

    访问80端口的网页报错 This page can’t be displayed. Contact support fo additional informat...

    范一刀
  • 怎样制作GHOST系统盘

    制作Windows XP万能克隆镜像 战前分析:对于Windows XP,制作万能克隆时的一个重要问题就是系统激活,因为Windows XP为了防止盗版,采取...

    脑洞的蜂蜜
  • Windows 7与Windows XP双系统安装方法汇总

    用户1127987
  • Windows常用命令一览表

    描述:CMD是command的缩写.即命令行 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全...

    WeiyiGeek
  • Oracle:Enterprise Manager 无法连接到数据库实例。下面列出了组件的状态。 以及 Oracle11g OracleDBConsoleorcl服务无法启动问题

      我们 主机 通过 浏览器 访问装在 虚拟机上的 Oracle的企业管理器 时,出现如下图问题:

    黑泽君
  • 人工智能如何实现可靠的视觉追踪 |IJCAI2016论文详解

    导读:2016国际人工智能联合会议(IJCAI2016)于7月9日至7月15日举行,今年会议聚焦于人类意识的人工智能,本文是IJCAI2016接收论文。除了论文...

    AI科技评论
  • windows系统基础知识篇,这些你都会用吗?

    http://it.rising.com.cn/service/technology/RegClean_download.htm

    知识与交流
  • 关于Windows XP SP3 的 F

    根据 Microsoft 的消息,将在 2008 年第二季度发布的“Windows XP Service Pack 3”将是 Windows XP 的最后一个服...

    py3study
  • 极限编程:价值观、原则和实践

    在软件工程这样一个快节奏的环境中,传统的项目管理方法不再可行。这意味着IT从业者必须找到新的方法来处理经常变化的开发任务。

    敏捷开发

扫码关注云+社区

领取腾讯云代金券