S3 method for subsetting vcftable objects by rows (variants) and columns (fields). Allows filtering variants based on logical conditions and selecting specific fields.
Usage
# S3 method for class 'vcftable'
subset(x, subset, select, drop = FALSE, ...)Arguments
- x
a vcftable object returned by
vcftable- subset
logical expression indicating variants (rows) to keep. The expression is evaluated in the context of the vcftable object, allowing direct reference to fields like chr, pos, ref, alt, qual, etc. Missing values are treated as FALSE.
- select
expression indicating which fields (columns) to select. If omitted, all fields except samples are selected. Note: the samples field is always kept and cannot be selected/deselected.
- drop
logical. If TRUE, the result is coerced to the lowest possible dimension. Passed to the [ operator when subsetting. Default FALSE.
- ...
Currently not used but can avoid S3 generic consistency warnings
Author
Zilong Li zilong.dk@gmail.com
Examples
library('vcfppR')
vcffile <- system.file("extdata", "raw.gt.vcf.gz", package="vcfppR")
res <- vcftable(vcffile, "chr21:1-5050000")
# Subset by quality score
high_qual <- subset(res, qual > 100)
# Subset by position and select specific fields
region_subset <- subset(res, pos >= 5000000 & pos <= 5010000,
select = c(chr, pos, ref, alt))
region_subset <- subset(res, pos >= 5000000 & pos <= 5030400,
select = c(chr, pos, ref, alt))
# Subset SNPs (REF and ALT are single nucleotides)
snps <- subset(res, nchar(ref) == 1 & nchar(alt) == 1)