Skip to contents

Calculates regulatory activities using WSUM.

Usage

run_wsum(
  mat,
  network,
  .source = source,
  .target = target,
  .mor = mor,
  .likelihood = likelihood,
  times = 100,
  seed = 42,
  sparse = TRUE,
  randomize_type = "rows",
  minsize = 5
)

Arguments

mat

Matrix to evaluate (e.g. expression matrix). Target nodes in rows and conditions in columns. rownames(mat) must have at least one intersection with the elements in network .target column.

network

Tibble or dataframe with edges and it's associated metadata.

.source

Column with source nodes.

.target

Column with target nodes.

.mor

Column with edge mode of regulation (i.e. mor).

.likelihood

Deprecated argument. Now it will always be set to 1.

times

How many permutations to do?

seed

A single value, interpreted as an integer, or NULL for random number generation.

sparse

Should the matrices used for the calculation be sparse?

randomize_type

How to randomize the expression matrix.

minsize

Integer indicating the minimum number of targets per source.

Value

A long format tibble of the enrichment scores for each source across the samples. Resulting tibble contains the following columns:

  1. statistic: Indicates which method is associated with which score.

  2. source: Source nodes of network.

  3. condition: Condition representing each column of mat.

  4. score: Regulatory activity (enrichment score).

  5. p_value: p-value for the score of the method.

Details

WSUM infers regulator activities by first multiplying each target feature by its associated weight which then are summed to an enrichment score wsum. Furthermore, permutations of random target features can be performed to obtain a null distribution that can be used to compute a z-score norm_wsum, or a corrected estimate corr_wsum by multiplying wsum by the minus log10 of the obtained empirical p-value.

See also

Other decoupleR statistics: decouple(), run_aucell(), run_fgsea(), run_gsva(), run_mdt(), run_mlm(), run_ora(), run_udt(), run_ulm(), run_viper(), run_wmean()

Examples

inputs_dir <- system.file("testdata", "inputs", package = "decoupleR")

mat <- readRDS(file.path(inputs_dir, "mat.rds"))
net <- readRDS(file.path(inputs_dir, "net.rds"))

run_wsum(mat, net, minsize=0)
#> # A tibble: 216 × 5
#>    statistic source condition score p_value
#>    <chr>     <chr>  <chr>     <dbl>   <dbl>
#>  1 corr_wsum T1     S01        40.4    0.02
#>  2 corr_wsum T1     S02        39.7    0.02
#>  3 corr_wsum T1     S03        41.0    0.02
#>  4 corr_wsum T1     S04        42.3    0.02
#>  5 corr_wsum T1     S05        38.9    0.02
#>  6 corr_wsum T1     S06        38.3    0.02
#>  7 corr_wsum T1     S07        40.0    0.02
#>  8 corr_wsum T1     S08        40.0    0.02
#>  9 corr_wsum T1     S09        41.2    0.02
#> 10 corr_wsum T1     S10        37.2    0.02
#> # ℹ 206 more rows