专栏首页实验盒使用XP-CLR检测基因组中的选择信号

使用XP-CLR检测基因组中的选择信号

检测基因组选择信号的方法有很多种,其中 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

解压后有 binsrc 两个文件夹以及一个 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.9YRI.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 snpWin gridSize chrN -p corrLevel

参数解释:-xpclr :后面接是两个群体的 .geno 文件(genofile1 和 genofile2)、 .snp 文件(mapfile)、输出文件(outputFile)-w1:后面接的参数依次为:snpWin 是 Morgan 为单位的window size (一般可以设为 0.005);gridSize 代表一个 window 中最大的 SNP 数量;gridSize 是 bp 为单位的两个 grid points 的间距;chrN 是染色体数。-p-p0 代表 phased 的数据,-p1 代表未 phased。corrLevel:加权复合似然比检验中的 criterion,一般可设为0.95。

运行示例数据,示例两个群体的 9号染色体的 phased 数据:

./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.

本文分享自微信公众号 - 实验盒(gh_8a85afc0b064),作者:实验盒

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用Python版XP-CLR检测基因组中的选择信号

    上一篇文章 《使用XP-CLR检测基因组中的选择信号》 介绍了 XP-CLR。XP-CLR 是一种是基于选择扫荡(selective sweeep)的似然方法。...

    实验盒
  • 使用Hapbin基于EHH、iHS、XP-EHH方法检测基因组中的选择信号

    EHH(Extended Haplotype Homozygosity)、iHS(Integrated Haplotype Score) 和 XP-EHH(Cr...

    实验盒
  • 部署Microsoft .NET Framework 3.0[翻译]

    une2006 适用 于 Microsoft .NET Framework 3.0版(以前叫做WinFX) Microsoft .NET Framework...

    张善友
  • 你的C#代码是怎么跑起来的(一)

    写了那么多C#代码,大家有没有想过自己写的代码编译后的可执行文件内部是什么样子,是怎样在系统上运行的? 编译成exe,然后双击exe文件运行,这中间到底发生了些...

    用户1147588
  • JavaScript中的浏览器检测和DOM基础

    由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤。虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能;...

    魏晓蕾
  • 数据分析36计 :Uber的 A/B 实验平台搭建

    实验是Uber如何改善客户体验的核心。Uber将多种实验方法应用于各种用例,例如测试一项新功能以增强我们的应用程序设计。Uber的实验平台(XP)在此过程中扮...

    数据森麟
  • .NET6 平台系列2 .NET Framework框架详解

      .NET Framework 是 Windows 的托管执行环境,可为其运行的应用提供各种服务。 它包括两个主要组件:公共语言运行时 (CLR),它是处理运...

    张传宁IT讲堂
  • 深入浅出事件流处理NEsper(二)

    NEsper使用的事件类型来描述事件的类型信息。你的应用在启动时可能预先配置定义事件类型,或者在运行时通过API或EPL语法动态的增加事件类型。 EPL中的cr...

    张善友
  • 原 What Every Dev need

    魂祭心
  • ​monosys as 1ddlang语言选型+1ddcodebase实践选型绿色monodevelope集成常见多语言

    本文关键字:.net上 都有什么语言,最后一个支持xp的mono,绿色版monodevelop,绿色xamrin studio,mingwsys vs mono...

    minlearn
  • 《深入理解计算机系统》(CSAPP)读书笔记 —— 第五章 优化程序性能

      2.编写出编译器能够有效优化以转换成高效可执行代码的源代码(例如,在C语言中,指针运算和强制类型转换使得编译器很难对它进行优化)。

    嵌入式与Linux那些事
  • CLR和.Net对象生存周期

    标签:GC .Net C# CLR 前言 对象的生存周期和垃圾回收一直是容易被我们忽略的知识点,因为我们现在高级语言编程平台太“智能”了,自动的异常处理,内存管...

    潘成涛
  • CLR和.Net对象生存周期

    潘成涛
  • 《CLR via C#》Part1之Chapter3 共享程序集和强命名程序集(二)

    CLR支持两种程序集:弱命名程序集(weakly named assembly)和强命名程序集(strongly named assembly).

    Isaac Zhang
  • MSSQL横向移动

    使用发现的凭证在环境中横向移动、在时间受限的操作过程中,快速可靠地使用一组新获得的凭据的能力至关重要。这篇博客文章介绍了如何通过MSSQL CLR自动执行横向...

    Khan安全团队
  • Windows常用命令一览表

    描述:CMD是command的缩写.即命令行 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全...

    WeiyiGeek
  • 章节 1.3 极限编程 – 灵活,可靠的软件 使用设计模式和敏捷开发

    首先一个敏捷方法是极限编程,或者简写为XP。在千禧年之初得到了很多的关注。XP倡导的许多核心方法在本书中都有所展示且是很好的敏捷方法的代表。 1.3.1质量和范...

    麦克-堂
  • windows XP cmd命令大全

    它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络...

    cwl_java
  • .NET6 平台系列3 .NET CLR 详解

      运行时(Runtime Environment,简称Runtime ),是指那些支持在特定的平台上,用于运行特定编程语言编写的软件的库和程序集,它一般要处理...

    张传宁IT讲堂

扫码关注云+社区

领取腾讯云代金券