Perform statistical tests for scores generated using
dcScore
. Selects appropriate tests for the different methods used
in computing scores. The exact test is selected based on the scoring method
used and cannot be manually specified. Available tests include the z-test
and permutation tests. Parallel computation supported for the permutation
test.
dcTest(dcscores, emat, condition, ...)
a matrix, the result of the dcScore
function. The
results should be passed as produced by the function and not modified in
intermediate steps
a matrix, data.frame, ExpressionSet, SummarizedExperiment or
DGEList. This should be the one passed to dcScore
a numeric, (with 1's and 2's representing a binary
condition), a factor with 2 levels or a character representing 2
conditions. This should be the one passed to dcScore
see details
a matrix, of p-values (or scores in the case of DiffCoEx and EBcoexpress) representing significance of differential associations. DiffCoEx will return scores as the publication specifies direct thresholding of scores and EBcoexpress returns posterior probabilities.
Ensure that the score matrix passed to this function is the one
produced by dcScore
. Any modification to the result matrix will
cause this function to fail. This is intended as the test need to be
performed on the entire score matrix, not subsets.
The appropriate test is chosen automatically based on the scoring method used. A z-test is performed for the z-score method while no tests are performed for DiffCoEx, EBcoexpress and FTGI. Permutation tests are performed for the remainder of methods by permutation sample labels. Statistics from a permutation are pooled such that statistics from all scores are used to evaluate a single observed score.
Additional method specific parameters can be supplied to the function when
performing permutation tests. B
specifies the number of permutations
to be performed and defaults to 20.
If a cluster exists, computation in a permutation test will be performed in parallel (see examples).
x <- matrix(rnorm(60), 2, 30)
cond <- rep(1:2, 15)
scores <- dcScore(x, cond, dc.method = 'mindy')
dcTest(scores, emat = x, condition = cond)
#> Warning: executing %dopar% sequentially: no parallel backend registered
#> Loading required package: foreach
#> Loading required package: rngtools
#> 1 2
#> 1 NA 0
#> 2 0 NA
#> attr(,"call")
#> mindy.score(emat = emat, condition = condition)
#> attr(,"dc.method")
#> [1] "mindy"
#> attr(,"dc.test")
#> [1] "permutation"
if (FALSE) {
#running in parallel
num_cores = 2
cl <- parallel::makeCluster(num_cores)
doSNOW::registerDoSNOW(cl) #or doParallel
set.seed(36) #for reproducibility
dcTest(scores, emat = x, condition = cond, B = 100)
parallel::stopCluster(cl)
}