Mass Spectrometry (or CyTOF) is a single cell technology. It measures up to 50 protein markers on a single cell. The markers are antibodies labeled with stable isotopes and they might be markers of cell types or phenotypes.
CyTOF might be used to determine if there is any differences in cell abundances (type markers) or cell phenotypes (state markers) between two experimental conditions. In this package, we are proposing a tool to predict the power of a differential state test analysis.
Two packages are available on Bioconductor to perform differential state test analyses: CytoGLMM (Seiler 2020) and diffcyt (Weber 2019). These models are available in this package and their results, the adjusted p-value per marker, are used to compute the power an experiment.
In-silico CyTOF data are simulated using the following data generation process. We assumed two conditions for which one condition is the baseline (i.e. a control condition where no marker is different from the other) and the other condition contains some signals (i.e. at least one marker is differentially expressed). The parameters are defined as follow:
The cell value’s mean of each marker is drawn from a Gamma distribution: μ0, ij ∼ Γ(k, θ) where i the donor, j the marker, k the shape and θ the scale. These two last parameters are defined using the parameters provided by the user:
The cell value mean of the differentially expressed marker(s) is then multiplied by the fold change defined earlier: μ1, ij = μ0, ij ⋅ ρj.
The cell values are drawn using a Negative Binomial:
Some of these parameters might need to be estimated using previous
data or publicly available datasets. For instance, the dispersion and
mean parameters of the negative binomial distribution might be estimated
using fitdistr
from the MASS
package for each
marker.
The power is computed for the differentially expressed marker(s) (i.e. fold change different from 1). It is based on the adjusted p-values reported by the models: counting how many times the null hypothesis is correctly rejected. It is also important to note that the power returned by these computations uses the threshold of α = 0.05 as a significance level.
The shiny app is divided into two tabs: (1) the precomputed dataset tab: the power was pre-computed for multiple combinations of parameters and the user is able to search this grid of parameters; (2) the personalized dataset tab: the data and the power is computed on request based on the parameters chosen by the user.
This panel allows the user to search a grid of parameters that have been pre-computed. The value “NA” displays a power curve for the different values of this parameter.
The available parameters that the user can choose from are the following:
This panel allows the user to compute the power for a chosen set of parameters. The data are generated on request and it takes some time to get the results, especially if the user would like to perform a high number of simulations with a high number of cells.
The available parameters that the user can choose from are the following:
sessionInfo()
#> R version 4.4.2 (2024-10-31)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.1 LTS
#>
#> Matrix products: default
#> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
#>
#> locale:
#> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
#> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=C
#> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
#> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
#> [9] LC_ADDRESS=C LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#>
#> time zone: Etc/UTC
#> tzcode source: system (glibc)
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] BiocStyle_2.35.0
#>
#> loaded via a namespace (and not attached):
#> [1] digest_0.6.37 R6_2.5.1 fastmap_1.2.0
#> [4] xfun_0.49 maketools_1.3.1 cachem_1.1.0
#> [7] knitr_1.49 htmltools_0.5.8.1 rmarkdown_2.29
#> [10] buildtools_1.0.0 lifecycle_1.0.4 cli_3.6.3
#> [13] sass_0.4.9 jquerylib_0.1.4 compiler_4.4.2
#> [16] sys_3.4.3 tools_4.4.2 evaluate_1.0.1
#> [19] bslib_0.8.0 yaml_2.3.10 BiocManager_1.30.25
#> [22] jsonlite_1.8.9 rlang_1.1.4