檢測基因組選擇信號的方法有很多種,其中 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 不僅可以用在人類上,它在動植物馴化研究中也用得較多,比如玉米、大豆、家犬、牛等。
安裝
XP-CLR的下載地址可以在 https://reich.hms.harvard.edu/software 找到。
wget https://reich.hms.harvard.edu/sites/reich.hms.harvard.edu/files/inline-files/XPCLR.tar
tar xvf XPCLR.tar
解壓后有 bin
和 src
兩個文件夾以及一個 README 文檔。'bin' 中的 XPCLR
是程序可執行文件,剩下的三個是示例數據。
如果 XPCLR
無法在你的系統中運行,則需要自己用 src
的源碼編譯:
cd src
make
make install"
輸入數據
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
運行
分析命令:
XPCLR -xpclr genofile1 genofile2 mapfile outputFile -w1 gWin snpWin gridSize chrN -p corrLevel
參數解釋:
-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。
運行示例數據,示例兩個群體的 9號染色體的 unphased 數據:
./XPCLR -xpclr CEU.9 YRI.9 9.xpclr.b36.snp xpclr.9 -w1 0.005 200 2000 1 -p0 0.95
得到的結果文件中,每一列分別代表 chr# grid# #ofSNPs_in_window physical_pos genetic_pos XPCLR_score max_s
,XPCLR_score 是算出的 XP-CLR 分數。
Python版
原版 XP-CLR 已經多年沒更新。Big Data Institute, University of Oxford 的 Nick Hardin 使用 Python 重寫了 XP-CLR的計算工具,並且改正了當中存在的小 bug。倉庫地址為 https://github.com/hardingnj/xpclr。可以克隆 GitHub 參考后使用 python setup.py install
安裝,也可以直接在 bioconda 用conda install xpclr -c bioconda
安裝。
參考
Chen, H., Patterson, N. and Reich, D., 2010. Population differentiation as a test for selective sweeps. Genome research, 20(3), pp.393-402.