The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
eps outside [0, 1] is rejected (it
returned p = eps > 1), an all-zero ranking is an error
instead of a frame of ES = NaN, a gene set covering the
whole ranked list is excluded as fgsea does, and gene sets dropped for
having no estimable p-value are counted instead of vanishing
(2026-10-27)nPermSimple below 10 no longer turns every
pathway NA; default results are unchanged (2026-10-27)qvalueCutoff is applied row by row:
one unestimable Storey q-value used to disable the cutoff for the whole
table, so qvalueCutoff = 0.2 returned terms with q = 0.9
(clusterProfiler#710, #584, #614, #332). Related: a failed estimate is
now a message() rather than a warning(), and
NA pvalue/p.adjust no longer
yield all-NA rows (2026-10-27)nPerm reports what ran). Not reachable from ordinary
input, so this is hardening (2026-10-27)DESize, UniverseSize and
SetSize as columns, so
GeneRatio == Count/DESize and friends are checkable from
the table (clusterProfiler#703, #523, #618, #723) (2026-10-27)bayes_enrich(): default false_negative is
0.9, not 0.1, which drove every posterior to 0 on real KEGG data. Also
rejects burnin + thin > n_iter and warns when no
candidate reaches posterior_cutoff (2026-10-26)dsea() and dsea_scores(): design-aware
GSEA and per-sample ssGSEA scores, with the contrast never guessed;
as_ranked() and as_genes() adapt
DESeq2 objects for it (2026-10-18)filter_gene_sets() is vectorized and
ora_gson() skips the background intersection when the
background was not restricted: 14,209 GO BP sets 14.0 s -> 0.9 s,
single enrichGO() 19 s -> 4.2 s, 13-cluster
compareCluster() 381 s -> 197 s. ora()
returns geneID in input order instead of hash-set order
(2026-10-18)camera/roast/fry engines, and the
design note for the never-implemented dsea_nb set test
(2026-10-18)method = "sample" / "permute") for
the default two-sided (scoreType = "std") calculation: the
numerator counted only same-sign permutations while the denominator
divided by all of them, so p-values were too small under a symmetric
null. The denominator now counts only permutations on the same side of
zero as the observed ES, following the main fgsea convention
(2026-10-06, closes #3)RcppEigen sparse-matrix interface in
rwr_eigen_cpp() from MappedSparseMatrix to
Map<SparseMatrix> for Eigen 5 compatibility
(2026-10-06, PR #2)reportNA argument to gsea_gson() so
pathways with NA multilevel p-values can be retained
(2026-10-04, closes DOSE#88)rank = 0L
sentinel for zero-overlap, N_R == 0 and non-finite
running-score paths; align as_gseaResult() with the same
contract and document the gsea_leading_edge_details()
return value (2026-10-04–2026-10-05, closes DOSE#46)qvalue as NA when estimation fails
instead of falling back to p.adjust, and document the
pvalue / p.adjust / qvalue
semantics in as_enrichResult() and
as_gseaResult() (2026-10-05, addresses DOSE#24)oddsRatio column
(Fisher’s exact 2x2 odds ratio, next to FoldEnrichment).
FoldEnrichment is a ratio of proportions; the odds ratio is
the effect size the hypergeometric test is built on. It is the plain
cross-product odds ratio and differs slightly from
fisher.test()$estimate, which reports the conditional MLE
(2026-09-22)missing value where TRUE/FALSE needed.
gsea_gson() checked is.unsorted() before
validating its input, and a bare if (NA) stopped there, so
an NA / NaN / Inf never reached
the finiteness check that explains the problem.
gseaScores() now validates too and returns NA
rather than aborting when the running score is not finite
(2026-09-22)as_enrichResult() /
as_gseaResult() to build ‘enrichit’ result objects from
external result tables (enrichr, g:Profiler, WebGestalt, fgsea, …), with
canonical column aliases, ID de-duplication, p-value validation, derived
statistics (RichFactor / FoldEnrichment /
zScore) when the query and background are known, and
missing GSEA detail columns recomputed via
gsea_leading_edge_details() (2026-09-21)no package '<...>' was found warnings when no input
gene can be mapped (2026-09-17). check_gene_id() routed its
notices through yulab.utils::yulab_msg(), which builds the
package citation banner and expects a package name, so it
called packageDescription() on the notice text itself and
emitted three such warnings per run. The notices now go through
message(), yulab.utils::yulab_msg() is no
longer imported, and the sample of expected gene IDs no longer contains
NA for sets with fewer than 100 genessignificance = "whole_pipeline" rebuilds the null of the
enrichment score by permuting gene labels, re-diffusing with RWR and
recomputing the score; significance = "internal" keeps the
earlier formulationsignificance, nPerm, seed
and exponent to nsea() and
nsea_gson(), and expose pvalueCutoff /
pAdjustMethod in nsea_gson().
nPerm (default 1000) sets the number of whole-pipeline
permutations with a smallest estimable p-value of
1/(nPerm + 1); seed makes the null
reproducible; nsea_gson() now applies
pvalueCutoff to both the raw and the adjusted p-value,
matching gsea_gson()prepare_network() to accept a
mechgraph object as well as an edge-list
data.frame / matrix or a sparse matrix. The
edges table must have from / to
columns; a numeric score or weight column
supplies the edge weight, otherwise unit weights are used. The class is
duck-typed by name, so enrichit does not hard-depend on the
mechgraph packagegsea_es_all_cpp() that computes
the classic weighted enrichment score for many gene sets at once from
the hit positions only, cheap enough to evaluate on every whole-pipeline
permutation.nsea_diffuse()) and TF-IDF specificity weighting
(.nsea_specific_weights()); in signed mode
positive and negative seeds propagate in a single linear solve. Robust
node-name extraction guards against Matrix accessor quirks
on serialized sparse matricesgsea_gson() p-value filtering with historical
clusterProfiler/DOSE behaviour: pvalueCutoff now requires
both the raw and the adjusted p-value to pass (previously only the raw
p-value was filtered), restoring significant pathway counts comparable
to clusterProfiler <= 4.18.x (2026-08-14)seed interface of GSEA
(2026-08-14). gsea() treats seed = TRUE as a
fixed default seed (consistent with the C++ default) instead of silently
coercing it to the integer 1; gsea_gson()
exposes an explicit seed argument;
seed = FALSE (default) draws a fresh seed from R’s RNG on
each run, while a numeric seed (or set.seed() before the
call) makes the result reproducible. Regression tests assert identical
results across runs with a fixed seedgsea() to intersect gene sets with
names(geneList) before applying minGSSize /
maxGSSize, so the size filter constrains the actual overlap
rather than the raw gene-set size; also guard gsea_gson()
against NA pvalue rows leaking into the result table
(2026-08-04, clusterProfiler#824)aggregate_enrichment() for Late Fusion over several
enrichResult / gseaResult objects;
correlation-aware p-value aggregation (method = "brown")
and method = "weighted_mean" for signed statistics with
layer-specific weights in aggregate_omics();
mnsea() / mnsea_gson() for multi-layer
network-based enrichment, with
prepare_multilayer_network(),
propagate_multilayer() and
collapse_multilayer_scores(); mnseaResult to
store diffusion results, collapsed scores, layer weights and cached
explanation tables; get_mnsea_contribution() and
extract_mnsea_subnetwork() for explanation-ready
extraction. Provides the engine layer for
clusterProfiler::mnseGO(), mnseKEGG(),
mnseMKEGG() and mnseWP()aggregate_omics(), harmonize_ids() and
select_features_for_ora(), with a
conflict_policy argument ("keep_all" /
"strict" / "penalty") for directional
conflicts in signed statistics; early fusion before ora(),
gsea() and nsea() through a decoupled
aggregation layerget_omics_contribution() and
classify_omics_pattern() for multi-omics contribution
tracingweight
argument in ora(), ora_gson(),
gsea() and gsea_gson(); Weighted ORA uses
Wallenius’ noncentral hypergeometric distribution via
BiasedUrn, Weighted GSEA fuses external weights with the
ranked statisticsnsea() and nsea_gson() based on Random Walk
with Restart, with mode = "signed" for bidirectional
propagation; prepare_network() for parsing and normalizing
edge lists or sparse matrices; fast RWR via RcppEigen
sparse multiplication; a zero-dependency integration strategy for
diffusion followed by multilevel GSEA. Provides the engine layer for
clusterProfiler::nseGO(), nseKEGG(),
nseMKEGG() and nseWP()fgsea::prepareStats() to reduce drift against the long-used
fgsea backend (2026-06-22): replace the fixed * 1e6 scaling
in prepare_gsea_inputs() with fgsea-style total-weight
normalization and integer rounding, with a regression test against
fgsea::fgseaMultilevel()ora_gson() before
multiple-testing correction (2026-06-22): Count = 0 rows
stay out of p.adjust / qvalue so ORA results
match historical DOSE / clusterProfiler
behaviour, resolving inflated adjustment in enricher(),
enrichKEGG() and compareCluster()
(clusterProfiler#821, #819)bayes_enrich() estimates posterior probabilities of active
explanatory terms from enrichResult objects,
bayes_summary() returns them ordered by posterior.
Candidate term spaces may come from top ranked rows, significant
as.data.frame() rows, all x@result rows, or
explicit term IDs. The output stays an enrichResult with
posterior, posterior odds, Bayesian rank, active flag and covered-gene
columnsTERM2NAME() maps
gsid to term names, TERMID2EXTID() returns
gene vectors in the requested term order, and missing terms return
character(0). Resolves malformed Description.*
columns in clusterProfiler::groupGO()gsea_gson() (2026-03-10): force sorting of
geneList so the result object is consistent with the input,
which resolves incorrect metric/colour alignment in
enrichplot::gseaplot()calculate_qvalue() (2026-02-02):
handle a missing qvalue package, retry with different
parameters, and handle invalid p-values (NA, infinite, out
of range)ora_gson() (2026-02-02), warning
on values outside [0, 1]phyper instead of summing dhyper for
better performance and precision in the C++ ORA p-value calculation
(2026-02-02)setReadable() converts gene IDs to any type, not only
SYMBOL (2026-01-21)organism slot to
compareClusterResult (2026-01-20)gsea_gson() and ora_gson()
(2026-01-11): fill missing columns (e.g. qvalues) with NA,
and handle NA or duplicate gene-set IDs in result
rownamescalculate_qvalue() returns NA instead of
NULL when qvalue estimation fails (2026-01-11)ora_gson() output columns (2026-01-11)gseaScores() to calculate GSEA scores for a single
gene set (2025-12-07)ora_gson() and gsea_gson() as
replacements for enricher_internal and
GSEA_internal (2025-12-05)DOSE
to enrichit (2025-12-05), to extend this package as the
base package for the clusterProfiler familygsea(): Gene Set Enrichment Analysis using C++ via Rcpp
(2025-12-04)ora(): fast Over-Representation Analysis using C++ via
Rcpp (2025-12-03)These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.