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

如题,如何从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是否分等位基因、缺失值表示等,这要根据大家的目的进行调整。总之,这里只是提供一点想法,有了思路,水到渠成。

posted @ 2024-06-16 10:24  生物信息与育种  阅读(26)  评论(0编辑  收藏  举报