vcf格式简介
1)背景
伴随着大规模的基因分型及测序工程的产生(例如1000 Genomes Project),之前的信息贮存格式例如gff文件它记录了每一个基因的详细信息,其中许多基因信息在基因组之间是共享的,而我们需要记录的仅仅是不同基因组之间变异的地方,因此这些格式会显得格外冗余。这就迫切需要一种新的格式来记录高效的记录这些变异信息。VCF(Variant Call Format)就是这样一种用来贮存基因序列变异信息的文本文件(通常是压缩格式)。
2)VCF格式简介
VCF 格式文件包含有2部分:1) header section,元信息(meta-information),以‘##’为前缀,通常包含fileformat、fileDate、reference等信息,头行信息( header line ),以‘#’为前缀;2) data section,该部分为主题部分,记录了每个样品每个位点处的基因分型信息。

主题部分每列的含义:


1)CHROM - chromosome:参考基因组标识。
2)POS - position:变异位点相对于参考基因组所在的位置(1-based)。在每个染色体内,按照数字位置升序排列。
3)ID - identifier: 如果是dbSNP variant则需要给出相应的rs 号,若不是,则默认使用‘.’
4)REF - reference base(s): 参考序列碱基,必须是 A,C,G,T,N其中的一种。
5) ALT - alternate base(s): 表示variant的Allele,若有多个,则使用逗号分隔,(变异所支持的碱基类型及碱基数量)这里的碱基类型和碱基数量,对于SNP来说是单个碱基类型的编号,而对于Indel来说是指碱基个数的添加或缺失,以及碱基类型的变化
6)QUAL - quality:表示 Phred质量值,用来表示 ALT的可靠性
7)FILTER - filter status:表示是否通过过滤。PASS表示该位点通过过滤,否则表示没有通过。例如,q10表示质量值低于10
8)INFO - additional information:表示的是变异描述信息。包括18种,都是以<key>=[,data]格式,并使用分号分隔的形式,其中很多的注释信息在VCF文件的头部注释中给出。
AA :ancestral allele AC :allele count in genotypes, for each ALT allele, in the same order as listed AF :allele frequency for each ALT allele in the same order as listed: use this when estimated from primary data, not called genotypes AN :total number of alleles in called genotypes BQ :RMS base quality at this position CIGAR :cigar string describing how to align an alternate allele to the reference alleleDB :dbSNP membership DP :combined depth across samples, e.g. DP=154 END :end position of the variant described in this record H2 :membership in hapmap2 H3 :membership in hapmap3 MQ :RMS mapping quality, e.g. MQ=52 MQ0 :Number of MAPQ == 0 reads covering this record NS :Number of samples with data SB :strand bias at this position SOMATIC :indicates that the record is a somatic mutation, for cancer genomics VALIDATED :validated by follow-up experiment 1000G :membership in 1000 Genomes
9)FORMAT:可选的扩展,例如GT:AD:DP:GQ:PL。该部分是主体部分,表示基因型信息的多个标签,这些标签之间以冒号分割,其对应的值位于第10列,同样以冒号分割,表示第一个样品的基因型结果
10)SAMPLES:表示样本信息,各个Sample的值,由BAM文件中的@RG下的SM标签所决定,这些值对应着第9列的各个格式,不同格式的值用冒号分开,每一个sample对应着1列;多个samples则对应着多列,这种情况下列的数多余10列。



3)vcftools的下载与简单应用
vcftools 则是一款非常优秀的工具来处理vcf 文件,可以用来对vcf文件进行解析、分析、操作。vcftools大致可以被分为两个模块:1)Perl API,该模块主要是可以对vcf文件进行多种操作,包括合并,比较,取交并集,及简单的统计 2)第二个模块包含C++可执行程序,用来分析vcf文件中的SNP数据,可以用来估计等位基因频率,连锁不平衡,质量控制等分析。
1)下载https://github.com/vcftools/vcftools2)tar zxvf vcftools-vcftools-v0.1.16-0-g93ec375.tar.gz3)./configure --help4)./configure5)make6)make install
下面会给出三个简单的例子:
1)比较两个文件共享变异位点
vcftools --vcf input_data.vcf --diff other_data.vcf --out compare
2)计算等位基因频率
vcftools --vcf cohort.intersect.vcf --freq --out output
3)统计测序深度
vcftools --vcf input_data.vcf --depth -c >output
4)参考资源
The Variant Call Format Specification,VCFv4.3 and BCFv2.2
The variant call format and VCFtools
https://en.wikipedia.org/wiki/Variant_Call_Format
http://www.cnblogs.com/emanlee/p/4562064.html
https://gatkforums.broadinstitute.org/gatk/discussion/1268/how-should-i-interpret-vcf-files-produced-by-the-gatk
vcf格式简介的更多相关文章
- vcf格式
Variant Call Format(VCF)是一个用于存储基因序列突变信息的文本格式.表示单碱基突变, 插入/缺失, 拷贝数变异和结构变异等.BCF格式文件是VCF格式的二进制文件. CHROM ...
- Android Contact 导入导出 vcf格式(不依赖第三方库)
Android sdk 支持vcf处理的(忘记最低哪个版本开始支持的了,可以查一查) 备注:此代码来自Stack Overflow(原地址找不到了,o(╥﹏╥)o) 1. 导出联系人为vcf格式 Co ...
- JSON数据表示格式简介(JavaScript对象表示法)
[1] JSON简介 > JSON全称 JavaScript Object Notation > 类似于JS中对象的创建的方法 > JSON和XML一样,都是一种表 ...
- vcf格式文件转化为Excel(csv)格式文件(R语言的write.csv,write.table功能,Excel表的文件导入功能)
最近在整理文件,准备把vcf文件转化为Excel格式,或者CSV格式,网上搜了一堆资料,还真有人专门开发出转化格式的工具:叫vcf2csv(下载地址http://vcf2csv.sourceforge ...
- 33、VCF格式
转载:http://blog.sina.com.cn/s/blog_7110867f0101njf5.html http://www.cnblogs.com/liuhui0622/p/6246111. ...
- IFC格式简介
IFC是一个数据交换标准, 用于不同系统交换和共享数据.当需要多个软件协同完成任务时, 不同系统之间就会出现数据交换和共享的需求.这时, 工程人员都希望能将工作成果(这里就是工程数据), 从一个软件完 ...
- JSON格式简介
一.JSON:JavaScript Object Notation的简写,是一种轻量级数据交换格式. 二.数据类型:标量.序列(数组).映射(key-value) 三.JSON的四个原则 1 .并列数 ...
- RIFF格式简介
Resource Interchange File Format(简称RIFF),资源交换文件格式,是一种按照标记区块存储数据(tagged chunks)的通用文件存储格式,多用于存储音频.视频等多 ...
- LibSVM格式简介
对于训练或预测,XGBoost采用如下格式的实例文件: train.txt 1 101:1.2 102:0.03 0 1:2.1 10001:300 10002:400 0 0:1.3 1:0.3 1 ...
随机推荐
- 退出循环break,在while、for、do...while、循环中使用break语句退出当前循环,直接执行后面的代码。
在while.for.do...while循环中使用break语句退出当前循环,直接执行后面的代码. 格式如下: for(初始条件;判断条件;循环后条件值更新) { if(特殊情况) {break;} ...
- Linux 简单命令查询CPU、内存、网卡等信息
[转自]Linux查询CPU.内存.网卡等信息 看CPU信息(型号)# cat /proc/cpuinfo | grep name | cut -f2 -d: |uniq -c 1 Int ...
- RAID磁盘阵列的原理与搭建
学习导图 RAID-0结构关系图 RAID-1结构关系图 RAID-5:条带+分布校验(三块磁盘以上) RAID-10:镜像+条带(四块磁盘以上) RAID-0 添加两块硬盘,分别为磁盘1.磁盘2.最 ...
- Northwestern European Regional Contest 2017-I题- Installing Apps题解
一.题意 有一个手机,容量为$C$,网上有$N$个app,每个app有个安装包大小$d_i$,有个安装后的占用空间大小$s_i$,安装app是瞬间完成的,即app的占用空间可以瞬间由$d_i$变成$s ...
- 第10课 C++中的新成员
1. 动态内存分配 (1)C++通过new关键字进行动态内存申请,是以类型为单位来申请空间大小的 (2)delete关键字用于内存释放 ▲注意释放数组时要加[],否则只释放这个数组中的第1个元素. [ ...
- CentOS修改TimeZone
查看: date -R +0800 修改: sudo rm -rf /etc/localtime sudo cp /usr/share/zoneinfo/America/Los_Angeles / ...
- SDOI 2017 天才黑客
/* 根据claris的 博客以及 beginend 的博客来写的 首先考虑如何求出最短路 可以从样例看出 路径是从边走到边的, 所以我们将边看作点 有共同端点的两边之间 互相连边, 边权为lcp. ...
- Missing write access to /usr/local/lib/node_modules/webpack/node_modules/assert
1. 加上sudo指令 sudo npm install ... 2. 可能是网络原因, 改用cnpm cnpm install ...
- mysql更新(四) 数据类型
07-数据类型 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考链接:http://www.runoob.com/mysql/m ...
- IDEA设置syso快捷键输出System.out.println();
用Eclipse时间长了, 就习惯之前的快捷键! 当然, IDEA不愧是Java开发的”利器”! 写起代码就是一个字 – “爽”! 建议大家可以去尝试一下! 当然, 在IDEA中输出System.ou ...