美文网首页
如何快速获取一个VCF中特定位点的信息

如何快速获取一个VCF中特定位点的信息

作者: 九月_1012 | 来源:发表于2023-11-16 18:44 被阅读0次

由于某些vcf文件比较大,检索感兴趣的位点,时间比较慢。尤其是当想批量获取位点信息时。
以下是一个linux 软件工具 或在python2脚本中导入该模块,提取某个位点的rs编号、深度等信息。

from cyvcf2 import VCF

for variant in VCF('some.vcf.gz'): # 输入vcf文件,然后就可以按照表头提取响应的值
    variant.REF, variant.ALT # e.g. REF='A', ALT=['C', 'T']

    variant.CHROM, variant.start, variant.end, variant.ID, \
                variant.FILTER, variant.QUAL

    # numpy arrays of specific things we pull from the sample fields.
    # gt_types is array of 0,1,2,3==HOM_REF, HET, UNKNOWN, HOM_ALT
    variant.gt_types, variant.gt_ref_depths, variant.gt_alt_depths # numpy arrays
    variant.gt_phases, variant.gt_quals, variant.gt_bases # numpy array

    ## INFO Field.
    ## extract from the info field by it's name:
    variant.INFO.get('DP') # int
    variant.INFO.get('FS') # float
    variant.INFO.get('AC') # float

    # convert back to a string.
    str(variant)


    ## sample info...

    # Get a numpy array of the depth per sample:
    dp = variant.format('DP')
    # or of any other format field:
    sb = variant.format('SB')
    assert sb.shape == (n_samples, 4) # 4-values per

# to do a region-query:

vcf = VCF('some.vcf.gz')
for v in vcf('11:435345-556565'):  #这里指我要提取11:435345-556565位置的信息
    if v.INFO["AF"] > 0.1: continue
    print(str(v))

下面的脚本是我想从dbsnp的vcf中提取,我感兴趣的位点rs编号和ref、alt碱基,

输入文件,argv[1]: dbsnp vcf文件; 第二个文件:argv[2] , 一些基因组位置表(chr,start...)
import sys
from cyvcf2 import VCF

dbsnp = VCF(sys.argv[1])
fp = open(sys.argv[2], "r")
for line in fp:
    lst = line.strip().split()
    chrom, st, rs, pro = lst[:]
    id = " "
    for v in dbsnp("%s:%s-%s" % (chrom, st, st)):
        id = v.ID
        print("%s\t%s\t%s\t%s" % (line.strip(), v.REF, v.ALT, id))
fp.close()

参考网址:cyvcf2

相关文章

  • Python中捕获异常错误的各种方法

    '''异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置。下面介绍几种python中获取...

  • Python中获取异常(Exception)信息

    前言 异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置。下面介绍几种python中获取...

  • 异常信息的获取

    异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置。下面介绍几种python中获取异常信...

  • AEO认证中如何快速获取到更多信息点?

    这里可以采取各种知识获取的手段获取到AEO认证的最佳信息点和最多的内容实操 关键词搜索很关键,很多好的方法可以帮助...

  • 数据结构的引入(理论篇)

    数据结构 我们如何用Python中的类型来保存一个班的学生信息? 如果想要快速的通过学生姓名获取其信息呢? 实际上...

  • 获取定位信息

    ios官方定位插件 百度地图定位Cordova插件,支持Android,IOS,ionic 1x 2x 均可使用(...

  • 如何快速获取信息

    我们的信息越来越泛滥,知识点越来越碎片化。我们也越来越难以专注起来,如果不专注,其实很多东西是无法精通的。不能精通...

  • 内容付费,一点都不好

    物以稀为贵,内容付费是在免费内容泛滥下的结果。 在信息无限,精力有限的年代,如何快速获取有价值信息成为了新的痛点。...

  • 《定位》读后感

    《定位》是特劳特所写,“定位”的最新定义:“如何在潜在顾客的心智中做到与众不同。” 定位的原则1取名要好听,有积极...

  • 有赞搜索引擎实践(工程篇)

    随着互联网数据规模的爆炸式增长, 如何从海量的历史, 实时数据中快速获取有用的信息, 变得越来越有挑战性. 一个中...

网友评论

      本文标题:如何快速获取一个VCF中特定位点的信息

      本文链接:https://www.haomeiwen.com/subject/sjqywdtx.html