最近有需求,对WGS测序获得SNP信息进行筛减,可问题是测序个体少,call rate,maf,hwe,等条件过滤后,snp数量还是千万级别,所以后面利用plink工具根据LD信息来滤除大量SNP标记。

工具版本:PLINK v1.90b4.6 64-bit (15 Aug 2017)

一、格式转换

首先将准备好的vcf文件转换下格式,map和ped格式:

  1 plink --allow-extra-chr --recode --chr-set 18 --vcf test.gz --out s_vcf
2 awk '{print $1"\t"$1"_"$4"\t"$3"\t"$4}' s_vcf.map >s1_vcf.map
3 mv s_vcf.ped s1_vcf.ped

map文件第二列必须要有唯一标识,否则后面区分不了那些snp被剔除;此处awk命令将第二列替换为chr_pos形式,作snp位点名称,如下图所示:

二、LD过滤

这里我们主要使用 --indep-pairwise 参数,直接运行查看具体用法:

  1 plink --indep-pairwise --help
2 PLINK v1.90b4.6 64-bit (15 Aug 2017) www.cog-genomics.org/plink/1.9/
3 (C) 2005-2017 Shaun Purcell, Christopher Chang GNU General Public License v3
4 --help present, ignoring other flags.
5
6 --indep [window size]<kb> [step size (variant ct)] [VIF threshold]
7 --indep-pairwise [window size]<kb> [step size (variant ct)] [r^2 threshold]
8 --indep-pairphase [window size]<kb> [step size (variant ct)] [r^2 threshold]
9 Generate a list of markers in approximate linkage equilibrium. With the
10 'kb' modifier, the window size is in kilobase instead of variant count
11 units. (Pre-'kb' space is optional, i.e. '--indep-pairwise 500 kb 5 0.5'
12 and '--indep-pairwise 500kb 5 0.5' have the same effect.)
13 Note that you need to rerun PLINK using --extract or --exclude on the
14 .prune.in/.prune.out file to apply the list to another computation.
15
16 --ld-xchr [code] : Set Xchr model for --indep{-pairwise}, --r/--r2,
17 --flip-scan, and --show-tags.
18 1 (default) = males coded 0/1, females 0/1/2 (A1 dosage)
19 2 = males coded 0/2
20 3 = males coded 0/2, but females given double weighting

主要参数就三个,滑动窗口大小,步长,r方,r方越小滤除的位点就愈多;命令如下:

  1 plink --file s1_vcf --indep-pairwise 1000kb 1 0.5 --out ld

运行结束后产生prune.in,prune.out两个文件,prune.in文件中包含的就是通过筛选条件我们需要的SNP位点。文件内容为map文件第二列snp名称(唯一标识符)。

根据snp位置信息提取数据请参考另一篇博文:https://www.cnblogs.com/mmtinfo/p/11945592.html

利用plink软件基于LD信息过滤SNP的更多相关文章

  1. 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(下篇)

    续篇—— 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(上篇) 上篇文章写了如何构建一个支持IKEv2的VPN,本篇记录的是如 ...

  2. Google Play和基于Feature的过滤

    田海立@CSDN 翻译自Google Play and Feature-Based Filtering GooglePlay会过滤出那些对用户可见的应用程序,因此用户只能看到和下载那些与他们的设备兼容 ...

  3. 利用iptables实现基于端口的网络流量统计

    如何统计某个应用的网络流量(包括网络流入量和网络流出量)问题,可以转换成如何基于端口号进行网络流量统计的问题.大部分网络应用程序都是传输层及以上的协议,因此基于端口号(tcp, udp)统计网络流量基 ...

  4. 利用开源软件 Hugin 实现照片的景深合成

    利用开源软件 Hugin 实现照片的景深合成 本文主要参考了下面的文章:http://macrocam.blogspot.jp/2013/09/using-hugin-for-focus-stacki ...

  5. 利用Openfiler配置基于文件系统的网络存储

    一.Openfiler简介 Openfiler是一个操作系统,其提供基于文件的网络附加存储和基于块的存储区域网络功能. Openfiler支持的网络协议包括:NFS,SMB/CIFS,HTTP/Web ...

  6. JSP利用freemarker生成基于word模板的word文档

    利用freemarker生成基于word模板的word文档 freemarker简介 FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器 ...

  7. 利用cocoapods创建基于git的私有库

    上一篇文章记录了我利用cocoapods创建基于SVN的私有库的全部过程,今天我再记录一下基于git创建的过程. 整体先说明一下创建一个私有的podspec包括如下那么几个步骤: 创建并设置一个私有的 ...

  8. 利用 yEd 软件做元数据管理

    利用 yEd 软件做元数据管理 yEd Diagram editor 是我常用的 flow chart 制图工具, 另外我也用它画 ER 和 use case 图. 总结一下我喜欢 yEd 的原因:1 ...

  9. 利用cocoapods创建基于git的私有库Spec Repo

    上一篇文章记录了我利用cocoapods创建基于SVN的私有库的全部过程,今天我再记录一下基于git创建的过程. 整体先说明一下创建一个私有的podspec包括如下那么几个步骤: 创建并设置一个私有的 ...

随机推荐

  1. 第七次Alpha Scrum Meeting

    本次会议为Alpha阶段第六次Scrum Meeting会议 会议概要 会议时间:2021年5月4日 会议地点:线上会议 会议时长:20min 会议内容简介:本次会议主要由每个人展示自己目前完成的工作 ...

  2. AIApe问答机器人Scrum Meeting 4.27

    Scrum Meeting 3 日期:2021年4月27日 会议主要内容概述:汇报两日工作. 一.进度情况 组员 负责 两日内已完成的工作 后两日计划完成的工作 工作中遇到的困难 李明昕 后端 Tas ...

  3. BUAA2020软工作业——提问回顾与个人总结

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方 ...

  4. bash执行顺序:alias --> function --> builtin --> program

    linux bash的执行顺序如下所示: 先 alias --> function --> builtin --> program 后 验证过程: 1,在bash shell中有内置 ...

  5. linux中解压.tgz, .tar.gz ,zip ,gz, .tar文件

    转载:https://blog.csdn.net/fu6543210/article/details/7984578 将.tgz文件解压在当前目录: tar zxvf MY_NAME.tgz 将.ta ...

  6. 使用ssh连接到centos7中docker容器

    任务: 使用ssh连接到centos7中docker容器 实验步骤: 实验环境搭建,详情请看上一篇. 因为docker中容器的ip通常来说是和真机以及centos7的ip不属于一个网段,因此直接访问是 ...

  7. docker使用redis过程出现的问题记录

    第一次使用docker搭建成功了单机版redis,但在使用过程中,还是遇到了不少问题,故而先把这些问题记录下来,以防后面再出现会忘记. 目前,只是在docker中搭建了三个单机版的容器,打算先捣鼓一周 ...

  8. ZooKeeper 集群搭建 Error contacting service. It is probably not running.

    搭建环境:Centos 7 虚拟机 3台 按照此教程搭建:https://www.ilanni.com/?p=11393 之后出现错误:Error contacting service. It is ...

  9. Jenkins file一行代码部署.NET程序到K8S

    什么是Jenkins共享库 随着微服务的增多,每个项目的都需要pipline文件,这样的话Pipeline代码冗余度高,并且pipeline的功能越来越复杂. jenkins可以使用Shared Li ...

  10. git push超过100M文件处理方法

    git push超过100M文件处理方法 github 会在你上传文件大于50M的时候,给予警告 ; 大于100M的时候给出 server reject(拒绝上传) 解决方法 保持单个文件在 100 ...