上一篇文章 《使用XP-CLR檢測基因組中的選擇信號》 介紹了 XP-CLR。XP-CLR 是一種是基於選擇掃盪(selective sweeep)的似然方法。選擇掃盪可以增加群體之間的遺傳分化,導致等位基因頻率偏離中性條件下的預期值。XP-CLR 利用了兩個群體之間的多基因座等位基因頻率差異(multilocus allele frequency differentiation)建立模型,使用布朗運動來模擬中性下的遺傳漂移,並使用確定性模型來近似地對附近的單核苷酸多態性(SNPs)進行選擇性掃描。
原版 XP-CLR 軟件已經多年沒更新,當中存在一些 bugs。實測在計算幾千個樣本的時候,原版軟件會報 Segmentation Fault 的錯誤。牛津大學 的 Nick Hardin 使用 Python 重寫了 XP-CLR的計算工具,並且改正了當中存在的 bug。如果需要使用 XP-CLR 對大量樣本分析,推薦使用這個重構的 Python版。
Python版的倉庫地址為 https://github.com/hardingnj/xpclr。
安裝
可以克隆 GitHub 倉庫再安裝:
git clone https://github.com/hardingnj/xpclr.git
cd xpclr
python setup.py install
也可以使用 bioconda 安裝:
conda install xpclr -c bioconda
兩種安裝方式,推薦使用 bioconda 安裝,不容易出錯。
使用
這個工具支持 hdf5,vcf 和 原版 XP-CLR 格式的文件。
使用也很簡單,這里以原版 XP-CLR 文件(mapfile、popAfile、popBfile三個文件)為例,以 50kb unoverlapping window 去對 phased 數據進行計算:
xpclr --format txt --map mapfile --popA popAfile --popB popBfile --chr 1 --phased --maxsnps 600 --size 50000 --step 50000 --out output
GitHub 上的選項參數說明並不詳細,不過代碼中的注釋寫得比較明確: