Modules defined in sets are tested for average differences in expression from the "average" gene. By using bootstraps, the between-gene covariance of terms in the hurdle model is found, and is used to adjust for coexpression between genes. We drop genes if the coefficient we are testing was not estimible in original model fit in zFit or in any of the bootstrap replicates (evidenced an NA in the bootstrap array). This might yield overly conservative inference. Since bootstrapping is a randomized procedure, the degrees of freedom of a module (and its variance parameters) might differ from run-to-run. You might try setting var_estimate='modelbased' to relax this requirement by assuming independence between genes and then using the asymptotic covariance estimates, which are deterministic, but may result in overly-generous inference.

gseaAfterBoot(zFit, boots, sets, hypothesis, control = list(n_randomize = Inf,
  var_estimate = "bootall"))

Arguments

zFit
object of class ZlmFit
boots
bootstraps of zFit
sets
list of indices of genes
hypothesis
a Hypothesis to test. Currently only one degree CoefficientHypothesis are supported.
control
list of control parameters. See details.

Value

Object of class GSEATests, containing slots tests, 4D array and bootR, the number of boostrap replicates.

<code>control</code>

control is a list with elements:

  • n_randomize, giving the number of genes to sample to approximate the non-module average expression. Set to Inf to turn off the approximation (the default).
  • var_estimate, giving the method used to estimate the variance of the modules. bootall uses the bootstrapped covariance matrices. bootdiag uses only the diagonal of the bootstrapped covariance matrix (so assuming independence across genes). modelbased assumes independence across genes and uses the variance estimated from the model.

Return Value

A 4D array is returned, with dimensions "set" (each module), "comp" ('disc'rete or 'cont'inuous), "metric" ('stat' gives the average of the coefficient, 'var' gives the variance of that average, 'dof' gives the number of genes that were actually tested in the set), "group" ('test' for the genes in test-set, "null" for all genes outside the test-set).

See also

calcZ

summary,GSEATests-method

Examples

data(vbetaFA) vb1 = subset(vbetaFA, ncells==1) vb1 = vb1[,freq(vb1)>.1][1:15,] zf = zlm(~Stim.Condition, vb1)
#> #> Done!
boots = bootVcov1(zf, 5) sets=list(A=1:5, B=3:10, C=15, D=1:5) gsea=gseaAfterBoot(zf, boots, sets, CoefficientHypothesis('Stim.ConditionUnstim')) calcZ(gsea)
#> , , metric = Z #> #> comp #> set cont disc #> A -0.9327106 -1.066283 #> B -0.4801646 -3.406370 #> C NaN -3.584276 #> D -0.9327106 -1.066283 #> #> , , metric = P #> #> comp #> set cont disc #> A 0.3855052 0.329922269 #> B 0.6533250 0.009277177 #> C NaN 0.009531795 #> D 0.3855052 0.329922269 #>
summary(gsea)
#> set cont_Z cont_P disc_Z disc_P combined_Z combined_P #> 1: C NaN NaN -3.584276 0.009531795 -2.4530273 0.04525634 #> 2: B -0.4801646 0.6533250 -3.406370 0.009277177 -1.5241897 0.17900212 #> 3: A -0.9327106 0.3855052 -1.066283 0.329922269 -0.8061226 0.44410544 #> 4: D -0.9327106 0.3855052 -1.066283 0.329922269 -0.8061226 0.44410544 #> cont_effect disc_effect combined_adj #> 1: NaN -1.4281950 0.1810254 #> 2: -0.3898317 -1.2768804 0.3580042 #> 3: -0.6142811 -0.3488222 0.4441054 #> 4: -0.6142811 -0.3488222 0.4441054