Test whether or not the pseudotime distribution are identical within lineages between conditions
progressionTest(pseudotime, ...) # S4 method for matrix progressionTest( pseudotime, cellWeights, conditions, global = TRUE, lineages = FALSE, method = ifelse(dplyr::n_distinct(conditions) == 2, "KS", "Classifier"), thresh = ifelse(method == "Classifer", 0.05, 0.01), args_mmd = list(), args_classifier = list(), args_wass = list(), rep = 10000 ) # S4 method for SlingshotDataSet progressionTest( pseudotime, conditions, global = TRUE, lineages = FALSE, method = ifelse(dplyr::n_distinct(conditions) == 2, "KS", "Classifier"), thresh = ifelse(method == "Classifer", 0.05, 0.01), args_mmd = list(), args_classifier = list(), args_wass = list(), rep = 10000 ) # S4 method for SingleCellExperiment progressionTest( pseudotime, conditions, global = TRUE, lineages = FALSE, method = ifelse(dplyr::n_distinct(conditions) == 2, "KS", "Classifier"), thresh = ifelse(method == "Classifer", 0.05, 0.01), args_mmd = list(), args_classifier = list(), args_wass = list(), rep = 10000 ) # S4 method for PseudotimeOrdering progressionTest( pseudotime, conditions, global = TRUE, lineages = FALSE, method = ifelse(dplyr::n_distinct(conditions) == 2, "KS", "Classifier"), thresh = ifelse(method == "Classifer", 0.05, 0.01), args_mmd = list(), args_classifier = list(), args_wass = list(), rep = 10000 )
| pseudotime | Can be either a |
|---|---|
| ... | parameters including: |
| cellWeights | If |
| conditions | Either the vector of conditions, or a character indicating which column of the metadata contains this vector. |
| global | If TRUE, test for all lineages simultaneously. |
| lineages | If TRUE, test for all lineages independently. |
| method | One of "KS", "Classifier", "mmd", "wasserstein_permutation" or "Permutation" for a permutation. See details. Default to KS if there is two conditions and to "Classifier" otherwise. |
| thresh | The threshold for the KS test or Classifier test.
Ignored if |
| args_mmd | arguments passed to the mmd test. See |
| args_classifier | arguments passed to the classifier test. See |
| args_wass | arguments passed to the wasserstein permutation test. See
|
| rep | Number of permutations to run. Ignored if |
A data frame with 3 columns:
lineage for individual lineages, the lineage number. For global,
"All".
p.value the pvalue for the test at the global or lineage level
statistic for individual lineages, either the modified KS statistic
if method = "KS", or the weighted difference of means, if
method = "Permutation". For the global test, the combined Z-score.
For every lineage, we compare the pseudotimes of the cells from either conditions, using the lineage weights as observations weights.
If method = "KS", this uses the updated KS test,
see ks_test for details.
If method = "Classifier", this uses a classifier to assess if
that classifier can do better than chance on the conditions
If method = "Permutation", the difference of weighted mean
pseudotime between condition is computed, and a p-value is found by
permuting the condition labels.
If method = "mmd", this uses the mean maximum discrepancies
statistics.
The p-value at the global level can be computed in two ways. method is "KS" or
"Permutation", then the p-values are computed using stouffer's
z-score method, with the lineages weights acting as weights. Otherwise,
the test works on multivariate data and is applied on all pseudotime values.
Stouffer, S.A.; Suchman, E.A.; DeVinney, L.C.; Star, S.A.; Williams, R.M. Jr. (1949). The American Soldier, Vol.1: Adjustment during Army Life. Princeton University Press, Princeton.
data('slingshotExample', package = "slingshot") rd <- slingshotExample$rd cl <- slingshotExample$cl condition <- factor(rep(c('A','B'), length.out = nrow(rd))) condition[110:139] <- 'A' sds <- slingshot::slingshot(rd, cl) progressionTest(sds, condition)#> lineage statistic p.value #> 1 All 2.873272 0.002031221