Loading

使用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

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

posted @ 2020-07-19 18:11  实验盒  阅读(2492)  评论(0编辑  收藏  举报