检测基因组选择信号的方法有很多种,其中 XP-CLR 方法是常用的一种。XP-CLR 是陈华老师、Nick Patterson 和 David Reich 在 2010 年发表的方法,全称叫 the cross-population composite likelihood ratio test(跨群体复合似然比检验),是一种是基于选择扫荡(selective sweeep)的似然方法。选择扫荡可以增加群体之间的遗传分化,导致等位基因频率偏离中性条件下的预期值。
XP-CLR 利用了两个群体之间的多基因座等位基因频率差异(multilocus allele frequency differentiation)建立模型,使用布朗运动来模拟中性下的遗传漂移,并使用确定性模型来近似地对附近的单核苷酸多态性(SNPs)进行选择性扫描。
XP-CLR 不仅可以用在人类上,它在动植物驯化研究中也用得较多,比如玉米、大豆、家犬、牛等。
1. 安装
wget https://reich.hms.harvard.edu/sites/reich.hms.harvard.edu/files/inline-files/XPCLR.tar
tar xvf XPCLR.tar
cd XPCLR
cd src
make
make install
2. 输入文件
XP-CLR 的计算需要2个 geno 文件和 1 个.snp (map) 文件。
.geno file
一个群体的基因型数据放在一个 geno 文件中。每一行包含一个 SNP 的 genotype(0或1),每两列代表一个人。数据可以是 phased 的,也可以未 phased。如果是 phased 后的,每一列是一个 haplotype。如果是未 phased 的,同一个人的两个 alleles 可以随意在两列中排放。示例数据 CEU.9 和YRI.9用的是空格间隔符。
比如下面这个,代表了 3 个人的 2 个 SNPs:
1 0 1 1 9 9
1 1 1 0 0 0
.snp file
每一行是一个 SNP的信息,每一列分别是 SNPName chr# GeneticDistance(Morgan) PhysicalDistance(bp) RefAllele TheOtherAllele。示例数据 9.xpclr.b36.snp 用的是 tab 间隔符。
比如:
rs10814410 9 0.000109 36587 C T
rs9408752 9 0.000938 91857 A G
rs2810979 9 0.001323 152695 G A
3. 运行
常用分析命令:
XPCLR -xpclr genofile1 genofile2 mapfile outputFile -w1 0.005 500 10000 chrN -p1 0.95
参数解释:
-xpclr :后面接是两个群体的 .geno 文件(genofile1 和 genofile2)、 .snp 文件(mapfile)、输出文件(outputFile)
-w1:后面接的参数依次为:gWin 是 Morgan 为单位的window size (一般可以设为 0.005);snpWin 代表一个 window 中最大的 SNP 数量;gridSize 是 bp 为单位的两个 grid points 的间距;chrN 是染色体数。
-p:-p1 代表 phased 的数据,-p0 代表未 phased。
corrLevel:加权复合似然比检验中的 criterion,一般可设为0.95。
基本参数说明
xpclr -h
usage: xpclr [-h] --out OUT [--format FORMAT] [--input INPUT]
[--gdistkey GDISTKEY] [--samplesA SAMPLESA] [--samplesB SAMPLESB]
[--rrate RRATE] [--map MAP] [--popA POPA] [--popB POPB] --chr
CHROM [--ld LDCUTOFF] [--phased] [--verbose VERBOSE]
[--maxsnps MAXSNPS] [--minsnps MINSNPS] [--size SIZE]
[--start START] [--stop STOP] [--step STEP]
--out: 输出文件
--format: 输入格式,vcf,hdf5,zarr,txt(对应2种基因型,和一个snp位点文件)
--input:输入vcf,或者hdf5, 选择txt时,不选择,
--samplesA: 样本A名称文件; txt时,不选择
--samplesB:样本B名称文件; txt时,不选择
--map: 基因位点文件
--popA: 样本A基因型文件,txt时使用
--popB: 样本B基因型文件,txt时使用
--chr: 染色体,和输入文件一致即可,每次分析一个
--ld: LD值,进行权重分析
--maxsnps: 一个窗口最大的SNP
--minsnps: 一个窗口最小的SNP
--size: 窗口大小
--step: 步长
其中,群体A为reference,群体B为目标群体。
运行示例文件
## 输入VCF文件
xpclr --out test -Sa samplesA.txt -Sb samplesB.txt \
-I small.vcf.gz -C 3L --ld 0.95 --phased --maxsnps 600 \
--size 200000 --step 20000
### 输入txt文件
xpclr --format txt --out test --map mapfile.snp \
--popA genotype1.geno --popB genotype2.geno \
--chr 1 --ld 0.95 --phased --maxsnps 600 \
--size 200000 --step 20000
4. 结果
结果文件中倒数两列分别为xpclr标准化值,以及xpclr的值
5. 参考
Chen, H., Patterson, N. and Reich, D., 2010. Population differentiation as a test for selective sweeps. Genome research, 20(3), pp.393-402.
https://www.jianshu.com/p/9c827a0be66d
https://www.zhaozhuji.net/254.html/