Learn R Programming

GGtools (version 5.8.0)

eqsens_dt: support for sensitivity analyses related to eQTL enumerations

Description

support for sensitivity analyses related to eQTL enumerations

Usage

eqsens_dt(dtab, filtgen = filtgen.maf.dist, by = c("pairs", "snps", "probes")[1], targfdrs = c(0.05, 0.01, 0.005), parmslist = list(mafs = c(0.025, 0.05, 0.075, 0.1, 0.125), dists = c(1000, 5000, 10000, 25000, 50000, 1e+05)), renameChisq = TRUE) filtgen.maf.dist (maf.dist, validate.tab = function(tab) all(c("mindist", "MAF", "score") %in% colnames(tab))) update_fdr_filt(tab, filt = function(x) x, by = c("pairs", "snps", "probes")[1]) plotsens(eqsout, ylab = "count of eQTL at given FDR", title = "cis radius in bp")

Arguments

dtab
data.table instance as generated by converting a cisScores GRanges. In general it will need to have column names score, MAF, mindist, and columns with names permScore_1, ....
filtgen
a function that generates a closure. The function returned by filtgen will be a function of one argument that filters an input data.table. The environment of the returned function will possess bindings used to define the filtering operation. filtgen.maf.dist, documented here, is a working example.
by
character atom describing the level of aggregation for sensitivity analysis. eQTl searches generally involve cartesian products of sets of SNPs and sets of genes, and if all elements of these products are of interest, set by to "pairs". For sensitivity analysis in which per-SNP associations are measured by choosing the maximum association statistic for all genes cis to the SNP, set by to "snps". For per-gene associations, with scores maximized over all SNPs cis to genes, use "probes".
targfdrs
numeric vector of FDR levels for which enumerations are performed.
parmslist
list of numeric vectors giving thresholds for use in filtering tests using filtgen
maf.dist
numeric vector of length two giving thresholding values for MAF and cis distance for filtering association tests
validate.tab
function of one argument, assumed to be a data.table instance, that can be used to check whether filtering conditions are feasible before attempting to filter; should return TRUE if they are, FALSE otherwise.
tab
data.table instance as generated by converting a cisScores
filt
function of one argument that operates on a data.table instance to reduce the rows to a desired set; parameters of filtering task are established in the environment of filt
eqsout
matrix as output by eqsens\_dt
ylab
text string to be used to label Y axis on the left
title
text string to label top of plot
renameChisq
Some utilities fail to generate 'score' for observed association statistic, but report as 'chisq'. If TRUE and such a column name is found in dtab, setnames will be run to rename to 'score'.

Value

eqsens_dt returns a data.frame instance with enumerations of eQTL at various FDR thresholds for various settings of tuning parametersupdate_fdr_filt revises (using pifdr) the fdr field of an input data.table instance using variable score as observed value, and permuted values furnished by the variables named with permScore as leading substring

Details

The objective is to generate data for tabulation or visualization of sensitivity analyses, and the scope of sensitivity analysis can be established in various ways. This software is mostly intended as a framework.

Examples

Run this code
   ## Not run: 
#    example(cisScores) # would generate f1
#    names(f1) = NULL
#    eqsens_dt( data.table(as(f1, "data.frame")) )
#    ## End(Not run)

Run the code above in your browser using DataLab