花三分钟,让你对XPCLR了如指掌

很多同学做到检测基因组选择信号的时候,通过看文献知道了用xpclr最方便,但是很多人却被它的安装所折服,因为实在是太多error和warning了,不用担心,今天小果带你完整的走一遍它的安装与使用吧

xpclr

官方文档:https://github.com/hardingnj/xpclr

XPCLR的定义

XPCLR(Cross-Population Longitudinal Test for the Composite of Multiple Rare Variants)是一种广泛应用于人口遗传学研究中的统计方法。它基于假设人类基因组上的差异可能是通过选择或漂移进化过程造成的,用于检测不同人群之间的基因组区域中的选择信号。这种方法可以揭示不同族群之间的遗传变异,也可以揭示疾病和健康因素的分子基础。

XPCLR方法的优势在于其精度和高效性,尤其适用于识别大规模基因组数据中群体间的选择差异。具体来说,该方法是基于那些在特定人群中频率极低的罕见变异(无重复的变异)进行检测的。通过这种方式,XPCLR能够快速而准确地分析基因组坐标对数据,检测出是否存在群体间选择的信号,进而推断该基因组区域可能存在的进化历史和适应性。

XPCLR的开发

上面介绍了,XPCLR是一种用于估计完全和部分选择信号的统计方法。它使用隐藏马尔可夫模型和非参数回归来计算从整个基因组中检测到的窗口中的选择强度。XPCLR可以在单一样本和亲代间数据中使用,并且与HapMap数据兼容。

检测基因组选择信号的方法有很多种,其中 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)进行选择性扫描。

XPCLR是以Python编写的开源软件。你可以从以下GitHub链接下载:

https://github.com/hardingnj/xpclr

XPCLR的安装

1、git安装

## lone this git repository into your working directory and cd.
## 克隆下来xpclr
git clone https://github.com/hardingnj/xpclr.git
## 使用python脚本安装
python setup.py install

下载详细说明:

在下载后,你可以按照其中的说明进行安装和使用。XPCLR的使用方法比较复杂,需要输入一些参数以指定计算过程的各个方面。因此,我们建议你在使用前仔细阅读其文档和说明。

2、conda安装

另外,如果你使用Anaconda或Miniconda管理Python软件包(推荐使用)你可以使用以下命令在conda环境中安装XPCLR:

## Also available via conda via the bioconda channel:
## 先创建一个虚拟环境,以防万一,方便试错
conda create -n xpclr python=3
## 使用conda安装xpclr,省心省力
conda install -c bioconda xpclr

3、编译安装

此处下载https://reich.hms.harvard.edu/software

wget https://reich.hms.harvard.edu/sites/reich.hms.harvard.edu/files/inline-files/XPCLR.tar
tar XPCLR.tar

在bin目录下有执行程序,以及3个示例文件

如果 XPCLR 无法在你的系统中运行,则需要自己用 src 的源码编译:

cd src
make
make install

常见报错

python参数格式

No permission to write in the specified directory: {0}”.format(outdir

解决办法:找到对应xpclr文件,加入

fn = args.out
fn = os.path.abspath(args.out)
outdir = os.path.dirname(fn)

python版本报错:

如果用户的机子之前装的python版本是2.X版本,可能会报函数错误

解决办法:

# 用conda创建虚拟环境
conda create -n xpclr python=3
conda activate xpclr

numpy或者panda报错

重新用pip安装即可

pip install numpy
pip install panda

git克隆报错

Git Clone错误:

GnuTLS recv error (-110): The TLS connection was non-properly terminated.

解决方法:

ubuntu系统复制代码即可,centos系统把apt-get install换成yum install即可

apt-get install gnutls-bin
git config –global http.sslVerify false
git config –global http.postBuffer 1048576000

XPCLR的参数介绍

既然XPCLR是一种计算遗传变异特征的统计方法,那么在使用时可以设置许多不同的参数以指定计算过程的一些细节。

usage:

该软件可接受输入格式为:(1) hdf5,通过scikit-allel 将vcf转换成该格式,(2) vcf格式(3) 或者像之前xpclr中的3种类型格式具体可以看https://github.com/hardingnj/xpclr中的xpclr-master/fixture/下的示例文件

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]

以下是一些常用的XPCLR参数及其含义:

  • -h: 显示参数选项和用法信息
  • –version: 显示版本信息
  • -hmm: XPCLR方法使用的隐藏马尔可夫模型的数量,默认为5。
  • -g: 基因座位点信息所在的文件。
  • -p1和-p2: 分别为父本和母本所在的文件。
  • -w: 每个窗口的大小(单位:bp)。
  • -s: 每个窗口的步长(单位:bp)。
  • -a和-b: 分别表示“添加”和“放置”相邻窗口的倍数。例如,在默认情况下,相邻窗口的距离为其大小的1/2。如果指定-a 0.5 -b 0.5,则相邻窗口的距离将始终为窗口大小的一半。
  • -M和-N: 分别表示隐藏马尔可夫模型的迭代次数和最大EM迭代次数。
  • -R: 使用多处理方法(具有多个CPU的计算机)进行计算。

这仅是一些常用的XPCLR参数。有关更详细的参数信息,可以查看XPCLR软件包的文档或使用-h命令选项来获取更多信息。

XPCLR运行示例

## 输入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

结果

结果文件中倒数两列分别为xpclr标准化值,以及xpclr的值,每一列分别代表 chr# grid# #ofSNPs_in_window physical_pos genetic_pos XPCLR_score max_s,XPCLR_score 是算出的 XP-CLR 分数。

更多学习资源请大家移步小师妹专属云生信平台(云生信 – 学生物信息学 (biocloudservice.com))搜索更多资源哦!