利用PyVCF模块处理VCF文件

利用PyVCF模块处理VCF文件

转载自:微信公众号 生信说

欢迎大家扫码关注

 


                   

工欲善其事,必先利其器。

VCF,全称Variant Call Format,是生物信息学领域最常用的遗传突变存储格式。对VCF格式中遗传突变信息的挖掘是分析DNA突变的基础。本文将带你探究如何使用python的PyVCF模块解析VCF文件。

 

VCF文件格式介绍

 

VCF是一种文本(text)文件格式,分析人员可以直接查看。但VCF文件中保存着大量突变信息,人为的查看显然不是一个好办法。在分析过程中,往往需要借助一些工具(软件,脚本)去处理解析VCF文件中存储的突变信息。

VCF文件有三部分组成:

  1. Meta-information lines

    Meta-information lines以##开头,并且必须以key=value键值对的形式存在。虽然Meta-information lines不存储具体的突变信息,但它对于VCF文件来说却格外重要,主要作用是对正文中INFO,FILTER和FORMAT列信息的解释说明。比如正文某一突变的INFO列出现了DP=504,这代表了什么意思呢?这时我们就可以去Meta-information lines中查找对应的解释(如下图),一目了然。

     

  2. Header line syntax

    顾名思义,Header line syntax是VCF文件的表头行,TAB键分割。Header line有8列必须列,分别是:

    如果存在genotype数据,则紧随其后的是FORMAT列,然后是样品信息列,样品信息列可以是多列,具体列数由样品数量决定。

  3. Data lines

    Data lines是实际存储突变信息的行,每一行包含一个突变,列数和表头行的列数一致,每一列的信息即表头行每一列对应的信息。

    FORMAT列和样品列是具有一一对应关系的,FORMAT所解释的信息即样品列对应的信息,一般情况下FORMAT列和样品列的信息都可以按“:”切割成多个分块,如下图:

     

    以上就是VCF文件格式的简单介绍,如果想详细了解VCF文件格式,后台回复“VCF”哦!

     

 使用PyVCF模块处理VCF文件

 

VCF是一种文本文件,我们可以很轻松的编写脚本进行VCF文件处理,但是为了避免“造轮子”,这里我们介绍一种简单快速的VCF文件处理方法---利用PyVCF模块进行VCF文件处理

 

实例说明:

 

PyVCF是一个第三方python包,用于读取处理VCF文件。使用PyVCF之前我们首先安装这个包:

 

然后我们就可以导入使用啦

 

对于每一列的信息,我们都可以通过Header line获取得到:

 

我们可以继续获得INFO列对应的信息:

 

对于FORMAT列信息,同样可以用record.FORMAT方法获得,但这样处理并没有实际的意义,我们更关心的是样品列对应的信息。样品列的信息如何获取呢?PyVCF将一个VCF中所有的样品信息都存放在samples列表中:

 

并可以通过下标的方式获取每一个样品的信息,每一个样品的信息又存放在一个字典中,因此可以继续通过dict[key]的形式获得每个key的值:

 

但实际情况中,我们并不能很方便的知道VCF文件中样品的顺序,因此通过上述samples的方法获取每个样品详细信息的方法并不是很方便。我们可以另辟蹊径,寻求更适合的方法,利用record.genotype获取:

这样就可以避免下标带来的未知性,可以直接通过索引样品名获取样品的详细突变信息。

 

以上就是利用PyVCF模块读取VCF文件的介绍,是不是很简单!当然,PyVCF模块还有其他的一些功能,这里就不一一介绍了,感兴趣的朋友可以自行到官网(https://github.com/jamescasbon/PyVCF)学习。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: bcftools是一个广泛使用的命令行工具,用于处理VCF格式的变异调用数据。它支持检查,过滤,转换和合并VCF文件利用bcftools可以生成高保真度和高质量的系统发育树。 构建系统发育树必须先生成一个vcf文件。在vcf文件中,包含了每个样品在每个位置上的碱基。然后,可以使用bcftools进行变异的过滤和筛选,以过滤掉低质量的碱基以及不太可靠的变异。 在变异筛选之后,可以使用bcftools将过滤后的vcf文件转换为phylip格式。phylip是一种用于构建系统发育树的标准格式。然后,利用phylip格式的文件和其他的支持文件,可以使用常规的系统发育树软件,如RAxML和PhyML,构建系统发育树。 总之,bcftools是一个非常有用的工具,能够对VCF格式的变异调用数据进行全面处理,并可以生成高质量的系统发育树。它对于分子生物学和生物信息学研究都是非常重要的工具。 ### 回答2: BCFTools是一个非常流行的工具,可以用于处理VCF文件并构建系统发育树。使用BCFTools处理VCF文件有很多好处,例如可以过滤VCF文件中无用的信息,筛选出感兴趣的位点等。 要使用BCFTools构建系统发育树,我们需要先将VCF文件中的数据转换成BCF文件。这可以通过使用bcftools view命令将VCF文件转换成BCF文件来完成。然后,我们需要使用bcftools query命令从BCF文件中提取需要的信息,例如基因型、SNP位点等。可以使用bcftools filter命令在提取信息的同时进行一些筛选操作,例如过滤掉低质量的位点、过滤掉缺失值等。 最后,在得到所需的信息后,我们可以使用构建系统发育树所需的软件,例如PHYLIP等,将提取的信息输入到软件中进行分析和构建系统发育树。 总之,使用BCFTools处理VCF文件可以大大简化系统发育树的构建过程,提高分析效率和准确性。但是,需要注意保证数据质量和正确性,以避免结果出错。 ### 回答3: BCFtools是一种用于处理VCF和BCF文件的工具集,可以用于构建系统发育树。通过将多个样品的VCF文件合并以构建总体样本的VCF文件,可以使用BCFtools执行操作,例如基因型过滤、缺失数据的填充以及变异注释。 构建系统发育树需要将样品的遗传差异映射到树形结构中,以显示它们的亲缘关系。一种构建方法是使用多序列比对将DNA序列对齐,然后执行基于序列比较的树形建构分析。另一种方法是使用变异的相对频率或一些组合遗传标志,例如单倍体基因型的分布来建构系统发育树。这种数据分析方法称为分子系统学。 使用BCFtools进行VCF文件处理时,可以考虑以下步骤: 1)使用bcftools merge命令将多个样本的VCF文件合并成一个总体VCF文件。 2)使用bcftools view命令执行过滤,例如基因型和质量过滤,以减少噪音和杂质信号。 3)使用bcftools stats命令生成统计信息,例如变异密度、每个样本的基因型频率和分布的质量值等。 4)使用vcftools或其他变异注释工具添加有关变异和功能信息,例如GenBank注释、GO注释、KEGG通路注释等。 5)使用获得的信息对变异进行系统发育推断,以判断样本之间的亲缘关系、进化史和分化历史。常见的分化历史分析方法包括最大简约树、相似度矩阵分析、邻接成对绘制等分子系统学方法。 综上所述,BCFtools是一种有用的工具集,可以处理VCF文件和构建系统发育树,并帮助科学家了解样本之间的遗传相似性和进化历史。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值