Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从VCF文件中提取样本数据_R_Bioinformatics_Vcf Variant Call Format - Fatal编程技术网

R 从VCF文件中提取样本数据

R 从VCF文件中提取样本数据,r,bioinformatics,vcf-variant-call-format,R,Bioinformatics,Vcf Variant Call Format,我有一个大的Variant Call format(VCF)文件(>4GB),其中包含多个示例的数据 我浏览了Google、Stackoverflow,还尝试了R中的VariantAnotation包,以某种方式仅提取特定样本的数据,但没有找到任何关于如何在R中实现这一点的信息 是否有人尝试过类似的方法,或者可能知道另一个软件包会启用此功能?正在使用ScanVcfParam指定要提取的数据。使用包中包含的示例VCF文件 library(VariantAnnotation) vcfFile = s

我有一个大的Variant Call format(VCF)文件(>4GB),其中包含多个示例的数据

我浏览了Google、Stackoverflow,还尝试了R中的VariantAnotation包,以某种方式仅提取特定样本的数据,但没有找到任何关于如何在R中实现这一点的信息

是否有人尝试过类似的方法,或者可能知道另一个软件包会启用此功能?

正在使用
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
为坐标50300000和5040000之间的22号染色体上的变体的样本“HG00097”和“HG00101”的“LDAF”、“AVGPOST”信息字段、“GT”基因型字段制定请求

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
也许您只对基因型元素“GS”感兴趣,将其作为一个简单的R矩阵,然后只指定您感兴趣的样本和/或范围,并使用
readGeno
(或
readGT
readInfo
进行类似的专门查询)


小案例和参考手册中有大量文件;另见
?ScanVcfParam
<代码>示例(ScanVcfParam)

如果使用
扫描
,则可以指定要开始读取文件的行(
跳过
)以及要读取的行数(
)。我没有使用VCF文件的经验,但这可能会对您有所帮助。标记VCF与您在问题中讨论的VCF不相关。您是否考虑过只使用unix实用程序cut?