首页 > 其他分享 >如何快速简化vcf信息?

如何快速简化vcf信息?

时间:2023-07-26 11:44:48浏览次数:50  
标签:基因型 plink vcf -- 位点 简化 snp 快速

目录

需求描述

vcf是标准的基因型格式文件,其中包含的信息可多可少。主要在于INFO可无限扩展特征,以及每个样本的FORMAT信息,会大大增加vcf文件的大小。一般来说,GATK等软件得到的基因型都会有这些信息,初始变异我们最好保留它们,因为这是过滤位点/样本的依据。但是当我们确定了最终用于后续下游分析的位点时,除了每个样本的基因型,其他信息我们往往不会再关注。这时,仍然在一个巨大文件中保留这些冗余信息,显然是没有必要的。

如何快速简化vcf,只保留位点及基因型等基本信息?

可能存在错误的做法

vcf和plink文件之间进行相互转化:vcf——>plink——>vcf,这样一番操作,就将vcf简化了。

plink --vcf snp.pass.vcf.gz --make-bed --out snp --allow-extra-chr --double-id
plink --bfile snp --recode vcf-iid --out snp --allow-extra-chr

但这样操作存在一些潜在的问题:

一是染色体名称和位点的变化。chr/Chr等前缀会直接去掉(导致后续要做注释时,需要对注释gff/gtf做一些额外的操作),而且非数字染色体上位点可能直接被删掉,--allow-extra-chr可能也起不到作用;

二是样本名称的潜在变化。plink默认用下划线对样本名进行分隔,分隔的两个字段分别作为ped文件中的family id和sample id, 如果vcf中的样本名含有多个下划线,无法正确进行划分,软件会报错,此时可以修改--id-delim参数,该参数设定了分隔符,默认是下划线,可以设置成其他字符,以达到正确区分的目的。为保险起见,这点可以在转化格式时加个--double-id参数。

三是REF和ALT可能调换。这是最严重的,格式转回来后,有些位点的REF和ALT碱基直接调换了,大部分则是正常的。这个坑我踩过,目前仍然百思不得其解。

以上潜在的问题,可能导致文件格式后的位点基因型与原来不一致,而你可能察觉不到。

更靠谱的做法

我更倾向于推荐用bcftools来简化vcf文件。

bcftools annotate --remove QUAL,FILTER,INFO,^FORMAT/GT snp.pass.vcf.gz -Oz -o snp.simply.vcf.gz

解释:
--remove QUAL,FILTER,INFO,^FORMAT/GT: 删除 QUAL,FILTER,INFO字段信息,以及FORMAT 字段中除 GT(基因型)开头的字段外的所有字段。它实际上只保留了基因型信息,而删除了其他所有信息。

原文件:
image.png

简化后文件:

image.png

当然还有其他的方法,比如自己写脚本,这里不讨论。

Ref:
http://samtools.github.io/bcftools/howtos/annotate.html

标签:基因型,plink,vcf,--,位点,简化,snp,快速
From: https://www.cnblogs.com/miyuanbiotech/p/17582044.html

相关文章

  • 如何用python做一个exe程序快速爬取文章?
    我用了99藏书网作为例子九九藏书网(99csw.com)注:本程序主要用于快速复制99藏书网中的小说,有些参数我要在开头先解释清楚 一、导入库importtkinterastkfromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.a......
  • 第三章:快速验证环
    验证环的目标:借助各种方法和工具,让质量可靠的解决方案以最快的速度到达客户手中,从而收集并分析真实的反馈验证环的关键:质量与速度验证环的4个关键环节:构建:将自然语言的描述转换成计算机可执行的软件,即“质量达标的软件包”1.时间盒管理2.任务分解:需求拆......
  • CH32F103C8T6修改HAL库实现内部FLASH快速读写
    1、在stm32f103xe.h文件中,在FLASH_TypeDef结构体中,增加MODEKEYR成员定义。修改后如下图所示:2、目前CH32F103的FLASH最大为64K,在chflash.c文件中,修改ValidAddrEnd。修改后如下图所示:注:大容量芯片可以相应修改ValidAddrEnd的“0x10000”数据即可3、上述步骤完成后,即可执......
  • 从另一电脑复制下来的MYSQL的数据文件(包括FRM IBD)快速恢复到另一MYSQL服务器过程
    从另一电脑复制下来的MYSQL的数据文件(包括FRMIBD)快速恢复到另一MYSQL服务器过程:1.安装mysql最好相同的版本,安装Navicateformysql,连接相应的服务器2.安装mysql-utilities,地址:https://downloads.mysql.com/archives/utilities/以恢复td_gov_company_abnormal.frm为例:3.C......
  • 我开源了团队内部基于SpringBoot Web快速开发的API脚手架v1.6.0更新
    什么是rest-api-spring-boot-starterrest-api-spring-boot-starter适用于SpringBootWebAPI快速构建让开发人员快速构建统一规范的业务RestFullAPI不在去关心一些繁琐。重复工作,而是把重点聚焦到业务。动机每次WebAPI常用功能都需要重新写一遍。或者复制之前的项目代码......
  • 转:如何快速使用GITHUB资源
    <divclass="postBody"><divid="cnblogs_post_body"class="blogpost-bodyblogpost-body-html"><aname="_labelTop"></a><divid="navCategory"><h2>思维导航<......
  • OPC-DX 快速入门
    OPC-DX快速入门新手必读:推荐新手阅读!文档 涉及产品  1、OPC概要过去,为了存取现场设备的数据信息,每个软件开发商都需要编写专用的接口函数。但现场设备的种类繁多且产品的不断升级,给用户和软件开发商带来了巨大的工作负担。系统集成商和开发商急需......
  • AntDB快速入门——环境注意项之关闭numa的步骤
    grubby--update-kernel=ALL--args="numa=offtransparent_hugepage=never"grub2-mkconfigsystemctlstoptunedsystemctldisabletuned#重启后,验证grub的cmdline:#在输出的行里面有这个内容:numa=offtransparent_hugepage=never即为正确cat/proc/cmdline#检查......
  • 【Java入门】小白快速入门 Java(一)
    ......
  • 模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别
    目录流程版本安装Docker安装PaddleNLP安装环境准备模型准备压缩模型下载模型模型部署环境配置启动服务测试--暂时还没通过重启图像识别+信息抽取(UIE-X),部署接口供别的应用调用最终在自己部署的环境中识别时报错,不知道是不是和GPU有关,还在尝试中流程在百度BMLCodeLab......