Learn R Programming

SeqArray (version 1.12.5)

seqSetFilter-methods: Set a Filter to Sample or Variant

Description

Sets a filter to sample and/or variant.

Usage

"seqSetFilter"(object, variant.sel, sample.sel=NULL, variant.id=NULL, sample.id=NULL, samp.sel=NULL, action=c("set", "intersect", "push", "push+set", "push+intersect", "pop"), verbose=TRUE) "seqSetFilter"(object, variant.sel, rm.txt="chr", verbose=TRUE) "seqSetFilter"(object, variant.sel, rm.txt="chr", verbose=TRUE) "seqSetFilter"(object, variant.sel, chr, verbose=TRUE) seqResetFilter(object, sample=TRUE, variant=TRUE, verbose=TRUE) seqSetFilterChrom(object, include=NULL, is.num=NA, from.bp=NULL, to.bp=NULL, verbose=TRUE)

Arguments

object
variant.sel
a logical/raw/index vector indicating the selected variants; GRanges, a GRanges object for the genomic locations; GRangesList, a GRangesList object for storing a collection of GRanges objects; IRanges, a IRanges object for storing a collection of range objects
sample.sel
a logical/raw/index vector indicating the selected samples
variant.id
ID of selected variants
sample.id
ID of selected samples
samp.sel
it is deprecated since v1.11.12, please use sample.sel instead
action
"set" -- set the current filter via sample.id, variant.id, samp.sel or variant.sel; "intersect" -- set the current filter to the intersection of selected samples and/or variants; "push" -- push the current filter to the stack, and it could be recovered by "pop" later, no change on the current filter; "push+set" -- push the current filter to the stack, and changes the current filter via sample.id, variant.id, samp.sel or variant.sel; "push+intersect" -- push the current filter to the stack, and set the current filter to the intersection of selected samples and/or variants; "pop" -- pop up the last filter
rm.txt
a character, the characters will be removed from seqnames(variant.sel)
chr
a vector of character for chromsome coding
sample
logical, if TRUE, include all samples
variant
logical, if TRUE, include all variants
include
NULL, or character for specified chromosome(s)
is.num
a logical variable: TRUE, chromosome code is numeric; FALSE, chromosome is not numeric; is.num=TRUE is usually used to exclude non-autosomes
from.bp
NULL, no limit; numeric, the lower bound of position
to.bp
NULL, no limit; numeric, the upper bound of position
verbose
if TRUE, show information

Value

None.

Details

seqResetFilter(file) is equivalent to seqSetFilter(file), where the selection arguments in seqSetFilter are NULL.

If from.bp and to.bp has values, they should be equal-size as include. A trio of include, from.bp and to.bp indicates a region on human genomes. NA in from.bp is treated as 0, and NA in to.bp is treated as the maximum of integer (2^31 - 1).

See Also

seqSetFilterChrom, seqGetFilter, seqGetData, seqApply

Examples

Run this code
# the GDS file
(gds.fn <- seqExampleFileName("gds"))

# display
(f <- seqOpen(gds.fn))

# get 'sample.id
(samp.id <- seqGetData(f, "sample.id"))
# "NA06984" "NA06985" "NA06986" ...

# get 'variant.id'
head(variant.id <- seqGetData(f, "variant.id"))

# get 'chromosome'
table(seqGetData(f, "chromosome"))

# get 'allele'
head(seqGetData(f, "allele"))
# "T,C" "G,A" "G,A" ...


# set sample and variant filters
seqSetFilter(f, sample.id=samp.id[c(2,4,6,8)])
set.seed(100)
seqSetFilter(f, variant.id=sample(variant.id, 5))

# get genotypic data
seqGetData(f, "genotype")


## OR
# set sample and variant filters
seqSetFilter(f, sample.sel=c(2,4,6,8))
set.seed(100)
seqSetFilter(f, variant.sel=sample.int(length(variant.id), 5))

# get genotypic data
seqGetData(f, "genotype")



## set the intersection

seqResetFilter(f)
seqSetFilterChrom(f, 10L)
seqSummary(f, "genotype", check="none")

AF <- seqAlleleFreq(f)
table(AF <= 0.9)

seqSetFilter(f, variant.sel=(AF<=0.9), action="intersect")
seqSummary(f, "genotype", check="none")



## chromosome

seqResetFilter(f)

seqSetFilterChrom(f, is.num=TRUE)
seqSummary(f, "genotype", check="none")

seqSetFilterChrom(f, is.num=FALSE)
seqSummary(f, "genotype", check="none")

seqSetFilterChrom(f, 1:4)
seqSummary(f, "genotype", check="none")
table(seqGetData(f, "chromosome"))

# HLA region
seqSetFilterChrom(f, 6, from.bp=29719561, to.bp=32883508)
seqSummary(f, "genotype", check="none")

# two regions
seqSetFilterChrom(f, c(1, 6), from.bp=c(1000000, 29719561),
    to.bp=c(90000000, 32883508))
seqSummary(f, "genotype", check="none")
seqGetData(f, "chromosome")



# close the GDS file
seqClose(f)

Run the code above in your browser using DataLab