Calculates regulatory activities using FGSEA.
Usage
run_fgsea(
mat,
network,
.source = source,
.target = target,
times = 100,
nproc = availableCores(),
seed = 42,
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 innetwork
.target
column.- network
Tibble or dataframe with edges and it's associated metadata.
- .source
Column with source nodes.
- .target
Column with target nodes.
- times
How many permutations to do?
- nproc
Number of cores to use for computation.
- seed
A single value, interpreted as an integer, or NULL.
- minsize
Integer indicating the minimum number of targets per source.
- ...
Arguments passed on to
fgsea::fgseaMultilevel
sampleSize
The size of a random set of genes which in turn has size = pathwaySize
minSize
Minimal size of a gene set to test. All pathways below the threshold are excluded.
maxSize
Maximal size of a gene set to test. All pathways above the threshold are excluded.
eps
This parameter sets the boundary for calculating the p value.
scoreType
This parameter defines the GSEA score type. Possible options are ("std", "pos", "neg"). By default ("std") the enrichment score is computed as in the original GSEA. The "pos" and "neg" score types are intended to be used for one-tailed tests (i.e. when one is interested only in positive ("pos") or negateive ("neg") enrichment).
gseaParam
GSEA parameter value, all gene-level statis are raised to the power of `gseaParam` before calculation of GSEA enrichment scores.
BPPARAM
Parallelization parameter used in bplapply. Can be used to specify cluster to run. If not initialized explicitly or by setting `nproc` default value `bpparam()` is used.
absEps
deprecated, use `eps` parameter instead
Value
A long format tibble of the enrichment scores for each source across the samples. Resulting tibble contains the following columns:
statistic
: Indicates which method is associated with which score.source
: Source nodes ofnetwork
.condition
: Condition representing each column ofmat
.score
: Regulatory activity (enrichment score).
Details
GSEA (Aravind et al., 2005) starts by transforming the input molecular
readouts in mat to ranks for each sample. Then, an enrichment score
fgsea
is calculated by walking down the list of features, increasing
a running-sum statistic when a feature in the target feature set is
encountered and decreasing it when it is not. The final score is the maximum
deviation from zero encountered in the random walk. Finally, a normalized
score norm_fgsea
, can be obtained by computing the z-score of the estimate
compared to a null distribution obtained from N random permutations. The used
implementation is taken from the package fgsea
(Korotkevich et al., 2021).
Aravind S. et al. (2005) Gene set enrichment analysis: A knowledge-based approach for interpreting genome-wide expression profiles. PNAS. 102, 43.
Korotkevich G. et al. (2021) Fast gene set enrichment analysis. bioRxiv. DOI: https://doi.org/10.1101/060012.
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_fgsea(mat, net, minsize=0, nproc=1)
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#>
#> # A tibble: 144 × 5
#> statistic source condition score p_value
#> <chr> <chr> <chr> <dbl> <dbl>
#> 1 fgsea T1 S01 0.889 0.0755
#> 2 norm_fgsea T1 S01 1.24 0.0755
#> 3 fgsea T2 S01 -0.667 0.548
#> 4 norm_fgsea T2 S01 -1.11 0.548
#> 5 fgsea T3 S01 -0.75 0.01
#> 6 norm_fgsea T3 S01 Inf 0.01
#> 7 fgsea T1 S02 0.889 0.0764
#> 8 norm_fgsea T1 S02 1.29 0.0764
#> 9 fgsea T2 S02 0 0.977
#> 10 norm_fgsea T2 S02 0 0.977
#> # ℹ 134 more rows