gpt4 book ai didi

r - 从 VCF 文件中提取样本数据

转载 作者:行者123 更新时间:2023-12-04 02:07:38 26 4
gpt4 key购买 nike

我有一个大型 Variant Call 格式 (VCF) 文件(> 4GB),其中包含多个样本的数据。

我浏览过 Google、Stackoverflow 并尝试过 R 中的 VariantAnnotation 包,以某种方式仅提取特定样本的数据,但没有找到有关如何在 R 中执行此操作的任何信息。

有没有人尝试过类似的东西,或者可能知道另一个可以实现这一点的软件包?

最佳答案

VariantAnnotation使用 ScanVcfParam指定要提取的数据。使用包中包含的示例 VCF 文件

library(VariantAnnotation)
vcfFile = system.file(package="VariantAnnotation", "extdata", "chr22.vcf.gz")

发现有关文件的信息
scanVcfHeader(vcfFile)
## class: VCFHeader
## samples(5): HG00096 HG00097 HG00099 HG00100 HG00101
## meta(1): fileformat
## fixed(0):
## info(22): LDAF AVGPOST ... VT SNPSOURCE
## geno(3): GT DS GL

制定对“LDAF”、“AVGPOST”信息字段、样本“HG00097”、“HG00101”基因型字段的请求,用于坐标 50300000、50400000 之间的 22 号染色体变异
param = ScanVcfParam(
info=c("LDAF", "AVGPOST"),
geno="GT",
samples=c("HG00097", "HG00101"),
which=GRanges("22", IRanges(50300000, 50400000)))

读取请求的数据
vcf = readVcf(vcfFile, "hg19", param=param)

并从 VCF 中提取相关数据
head(geno(vcf)[["GT"]])
## HG00097 HG00101
## rs7410291 "0|0" "0|0"
## rs147922003 "0|0" "0|0"
## rs114143073 "0|0" "0|0"
## rs141778433 "0|0" "0|0"
## rs182170314 "0|0" "0|0"
## rs115145310 "0|0" "0|0"
head(info(vcf)[["LDAF"]])
## [1] 0.3431 0.0091 0.0098 0.0062 0.0041 0.0117
ranges(vcf)
## IRanges of length 1169
## start end width names
## [1] 50300078 50300078 1 rs7410291
## [2] 50300086 50300086 1 rs147922003
## [3] 50300101 50300101 1 rs114143073
## [4] 50300113 50300113 1 rs141778433
## [5] 50300166 50300166 1 rs182170314
## ... ... ... ... ...
## [1165] 50364310 50364312 3 22:50364310_GCA/G
## [1166] 50364311 50364313 3 22:50364311_CAT/C
## [1167] 50364464 50364464 1 rs150069372
## [1168] 50364465 50364465 1 rs146661152
## [1169] 50364609 50364609 1 rs184235324

也许您只对作为简单 R 矩阵的基因型元素“GS”感兴趣,然后只需指定您感兴趣的样本和/或范围并使用 readGeno (或 readGTreadInfo 用于类似的专门查询)。

VariantAnnotation 中有大量文档小插图和引用手册;另见 ?ScanVcfParam ; example(ScanVcfParam) .

关于r - 从 VCF 文件中提取样本数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21598212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com