The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
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[@]dogado.de.
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.
Health stats visible at Monitor.