美文网首页遗传学重点关注
rehh:单倍体/单倍型群体间选择信号分析(基于selectiv

rehh:单倍体/单倍型群体间选择信号分析(基于selectiv

作者: 杨康chin | 来源:发表于2022-01-21 20:57 被阅读0次

本文介绍的方法都是基于Extended Haplotype Homozygosity (EHH)概念,由SABETI 等人在 2002年提出。简单来说,根据selective sweep的概念,一个位点周围的位点如果多样性越低,就越有可能是因为selective sweep留下的选择印迹。

EEH计算举例:

一个简单的计算。令红色一行为focus的core SNP,那么向下数三个位点,计算它们的多样性(类似于交叉熵的东西,离散指数,香农商,whatever),显然多样性越低,这个core是受选择位点的可能性越高
参考:https://static.epcc.ed.ac.uk/dissertations/hpc-msc/2013-2014/Hapbin:%20An%20Efficient%20Method%20for%20Calculating%20EHH%20and%20iHS%20of%20Genetic%20Datasets.pdf

这里有三篇介绍selective sweep的文章,讲得很好:
https://www.icode9.com/content-4-803828.html
https://www.plob.org/article/2345.html
https://www.jianshu.com/p/82719840ec4a

rehh tutorial:
https://cran.r-project.org/web/packages/rehh/vignettes/rehh.html#computing-ihs-rsb-and-xp-ehh

有很多衍生的统计量:EHH(Extended Haplotype Homozygosity)、iHS(Integrated Haplotype Score) 、XP-EHH(Cross Population Extended Haplotype Homozogysity)、RSB

rehh、selscan和hapbin都是基于EHH及其衍生概念的
Hapbin可以看这篇(但是hapbin无法处理缺失位点,不建议用):
使用Hapbin基于EHH、iHS、XP-EHH方法检测基因组中的选择信号

前提:染色体要有重组!Y和W染色体不能用这种方法

本文只写两个群体之间的单倍型选择信号检测,单个群体内部的不写,但是rehh也可以做,很方便

rehh

rehh是一个R包

1. 安装:

BiocManager::install("rehh")

2. 准备输入文件

2.1 .hap文件
群体1.hap 群体2.hap

第一列个体名,后面每一列一个SNP。跟reference一样的就是0,第一种不一样的就是1,第二种不一样的就是2,以此类推。比如ref是G,那假设SNPs中还有T和A两个等位基因,就分别标为1和2。缺失值可以用[NA]或者[.]。每个群体一个文件。

2.1 .map文件
.map

第一列SNP名称,随便起。第二列染色体名称。第三列染色体上的位点。第四列是major allele,一般就是0。第五列是minor allele,有一个1就填1,有1和2就填1,2。如图。两个群体用同一个文件就行。

注意,如果有好几条染色体,每条染色体要分别产生这两个文件,每条染色体分别跑。

3. 运行rehh
library(rehh)
####输入 MN 群体的数据
hh_map1 <- data2haplohh(hap_file = "Pop1.chr18.MN.hap",
                       map_file = "Pop1.chr18.map",
                       allele_coding = "01",
                       verbose = FALSE)

####输入 QH 群体的数据
hh_map2 <- data2haplohh(hap_file = "Pop2.chr18.QH.hap",
                       map_file = "Pop2.chr18.map",
                       allele_coding = "01",
                       verbose = FALSE)

### genome-wide 的 scan
res.scan1 <- scan_hh(hh_map1, discard_integration_at_border = FALSE)
res.scan2 <- scan_hh(hh_map2, discard_integration_at_border = FALSE)

#### 这里同时跑了 xpehh和rsb两种方法,但其实差不多,后者对core标准化,而前者不
res.xpehh <- ies2xpehh(res.scan1, res.scan2, "MN", "QH")
res.rsb<-ines2rsb(res.scan1, res.scan2, "MN", "QH")

### 把结果输入到文件
write.table(res.xpehh,"Pop1.chr18.xpehh.txt",quote=F,row.names=F)
write.table(res.rsb,"Pop2.chr18.rsb.txt",quote=F,row.names=F)


pdf("Pop.MN_QH.plot.pdf")
distribplot(res.xpehh$XPEHH_MN_QH)
title(sub = "xpehh_chr18")
manhattanplot(res.xpehh,pval=T)
### 画曼哈顿图
#### 这里选择了输出-log(p)值,如果不加pval参数,输出的就是统计量
title(sub = "xpehh_chr18")
distribplot(res.rsb$RSB_MN_QH)
title(sub = "rsb_chr18")
manhattanplot(res.rsb,pval=T)
title(sub = "rsb_chr18")
dev.off()

4. 结果

注意结果的Pvalue是-log10(p-value) image.png image.png

相关文章

  • rehh:单倍体/单倍型群体间选择信号分析(基于selectiv

    本文介绍的方法都是基于Extended Haplotype Homozygosity (EHH)概念,由SABET...

  • 关于单倍型和Phasing

    单倍型,即单倍体基因型,概念很好理解。 单倍型分型的过程就称之Phasing,定相或基因分型。 Phasing的意...

  • 【转】单倍型基因组组装方法

    1. 什么是单倍型? 同源染色体:同源染色体,一个来自母本,一个来自于父本。 单倍型:单倍体基因型的简称。遗传学上...

  • rehh包的使用

    Rehh包的使用 一、数据的输入 数据的输入格式有5种 1.标准单倍型格式,参考文件bta12_cgu.hap,使...

  • 基于Vcf文件进行基因单倍型分析

    单倍型,是单倍体[https://baike.baidu.com/item/%E5%8D%95%E5%80%8D%...

  • 基于LD检测自然选择

    诶瑞巴蒂好久没更新了,今记录一下基于LD的正选择分析方法。原理呢大概就是: 基于选择性扫描的模型,即在单倍型上出现...

  • 群体选择信号分析

    群体进化与选择信号:●生活在世界不同区域的生物群体在历史长河中经历千万年的自然选择、人工驯化、迁徙、遗传漂变等事件...

  • 单体型分析

    单倍型分析理论上来说,单倍型的类别是2N,但由于LD的存在,会使得单倍型的类别远远的小于2N,但是如果当N的数目很...

  • HaploView使用-OutofMemory

    之前给大家介绍过如何使用haploview软件进行单倍型分析及LD单倍型图形数据的导出。该软件在运行后可以输出位点...

  • Prakapenka2020 单倍型GP的计算程序

    GVCHAP:使用单倍型和SNP标记进行基因组预测和方差成分估计的计算管道 单倍型预测模型为提高基因组选择的准确性...

网友评论

    本文标题:rehh:单倍体/单倍型群体间选择信号分析(基于selectiv

    本文链接:https://www.haomeiwen.com/subject/fseehrtx.html