CDEnrich is an R package for enrichment analysis of curated cell death pathways. It provides gene sets for multiple forms of regulated cell death, including apoptosis, ferroptosis, pyroptosis, necroptosis, cuproptosis, and disulfidptosis.
The package supports over-representation analysis (ORA), gene set enrichment analysis (GSEA), single-sample GSEA (ssGSEA), multi-group comparison, and visualization of enrichment results.
This vignette demonstrates a complete workflow using built-in demonstration data.
Key Features
CDEnrich and its dependencies should be installed before
running this vignette. The current development version can be installed
from GitHub:
After acceptance into Bioconductor, the package will be available
through BiocManager:
Load the package as follows:
## [1] '0.99.1'
CDEnrich provides curated gene sets representing 27 cell death types. The gene sets were compiled from published literature, PMID-supported annotations, and GeneCards.
The 27 cell death types are organized into two source categories:
PMID-supported literature and GeneCards (13 types): Disulfidptosis, Ferroptosis, Cuproptosis, Apoptosis, Pyroptosis, Autophagy, Necroptosis, NETosis, Immunogenic Cell Death, Anoikis, Phagocytosis, Efferocytosis, and PANoptosis.
GeneCards (14 types): Parthanatos, Entotic cell death, Lysosome-dependent cell death, Alkaliptosis, Oxeiptosis, Paraptosis, Methuosis, Intrinsic apoptosis, Extrinsic apoptosis, Mitochondrial permeability transition (MPT)-driven necrosis, Autosis (autophagic cell death), Mitotic death, Accidental cell death, and paraptosis-like death.
GeneCards-based gene sets should be interpreted as exploratory resources, particularly when no PMID is available in the package metadata.
The curated gene sets can be loaded with:
## [1] 160
## [1] "Accidental cell death_GeneCards" "Alkaliptosis_GeneCards"
## [3] "Anoikis_BLCA_Prognosis_37275895" "Anoikis_CM_Prognosis_40721013"
## [5] "Anoikis_COAD_Prognosis_39850875" "Anoikis_CRC_Prognosis_40820175"
The returned object is a named list in which each element is a character vector of gene symbols. The number of gene sets may differ from 27 because one cell death type can contain multiple gene sets.
The size of each gene set can be inspected with:
gene_set_summary <- data.frame(
gene_set = names(gene_sets),
n_genes = lengths(gene_sets),
row.names = NULL
)
head(gene_set_summary)## gene_set n_genes
## 1 Accidental cell death_GeneCards 540
## 2 Alkaliptosis_GeneCards 3
## 3 Anoikis_BLCA_Prognosis_37275895 9
## 4 Anoikis_CM_Prognosis_40721013 11
## 5 Anoikis_COAD_Prognosis_39850875 9
## 6 Anoikis_CRC_Prognosis_40820175 10
Gene set names may include the cell death type, source, and PMID. For example:
For selected cell death types, CDEnrich provides a
recommended representative gene set:
## Type PMID IF Cite Pathway Source
## 2 Ferroptosis 36305834 15 263 Ferroptosis_FerrDb V2(36305834)
## Description
## 2 Curated from the FerrDb V2 database (a collection of ferroptosis-related genes from journal articles published in 2020-2021, plus externally added genes).
## Notes
## 2 FerrDb was updated to V3 in January 2026 (PMID: 41171133).
## Type PMID IF Cite Pathway
## 1 Disulfidptosis 36747082 22.7 642 Disulfidptosis_Up_36747082
## Source
## 1 Supplementary-table1
## Description
## 1 Genes were experimentally identified; from the seminal study defining this death type.
## Notes
## 1
The returned information may include the cell death type, pathway
name, PMID, source, and description. If no representative pathway is
available, the function returns NULL.
## NULL
All enrichment functions share the same term_select
logic:
Omit term_select to use all curated gene sets:
Provide a cell death type to use its recommended gene set:
Set use_recommended = FALSE to use all gene sets
associated with a cell death type:
An exact gene set name can be supplied. The name must match the
output of load_cell_death_genes() exactly:
ora_exact <- celldeath_enrich(
deg = demo_deg,
universe = demo_all_genes,
term_select = "Ferroptosis_FerrDb V2(36305834)"
)The same pathway-selection rules apply to GSEA, ssGSEA, and multi-group analysis.
CDEnrich provides three main enrichment workflows:
The package also supports multi-group ORA and GSEA, differential analysis of ssGSEA scores, and visualization of enrichment results.
The general workflow is:
Input data
-> Select cell death gene sets
-> Run ORA, GSEA, or ssGSEA
-> Compare groups when appropriate
-> Visualize and interpret the results
The main analysis functions are:
| Analysis | Function |
|---|---|
| Single-group ORA | celldeath_enrich() |
| Multi-group ORA | celldeath_compare_enrich() |
| Single-group GSEA | celldeath_gsea() |
| Multi-group GSEA | celldeath_gsea_multiple() |
| ssGSEA | celldeath_ssgsea() |
| Differential ssGSEA | celldeath_ssgsea_diff() |
The main input formats required by each analysis function are summarized below.
celldeath_enrich() accepts a character vector of gene
symbols.
Input requirements:
deg: A character vector of gene symbols.universe: An optional character vector of background
genes.celldeath_gsea() requires a named numeric vector sorted
in decreasing order.
Input requirements:
celldeath_compare_enrich() accepts a named list of gene
vectors.
Input requirements:
celldeath_gsea_multiple() accepts a named list of ranked
gene vectors.
Input requirements:
celldeath_ssgsea() accepts a numeric matrix or data
frame with genes in rows and samples in columns.
Input requirements:
group vector must contain one label for
each sample.The following example performs global ORA using all curated gene sets:
data("demo_deg", package = "CDEnrich")
data("demo_all_genes", package = "CDEnrich")
ora_global <- celldeath_enrich(
deg = demo_deg,
universe = demo_all_genes
)
ora_global## #
## # over-representation test
## #
## #...@organism unknown
## #...@ontology unknown
## #...@keytype unknown
## #...@gene chr [1:100] "RPL8" "IREB2" "ATP5MC3" "CS" "EMC2" "ACSF2" "NOX1" "CYBB" ...
## #...pvalues adjusted by 'BH' with cutoff < 0.05
## #...72 enriched terms found
## 'data.frame': 72 obs. of 13 variables:
## $ ID : chr "Ferroptosis_FerrDb V2(36305834)" "Intrinsic apoptosis_GeneCards" "Mitotic death_GeneCards" "Ferroptosis_Pan Cancer_37968457" ...
## $ Description : chr "Ferroptosis_FerrDb V2(36305834)" "Intrinsic apoptosis_GeneCards" "Mitotic death_GeneCards" "Ferroptosis_Pan Cancer_37968457" ...
## $ GeneRatio : chr "100/100" "87/100" "80/100" "64/100" ...
## $ BgRatio : chr "486/3486" "406/3486" "343/3486" "252/3486" ...
## $ RichFactor : num 0.206 0.214 0.233 0.254 0.254 ...
## $ FoldEnrichment: num 7.17 7.47 8.13 8.85 8.86 ...
## $ oddsRatio : num Inf 64.3 47.5 30.2 29.5 ...
## $ zScore : num 25.2 23.8 23.9 22.2 22.1 ...
## $ pvalue : num 1.96e-90 1.62e-70 3.31e-65 7.01e-51 6.75e-50 ...
## $ p.adjust : num 1.71e-88 7.05e-69 9.61e-64 1.53e-49 1.18e-48 ...
## $ qvalue : num 3.10e-89 1.28e-69 1.74e-64 2.77e-50 2.13e-49 ...
## $ geneID : chr "ALOX15/PIK3CA/ATG5/MIOX/PRKAA1/VDAC2/ACVR1B/DPP4/GABARAPL1/TF/BAP1/ATG13/NCOA4/ATG16L1/MAPK8/EGFR/EMC2/TFRC/GLS"| __truncated__ "ALOX15/PIK3CA/ATG5/PRKAA1/VDAC2/ACVR1B/DPP4/GABARAPL1/TF/BAP1/ATG13/NCOA4/ATG16L1/MAPK8/EGFR/TFRC/MAPK14/SAT1/G"| __truncated__ "ALOX15/PIK3CA/ATG5/PRKAA1/VDAC2/ACVR1B/DPP4/GABARAPL1/TF/BAP1/ATG13/ATG16L1/MAPK8/EGFR/EMC2/TFRC/MAPK14/SAT1/GA"| __truncated__ "MIOX/PRKAA1/ACVR1B/DPP4/GABARAPL1/ATG13/ATG16L1/MAPK8/EGFR/EMC2/SAT1/GABARAPL2/ABCC1/ULK1/CARS1/IDH1/FLT3/ATG3/"| __truncated__ ...
## $ Count : int 100 87 80 64 63 51 33 20 24 17 ...
## #...Citation
A bubble plot can be used to visualize the enriched pathways:
A targeted analysis can be performed by specifying a cell death type. The recommended representative gene set is selected automatically:
ora_ferroptosis <- celldeath_enrich(
deg = demo_deg,
universe = demo_all_genes,
term_select = "Ferroptosis"
)
ora_ferroptosis## #
## # over-representation test
## #
## #...@organism unknown
## #...@ontology unknown
## #...@keytype unknown
## #...@gene chr [1:100] "RPL8" "IREB2" "ATP5MC3" "CS" "EMC2" "ACSF2" "NOX1" "CYBB" ...
## #...pvalues adjusted by 'BH' with cutoff < 0.05
## #...1 enriched terms found
## 'data.frame': 1 obs. of 13 variables:
## $ ID : chr "Ferroptosis_FerrDb V2(36305834)"
## $ Description : chr "Ferroptosis_FerrDb V2(36305834)"
## $ GeneRatio : chr "100/100"
## $ BgRatio : chr "486/3486"
## $ RichFactor : num 0.206
## $ FoldEnrichment: num 7.17
## $ oddsRatio : num Inf
## $ zScore : num 25.2
## $ pvalue : num 1.96e-90
## $ p.adjust : num 1.96e-90
## $ qvalue : num NA
## $ geneID : chr "ALOX15/PIK3CA/ATG5/MIOX/PRKAA1/VDAC2/ACVR1B/DPP4/GABARAPL1/TF/BAP1/ATG13/NCOA4/ATG16L1/MAPK8/EGFR/EMC2/TFRC/GLS"| __truncated__
## $ Count : int 100
## #...Citation
The universe argument should represent the genes that
were available for detection or testing in the original experiment.
The targeted enrichment result can be visualized with
plot_death_enrich_targeted():
This plot provides a compact visualization for a targeted analysis containing a single representative pathway.
The following example performs GSEA using a built-in ranked gene list:
data("demo_rank_apop", package = "CDEnrich")
apoptosis_id <- get_representative_pathway("Apoptosis")$Pathway
gsea_global <- celldeath_gsea(
geneList = demo_rank_apop,
pvalueCutoff = 0.05
)
gsea_global## #
## # Gene Set Enrichment Analysis
## #
## #...@organism unknown
## #...@setType unknown
## #...@keytype unknown
## #...@geneList Named num [1:3146] 8 7.97 7.93 7.9 7.86 ...
## - attr(*, "names")= chr [1:3146] "TP53" "TERT" "PTCH1" "MYC" ...
## #...nPerm 1000
## #...pvalues adjusted by 'BH' with cutoff < 0.05
## #...27 enriched terms found
## 'data.frame': 27 obs. of 12 variables:
## $ ID : chr "Apoptosis_Pan Cancer_37968457" "Intrinsic apoptosis_GeneCards" "Mitotic death_GeneCards" "Extrinsic apoptosis_GeneCards" ...
## $ Description : chr "Apoptosis_Pan Cancer_37968457" "Intrinsic apoptosis_GeneCards" "Mitotic death_GeneCards" "Extrinsic apoptosis_GeneCards" ...
## $ setSize : int 146 136 124 95 93 56 41 40 38 39 ...
## $ enrichmentScore: num 0.998 0.996 0.992 0.983 0.982 ...
## $ NES : num 3.26 3.24 3.23 3.1 3.07 ...
## $ pvalue : num 1e-10 1e-10 1e-10 1e-10 1e-10 ...
## $ p.adjust : num 1.08e-10 1.08e-10 1.08e-10 1.08e-10 1.08e-10 1.08e-10 1.08e-10 1.08e-10 1.08e-10 1.08e-10 ...
## $ qvalue : num NA NA NA NA NA NA NA NA NA NA ...
## $ rank : int 152 149 148 147 148 135 137 132 125 147 ...
## $ leading_edge : chr "tags=100%, list=5%, signal=100%" "tags=100%, list=5%, signal=100%" "tags=100%, list=5%, signal=99%" "tags=100%, list=5%, signal=98%" ...
## $ core_enrichment: chr "TP53/TERT/PTCH1/MYC/VIM/BCL2/MAPK1/TNF/DNAH8/EGFR/FAS/GSN/RAF1/CASP3/CCND1/JAK2/AR/TUBB/NDE1/GLI1/CYCS/SALL4/MD"| __truncated__ "TP53/TERT/PTCH1/MYC/VIM/BCL2/MAPK1/TNF/DNAH8/EGFR/FAS/GSN/RAF1/CASP3/CCND1/JAK2/AR/TUBB/NDE1/GLI1/CYCS/SALL4/MD"| __truncated__ "TP53/TERT/PTCH1/MYC/VIM/BCL2/MAPK1/TNF/DNAH8/EGFR/FAS/GSN/RAF1/CASP3/CCND1/JAK2/AR/TUBB/NDE1/GLI1/CYCS/SALL4/MD"| __truncated__ "TP53/TERT/MYC/VIM/BCL2/MAPK1/TNF/DNAH8/EGFR/FAS/GSN/RAF1/CASP3/CCND1/JAK2/AR/TUBB/GLI1/CYCS/MDM2/AIFM1/CAV1/EDN"| __truncated__ ...
## $ log2err : num NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
## #...Citation
The enrichment profile of the representative apoptosis pathway can be visualized with:
A targeted GSEA can be performed using the representative apoptosis gene set:
gsea_apoptosis <- celldeath_gsea(
geneList = demo_rank_apop,
term_select = apoptosis_id,
pvalueCutoff = 0.05
)
gsea_apoptosis## #
## # Gene Set Enrichment Analysis
## #
## #...@organism unknown
## #...@setType unknown
## #...@keytype unknown
## #...@geneList Named num [1:3146] 8 7.97 7.93 7.9 7.86 ...
## - attr(*, "names")= chr [1:3146] "TP53" "TERT" "PTCH1" "MYC" ...
## #...nPerm 1000
## #...pvalues adjusted by 'BH' with cutoff < 0.05
## #...1 enriched terms found
## 'data.frame': 1 obs. of 12 variables:
## $ ID : chr "Apoptosis_Pan Cancer_37968457"
## $ Description : chr "Apoptosis_Pan Cancer_37968457"
## $ setSize : int 146
## $ enrichmentScore: num 0.998
## $ NES : num 3.26
## $ pvalue : num 1e-10
## $ p.adjust : num 1e-10
## $ qvalue : num NA
## $ rank : int 152
## $ leading_edge : chr "tags=100%, list=5%, signal=100%"
## $ core_enrichment: chr "TP53/TERT/PTCH1/MYC/VIM/BCL2/MAPK1/TNF/DNAH8/EGFR/FAS/GSN/RAF1/CASP3/CCND1/JAK2/AR/TUBB/NDE1/GLI1/CYCS/SALL4/MD"| __truncated__
## $ log2err : num NaN
## #...Citation
The demonstration ranking list contains a strong apoptosis signal.
Depending on the installed version of fgsea, very small
p-values may be reported.
Multi-group ORA requires a named list of gene vectors:
data("demo_deg_list", package = "CDEnrich")
data("demo_all_genes", package = "CDEnrich")
compare_ora <- celldeath_compare_enrich(
deg_list_list = demo_deg_list,
universe = demo_all_genes,
pvalueCutoff = 0.05,
qvalueCutoff = 0.2,
minGSSize = 3
)
compare_ora## #
## # Result of Comparing 2 gene clusters
## #
## #.. @fun gene
## #.. @geneClusters List of 2
## $ Control : chr [1:15] "RPL8" "IREB2" "ATP5MC3" "CS" ...
## $ Treatment: chr [1:100] "RPL8" "IREB2" "ATP5MC3" "CS" ...
## - attr(*, "split_type")= chr "data.frame"
## - attr(*, "split_labels")='data.frame': 2 obs. of 1 variable:
## ..$ group: chr [1:2] "Control" "Treatment"
## #...Result 'data.frame': 86 obs. of 15 variables:
## $ Cluster : Factor w/ 2 levels "Control","Treatment": 1 1 1 1 1 1 1 1 1 1 ...
## $ group : chr "Control" "Control" "Control" "Control" ...
## $ ID : chr "Ferroptosis_FerrDb V2(36305834)" "Mitotic death_GeneCards" "Ferroptosis_Pan Cancer_37968457" "Intrinsic apoptosis_GeneCards" ...
## $ Description : chr "Ferroptosis_FerrDb V2(36305834)" "Mitotic death_GeneCards" "Ferroptosis_Pan Cancer_37968457" "Intrinsic apoptosis_GeneCards" ...
## $ GeneRatio : chr "15/15" "12/15" "10/15" "11/15" ...
## $ BgRatio : chr "486/3486" "343/3486" "252/3486" "406/3486" ...
## $ RichFactor : num 0.0309 0.035 0.0397 0.0271 0.1091 ...
## $ FoldEnrichment: num 7.17 8.13 9.22 6.3 25.35 ...
## $ oddsRatio : num Inf 37.9 26.7 21.4 46.6 ...
## $ zScore : num 9.64 9.14 8.91 7.46 11.97 ...
## $ pvalue : num 1.21e-13 2.38e-10 7.14e-09 4.17e-08 5.24e-08 ...
## $ p.adjust : num 4.12e-12 4.05e-09 8.09e-08 3.54e-07 3.56e-07 ...
## $ qvalue : num 2.04e-12 2.01e-09 4.01e-08 1.75e-07 1.77e-07 ...
## $ geneID : chr "NOX1/EMC2/ACSF2/CYBB/DUOX2/G6PD/NOX4/IREB2/NOX3/ATP5MC3/CS/PGD/NOX5/RPL8/DUOX1" "NOX1/EMC2/CYBB/DUOX2/G6PD/NOX4/IREB2/ATP5MC3/CS/PGD/RPL8/DUOX1" "NOX1/EMC2/CYBB/DUOX2/G6PD/NOX3/CS/PGD/NOX5/DUOX1" "NOX1/CYBB/DUOX2/G6PD/NOX4/IREB2/NOX3/CS/PGD/RPL8/DUOX1" ...
## $ Count : int 15 12 10 11 6 2 4 2 3 2 ...
## #.. number of enriched terms found for each gene cluster:
## #.. Control: 14
## #.. Treatment: 72
## #
## #...Citation
## T Wu, E Hu, S Xu, M Chen, P Guo, Z Dai, T Feng, L Zhou,
## W Tang, L Zhan, X Fu, S Liu, X Bo, and G Yu.
## clusterProfiler 4.0: A universal enrichment tool for interpreting omics data.
## The Innovation. 2021, 2(3):100141
The results can be visualized with a comparative heatmap:
A targeted comparison can be performed by specifying a cell death type:
compare_ora_ferroptosis <- celldeath_compare_enrich(
deg_list_list = demo_deg_list,
universe = demo_all_genes,
term_select = "Ferroptosis",
pvalueCutoff = 0.05,
qvalueCutoff = 0.2,
minGSSize = 3
)
compare_ora_ferroptosis## #
## # Result of Comparing 2 gene clusters
## #
## #.. @fun gene
## #.. @geneClusters List of 2
## $ Control : chr [1:15] "RPL8" "IREB2" "ATP5MC3" "CS" ...
## $ Treatment: chr [1:100] "RPL8" "IREB2" "ATP5MC3" "CS" ...
## - attr(*, "split_type")= chr "data.frame"
## - attr(*, "split_labels")='data.frame': 2 obs. of 1 variable:
## ..$ group: chr [1:2] "Control" "Treatment"
## #...Result 'data.frame': 2 obs. of 15 variables:
## $ Cluster : Factor w/ 2 levels "Control","Treatment": 1 2
## $ group : chr "Control" "Treatment"
## $ ID : chr "Ferroptosis_FerrDb V2(36305834)" "Ferroptosis_FerrDb V2(36305834)"
## $ Description : chr "Ferroptosis_FerrDb V2(36305834)" "Ferroptosis_FerrDb V2(36305834)"
## $ GeneRatio : chr "15/15" "100/100"
## $ BgRatio : chr "486/3486" "486/3486"
## $ RichFactor : num 0.0309 0.2058
## $ FoldEnrichment: num 7.17 7.17
## $ oddsRatio : num Inf Inf
## $ zScore : num 9.64 25.21
## $ pvalue : num 1.21e-13 1.96e-90
## $ p.adjust : num 1.21e-13 1.96e-90
## $ qvalue : num NA NA
## $ geneID : chr "NOX1/EMC2/ACSF2/CYBB/DUOX2/G6PD/NOX4/IREB2/NOX3/ATP5MC3/CS/PGD/NOX5/RPL8/DUOX1" "ALOX15/PIK3CA/ATG5/MIOX/PRKAA1/VDAC2/ACVR1B/DPP4/GABARAPL1/TF/BAP1/ATG13/NCOA4/ATG16L1/MAPK8/EGFR/EMC2/TFRC/GLS"| __truncated__
## $ Count : int 15 100
## #.. number of enriched terms found for each gene cluster:
## #.. Control: 1
## #.. Treatment: 1
## #
## #...Citation
## T Wu, E Hu, S Xu, M Chen, P Guo, Z Dai, T Feng, L Zhou,
## W Tang, L Zhan, X Fu, S Liu, X Bo, and G Yu.
## clusterProfiler 4.0: A universal enrichment tool for interpreting omics data.
## The Innovation. 2021, 2(3):100141
Multi-group GSEA requires a named list of ranked gene vectors:
data("demo_rank_apop_list", package = "CDEnrich")
multi_gsea <- celldeath_gsea_multiple(
geneList_list = demo_rank_apop_list,
pvalueCutoff = 1
)
multi_gsea## $Control
## #
## # Gene Set Enrichment Analysis
## #
## #...@organism unknown
## #...@setType unknown
## #...@keytype unknown
## #...@geneList Named num [1:3146] 3.72 3.45 3.27 3.24 3.08 ...
## - attr(*, "names")= chr [1:3146] "BackgroundGene_2703" "BackgroundGene_1113" "BackgroundGene_1084" "BackgroundGene_1346" ...
## #...nPerm 1000
## #...pvalues adjusted by 'BH' with cutoff < 1
## #...27 enriched terms found
## 'data.frame': 27 obs. of 12 variables:
## $ ID : chr "Autophagy_Pan Cancer_41554207" "Mitotic_catastrophe_GeneCards" "Accidental cell death_GeneCards" "Paraptosis_GeneCards" ...
## $ Description : chr "Autophagy_Pan Cancer_41554207" "Mitotic_catastrophe_GeneCards" "Accidental cell death_GeneCards" "Paraptosis_GeneCards" ...
## $ setSize : int 10 56 32 10 136 146 14 15 41 22 ...
## $ enrichmentScore: num -0.532 -0.259 0.277 -0.365 0.199 ...
## $ NES : num -1.388 -1.023 0.988 -0.953 0.948 ...
## $ pvalue : num 0.11 0.415 0.464 0.51 0.615 ...
## $ p.adjust : num 0.994 0.994 0.994 0.994 0.994 ...
## $ qvalue : num 0.994 0.994 0.994 0.994 0.994 ...
## $ rank : int 852 852 447 569 109 114 71 71 913 629 ...
## $ leading_edge : chr "tags=60%, list=27%, signal=44%" "tags=32%, list=27%, signal=24%" "tags=19%, list=14%, signal=16%" "tags=20%, list=18%, signal=16%" ...
## $ core_enrichment: chr "TP73/TNFSF10/F2R/CDKN1A/SIRT1/TNFRSF10A" "TP73/TNFSF10/PSIP1/EGFR/H1-1/BCL2L1/PRKCA/TUBB/AIFM1/ENDOG/UBE3C/CDKN1A/CYCS/PRDX5/PLA2G4A/EDN1/CASP9/TERF1" "APP/CD4/EPO/NOS2/SNCA/FAS" "AIFM1/CASP9" ...
## $ log2err : num 0.1864 0.0881 0.0843 0.0763 0.0746 ...
## #...Citation
##
## $Treatment
## #
## # Gene Set Enrichment Analysis
## #
## #...@organism unknown
## #...@setType unknown
## #...@keytype unknown
## #...@geneList Named num [1:3146] 8 7.97 7.93 7.9 7.86 ...
## - attr(*, "names")= chr [1:3146] "TP53" "TERT" "PTCH1" "MYC" ...
## #...nPerm 1000
## #...pvalues adjusted by 'BH' with cutoff < 1
## #...27 enriched terms found
## 'data.frame': 27 obs. of 12 variables:
## $ ID : chr "Apoptosis_Pan Cancer_37968457" "Intrinsic apoptosis_GeneCards" "Mitotic death_GeneCards" "Extrinsic apoptosis_GeneCards" ...
## $ Description : chr "Apoptosis_Pan Cancer_37968457" "Intrinsic apoptosis_GeneCards" "Mitotic death_GeneCards" "Extrinsic apoptosis_GeneCards" ...
## $ setSize : int 146 136 124 95 93 56 40 38 41 39 ...
## $ enrichmentScore: num 0.998 0.996 0.992 0.983 0.982 ...
## $ NES : num 3.25 3.25 3.22 3.15 3.1 ...
## $ pvalue : num 1e-10 1e-10 1e-10 1e-10 1e-10 ...
## $ p.adjust : num 1.12e-10 1.12e-10 1.12e-10 1.12e-10 1.12e-10 ...
## $ qvalue : num NA NA NA NA NA NA NA NA NA NA ...
## $ rank : int 152 149 148 147 148 135 132 125 137 147 ...
## $ leading_edge : chr "tags=100%, list=5%, signal=100%" "tags=100%, list=5%, signal=100%" "tags=100%, list=5%, signal=99%" "tags=100%, list=5%, signal=98%" ...
## $ core_enrichment: chr "TP53/TERT/PTCH1/MYC/VIM/BCL2/MAPK1/TNF/DNAH8/EGFR/FAS/GSN/RAF1/CASP3/CCND1/JAK2/AR/TUBB/NDE1/GLI1/CYCS/SALL4/MD"| __truncated__ "TP53/TERT/PTCH1/MYC/VIM/BCL2/MAPK1/TNF/DNAH8/EGFR/FAS/GSN/RAF1/CASP3/CCND1/JAK2/AR/TUBB/NDE1/GLI1/CYCS/SALL4/MD"| __truncated__ "TP53/TERT/PTCH1/MYC/VIM/BCL2/MAPK1/TNF/DNAH8/EGFR/FAS/GSN/RAF1/CASP3/CCND1/JAK2/AR/TUBB/NDE1/GLI1/CYCS/SALL4/MD"| __truncated__ "TP53/TERT/MYC/VIM/BCL2/MAPK1/TNF/DNAH8/EGFR/FAS/GSN/RAF1/CASP3/CCND1/JAK2/AR/TUBB/GLI1/CYCS/MDM2/AIFM1/CAV1/EDN"| __truncated__ ...
## $ log2err : num NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
## #...Citation
A GSEA curve can be generated for the representative apoptosis pathway:
The pvalueCutoff = 1 setting retains results for all
groups, including groups without a strong enrichment signal, which
facilitates comparison across groups.
ssGSEA calculates a pathway score for each sample:
data("demo_expr", package = "CDEnrich")
data("demo_group", package = "CDEnrich")
ssgsea_result <- celldeath_ssgsea(
expr = demo_expr,
group = demo_group
)
ssgsea_result## Cell death ssGSEA result
## Pathways scored: 95
## Samples scored : 12
## Groups : Control, Treatment
## Samples/group : Control=6, Treatment=6
A heatmap can be used to visualize pathway scores across samples:
Differential analysis can be performed when group labels are available:
## Pathway Control Treatment Statistic P_value
## 1 Accidental cell death_GeneCards 0.05121547 0.3381389 0 0.005074868
## 2 Anoikis_LUAD_Prognosis_41187171 -0.07601467 0.3973248 0 0.005074868
## 3 Anoikis_LUSC_40028162 0.06134317 0.3739529 0 0.005074868
## 4 Anoikis_Pan Cancer_37275895 0.06876107 0.3860521 0 0.005074868
## 5 Apoptosis_OS_Prognosis_35576501 0.07605482 0.3877590 0 0.005074868
## 6 Apoptosis_Pan cancer_36044785 0.08519270 0.3715857 0 0.005074868
## P_adjust
## 1 0.008171398
## 2 0.008171398
## 3 0.008171398
## 4 0.008171398
## 5 0.008171398
## 6 0.008171398
For two groups, the function uses a Wilcoxon test. For three or more groups, it uses a Kruskal-Wallis test.
Group-level scores can also be displayed with a boxplot:
Results can be exported using the savefile,
filename, or filename_prefix arguments. The
following examples are shown but not executed during vignette
construction:
celldeath_enrich(
deg = demo_deg,
universe = demo_all_genes,
savefile = TRUE,
filename = "single_group_ORA_result.csv"
)celldeath_gsea(
geneList = demo_rank_apop,
savefile = TRUE,
filename = "single_group_GSEA_result.csv"
)The curated gene sets were compiled from published literature and public annotations. PMID-supported gene sets are linked to their corresponding publications when PMID information is available. Some gene sets are based primarily on GeneCards annotations and should be interpreted as exploratory resources.
Enrichment results depend on the input genes, ranking statistic, background gene set, pathway definition, and statistical thresholds. They should be interpreted together with the experimental design and the original publications. Enrichment does not by itself establish a causal relationship or absolute pathway activity.
## R version 4.6.1 (2026-06-24)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 26.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.32.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=en_US.UTF-8
## [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] CDEnrich_0.99.1 BiocStyle_2.41.0
##
## loaded via a namespace (and not attached):
## [1] RColorBrewer_1.1-3 sys_3.4.3
## [3] jsonlite_2.0.0 tidydr_0.0.7
## [5] magrittr_2.0.5 ggtangle_0.1.4
## [7] magick_2.9.1 farver_2.1.2
## [9] rmarkdown_2.32 fs_2.1.0
## [11] vctrs_0.7.3 memoise_2.0.1
## [13] DelayedMatrixStats_1.35.0 ggtree_4.3.0
## [15] htmltools_0.5.9 S4Arrays_1.13.2
## [17] BiocBaseUtils_1.15.1 Rhdf5lib_2.1.0
## [19] SparseArray_1.13.4 rhdf5_2.57.20
## [21] gridGraphics_0.5-1 sass_0.4.10
## [23] bslib_0.12.0 htmlwidgets_1.6.4
## [25] plyr_1.8.9 httr2_1.3.0
## [27] cachem_1.1.0 buildtools_1.0.0
## [29] igraph_2.3.4 lifecycle_1.0.5
## [31] pkgconfig_2.0.3 gson_0.2.2
## [33] Matrix_1.7-6 R6_2.6.1
## [35] fastmap_1.2.0 MatrixGenerics_1.25.0
## [37] digest_0.6.39 aplot_0.3.2
## [39] enrichplot_1.99.8 ggnewscale_0.5.2
## [41] patchwork_1.3.2 AnnotationDbi_1.75.2
## [43] S4Vectors_0.51.10 aisdk_1.4.12
## [45] ps_1.9.3 GenomicRanges_1.65.4
## [47] RSQLite_3.53.3 labeling_0.4.3
## [49] polyclip_1.10-7 httr_1.4.9
## [51] abind_1.4-8 compiler_4.6.1
## [53] withr_3.0.3 fontquiver_0.2.1
## [55] bit64_4.8.6 S7_0.2.2
## [57] BiocParallel_1.47.0 DBI_1.3.0
## [59] ggforce_0.5.0 HDF5Array_1.41.3
## [61] MASS_7.3-66 rappdirs_0.3.4
## [63] DelayedArray_0.39.8 rjson_0.2.23
## [65] tools_4.6.1 otel_0.2.0
## [67] scatterpie_0.2.6 ape_5.8-1
## [69] glue_1.8.1 h5mread_1.5.3
## [71] callr_3.8.0 nlme_3.1-171
## [73] GOSemSim_2.39.4 rhdf5filters_1.25.4
## [75] grid_4.6.1 cluster_2.1.8.3
## [77] reshape2_1.4.5 generics_0.1.4
## [79] memuse_4.2-3 gtable_0.3.6
## [81] tidyr_1.3.2 XVector_0.53.0
## [83] BiocGenerics_0.59.12 ggrepel_0.9.8
## [85] pillar_1.11.1 stringr_1.6.0
## [87] yulab.utils_0.2.5 GSVA_2.7.23
## [89] splines_4.6.1 tweenr_2.0.3
## [91] dplyr_1.2.1 treeio_1.37.1
## [93] lattice_0.23-1 bit_4.6.0
## [95] annotate_1.91.0 tidyselect_1.2.1
## [97] fontLiberation_0.1.0 GO.db_3.23.1
## [99] SingleCellExperiment_1.35.2 maketools_1.3.2
## [101] Biostrings_2.81.9 knitr_1.52
## [103] fontBitstreamVera_0.1.1 IRanges_2.47.5
## [105] Seqinfo_1.3.2 SummarizedExperiment_1.43.0
## [107] stats4_4.6.1 xfun_0.61
## [109] Biobase_2.73.2 matrixStats_1.5.0
## [111] pheatmap_1.0.13 stringi_1.8.9
## [113] lazyeval_0.2.3 ggfun_0.2.2
## [115] yaml_2.3.12 evaluate_1.0.5
## [117] codetools_0.2-20 qvalue_2.45.0
## [119] gdtools_0.5.1 tibble_3.3.1
## [121] BiocManager_1.30.27 graph_1.91.0
## [123] ggplotify_0.1.4 cli_3.6.6
## [125] systemfonts_1.3.2 xtable_1.8-8
## [127] processx_3.9.0 jquerylib_0.1.4
## [129] Rcpp_1.1.2 png_0.1-9
## [131] XML_3.99-0.25 parallel_4.6.1
## [133] ggplot2_4.0.3 blob_1.3.0
## [135] clusterProfiler_4.21.3 DOSE_4.7.3
## [137] sparseMatrixStats_1.25.0 SpatialExperiment_1.23.0
## [139] tidytree_0.4.8 GSEABase_1.75.0
## [141] ggiraph_0.9.6 enrichit_0.2.6
## [143] scales_1.4.0 purrr_1.2.2
## [145] crayon_1.5.3 rlang_1.3.0
## [147] KEGGREST_1.53.6