首页 > 其他分享 >如何从vcf文件中快速提取基因型GT?

如何从vcf文件中快速提取基因型GT?

时间:2024-06-16 10:33:46浏览次数:28  
标签:基因型 GT vcf gz 生信 bcftools

如题,如何从vcf文件中快速提取基因型Genotype,得到基因型表格文件?

vcf作为标准的存储变异的文件格式。虽是标准格式,但可扩展性极强,变异属性可随意添加,真是很妙的设计!其实vcf格式和vcftools软件文章发表也不过13年而已。

基因型矩阵,类似于HapMap格式,市场上大多数芯片也是这种。比如,需要从vcf文件中提取:Chrom、Pos、Ref、Alt和GT信息。

有以下几种思路。

自定义脚本

自己写脚本,如果vcf中Format只有GT,那直接Linux命令行即可。不然可能要写个小脚本提取GT。当然可从GitHub查找相关脚本,相信有很多,各种语言都有,随便一搜如:https://github.com/avengerpb/vcf2hapmap;https://github.com/krishnam/vcf2hmp。

或者直接问ChatGPT,多给几次prompt,很快就能达到目的。秉着“尽量避免重复造轮子”原则,很多生信工具本身就可进行提取。

bcftools等

bcftools、vcftools、bedtools、samtools等生信工具功能十分全面,大多数生信分析都能凭借它们完成,关键是你对它们真正熟练吗?比如bcftools小编之前就写过一篇推文:如何快速简化vcf信息?

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

tassel

Ed Buckler Lab开发的tassel为植物生信分析量身打造。

## 添加 -sortPositions 参数,以便在转换之前进行位点排序
run_pipeline.pl -Xms10g -Xmx100g  \
  -vcf in.vcf.gz \
  -sortPositions -export out.hmp.txt \
  -exportType HapmapDiploid

当然,exportType输出类型可有很多,如下:

Hapmap
HapmapDiploid
HDF5
VCF
Plink
Phylip_Seq
Phylip_Inter
Fasta
Text
ReferenceProbablity
Depth
SqrMatrix
SqrMatrixRaw (for MultiBLUP)
SqrMatrixBin (for MultiBLUP)
Phenotype
PlinkPhenotype
Table

GATK

当然,也少不了GATK。

gatk VariantsToTable \
  -R genome.fa \
  -V in.vcf.gz \
  -F CHROM -F POS -F REF -F ALT -GF GT \
  -O vcf2table

结果:

以上不同方法得到的结果文件略有出入,比如基因型为碱基或数值、GT是否分等位基因、缺失值表示等,这要根据大家的目的进行调整。总之,这里只是提供一点想法,有了思路,水到渠成。

标签:基因型,GT,vcf,gz,生信,bcftools
From: https://www.cnblogs.com/miyuanbiotech/p/18250239

相关文章

  • Document.SendStringToExecute方法
    出处:https://help.autodesk.com/view/OARX/2018/ENU/?guid=OREFNET-Autodesk_AutoCAD_ApplicationServices_Document_SendStringToExecute_string__MarshalAsUnmanagedType_U1__bool__MarshalAsUnmanagedType_U1__bool__MarshalAsUnmanagedType_U1__bool方法的API:publicvoidS......
  • VCF文件的genotype(GT)为何会出现".",而非常见的./.或.|.
    今天处理一个客户的基因型数据,遇到了一个格式转化的问题。我想将标准vcf转为某特定格式(类hapmap),之前基于pysam库写了一个比较成熟的脚本,运行了n年都没问题。但这次出错如下:a,b=v['GT']ValueError:notenoughvaluestounpack(expected2,got1)如果你直接去网上搜......
  • 育种 API (BrAPI):一个植物表型/基因型数据库的标准接口
    TheBreedingAPI(BrAPI)项目旨在实现植物育种数据库之间的互操作性。BrAPI是一个标准化的RESTfulWeb服务API规范,用于交流植物育种数据,包括基因型和表型。BrAPI非常灵活,可以处理各种用例。社区也非常强大(https://brapi.org/),任何对植物育种数据管理感兴趣的人都可以免费......
  • PS通过GTX实现SFP网络通信2
    PS程序设计LWIP库修改 修改原因SDK2017.4自带的LWIP1.4.1库的版本为2.0,直接使用该库将无法通过SFP实现网络通信。因此需要进行修改。修改的原因有2个,第1个原因是由于2017.4版本产生的新bug。在2015.4版本中,若PL部......
  • PS通过GTX实现SFP网络通信1
    将PSENET1的GMII接口和MDIO接口通过EMIO方式引出。在PL端将引出的GMII接口和MDIO接口与IP核1G/2.5GEthernetPCS/PMAorSGMII连接,1G/2.5GEthernetPCS/PMAorSGMII通过高速串行收发器GTX与MIZ7035/7100开发板的SFP......
  • 2024.6 -> 做题记录与方法总结
    2024/6/151.P4363[九省联考2018]一双木棋chess经典轮廓线dp使用的关键在于发现状态数并不多,用\(n\)进制数来表现轮廓的状态\(dp\)的转移和轮廓线息息相关如图,蓝色轮廓线状态只能转移到含一个紫色的状态因为$1\leqn,m\leq10$用\(11\)进制压缩状态就可......
  • 编写一个函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数,且
    编写一个函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数,且要求m>n。p=m!/n!(m-n)!(float)m!#include<stdio.h>floatfactorial(intn){if(n==0){return1.0;}else{returnn*factorial(n-1);}}float......
  • Windows11系统WmsConfigTasks.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个WmsConfigTasks.dll文件(挑选合适的版本文件......
  • 如何正确使用@Bulider与<T>返回数据
    @Data@ToString@Builder@AllArgsConstructorpublicclassPageResult<T>implementsSerializable{privateList<T>items;privatelongcounts;privatelongpage;privatelongpageSize;}上述为一个简单的实体类,接下来我们需要通过建造者模式构建他......
  • python>tqdm实现git进度条效果
    注意1:这里是在python3环境下使用的git,安装要使用pipinstallGitpython来安装在python环境下的git注意2:这个方法可适用于windows环境和Linux环境importgitimporttqdmrepo_url='https://gitee.com/alichinese/oebuild-bin.git'local_path='F:\\test\\oebuild-b......