hd_plot_model_summary()
plots the number of features and the number of top
features (feature importance > user defined threshold) for each disease in a barplot.
It also plots the upset plot of the top or all features, as well as a summary line plot
of the model performance metrics.
Usage
hd_plot_model_summary(
model_results,
importance = 0.5,
class_palette = NULL,
upset_top_features = FALSE
)
Arguments
- model_results
A list of binary classification model results. It should be a list of objects created by
hd_model_rreg()
,hd_model_rf()
orhd_model_lr()
with the classes as names. See the examples for more details.- importance
The importance threshold to consider a feature as top. Default is 0.5.
- class_palette
The color palette for the classes. If it is a character, it should be one of the palettes from
hd_palettes()
. Default is NULL.- upset_top_features
Whether to plot the upset plot for the top features or all features. Default is FALSE (all features).
Examples
# Initialize an HDAnalyzeR object with only a subset of the predictors
hd_object <- hd_initialize(example_data, example_metadata)
# Split the data into training and test sets
hd_split <- hd_split_data(hd_object, variable = "Disease")
#> Warning: Too little data to stratify.
#> • Resampling will be unstratified.
# Run the regularized regression model pipeline
model_results_aml <- hd_model_rreg(hd_split,
variable = "Disease",
case = "AML",
grid_size = 2,
cv_sets = 2,
verbose = FALSE)
#> The groups in the train set are balanced. If you do not want to balance the groups, set `balance_groups = FALSE`.
model_results_cll <- hd_model_rreg(hd_split,
variable = "Disease",
case = "CLL",
grid_size = 2,
cv_sets = 2,
verbose = FALSE)
#> The groups in the train set are balanced. If you do not want to balance the groups, set `balance_groups = FALSE`.
model_results_myel <- hd_model_rreg(hd_split,
variable = "Disease",
case = "MYEL",
grid_size = 2,
cv_sets = 2,
verbose = FALSE)
#> The groups in the train set are balanced. If you do not want to balance the groups, set `balance_groups = FALSE`.
model_results_lungc <- hd_model_rreg(hd_split,
variable = "Disease",
case = "LUNGC",
grid_size = 2,
cv_sets = 2,
verbose = FALSE)
#> The groups in the train set are balanced. If you do not want to balance the groups, set `balance_groups = FALSE`.
model_results_gliom <- hd_model_rreg(hd_split,
variable = "Disease",
case = "GLIOM",
grid_size = 2,
cv_sets = 2,
verbose = FALSE)
#> The groups in the train set are balanced. If you do not want to balance the groups, set `balance_groups = FALSE`.
res <- list("AML" = model_results_aml,
"LUNGC" = model_results_lungc,
"CLL" = model_results_cll,
"MYEL" = model_results_myel,
"GLIOM" = model_results_gliom)
# Plot summary visualizations
hd_plot_model_summary(res, class_palette = "cancers12")
#> $features_barplot
#>
#> $metrics_barplot
#>
#> $upset_plot_features
#>
#> $features_df
#> # A tibble: 99 × 3
#> Shared_in `up/down` Feature
#> <chr> <chr> <chr>
#> 1 AML up AARSD1
#> 2 AML&GLIOM up ABL1
#> 3 LUNGC&CLL up ACAA1
#> 4 AML&MYEL&GLIOM up ACAN
#> 5 MYEL&GLIOM up ACE2
#> 6 AML&CLL&GLIOM up ACOX1
#> 7 AML&CLL&GLIOM up ACP5
#> 8 AML&CLL&MYEL&GLIOM up ACP6
#> 9 AML&LUNGC&CLL&MYEL up ACTA2
#> 10 LUNGC&MYEL&GLIOM up ACTN4
#> # ℹ 89 more rows
#>
#> $features_list
#> $features_list$`AML&LUNGC&MYEL&GLIOM`
#> [1] "ANGPT1" "ADGRG1" "AMY2A" "ADAMTS16" "ANGPTL2" "ANPEP"
#> [7] "ANXA11" "ATXN10" "AMBP" "ARTN" "ANGPT2" "AZU1"
#>
#> $features_list$`AML&LUNGC&CLL&MYEL&GLIOM`
#> [1] "ADGRG1" "ANPEP" "ATXN10" "ANGPT2" "AZU1"
#>
#> $features_list$`AML&GLIOM`
#> [1] "ANGPT1" "ADGRG1" "AMY2A" "ADAMTS16" "ADA" "AHCY"
#> [7] "ANGPTL2" "ALCAM" "APEX1" "ABL1" "ANPEP" "ANKRD54"
#> [13] "APOH" "ADGRE2" "ACP6" "APOM" "ACAN" "ANXA11"
#> [19] "AGR3" "ARHGAP1" "ADGRG2" "ATXN10" "AMBN" "AMBP"
#> [25] "ACP5" "AGRN" "ADAM15" "ADAMTS13" "ARTN" "ATOX1"
#> [31] "APLP1" "ACY1" "ANG" "ATF2" "ANGPT2" "ALDH3A1"
#> [37] "ANGPTL7" "AZU1" "B4GALT1" "ADCYAP1R1" "AKT3" "AGXT"
#> [43] "ARSB" "ARHGEF12" "ACOX1" "ATP6V1F" "ADAM23"
#>
#> $features_list$`AML&LUNGC&GLIOM`
#> [1] "ANGPT1" "ADGRG1" "AMY2A" "ADAMTS16" "AHCY" "ANGPTL2"
#> [7] "ANPEP" "ANKRD54" "APOM" "ANXA11" "ATXN10" "AMBP"
#> [13] "AGRN" "ARTN" "ANGPT2" "AZU1" "ADCYAP1R1" "AGXT"
#>
#> $features_list$`AML&CLL&MYEL`
#> [1] "ADGRG1" "ADAM8" "ALCAM" "APEX1" "ANPEP" "AXL"
#> [7] "ACP6" "ATXN10" "AMBN" "ACTA2" "ANGPT2" "AGRP"
#> [13] "AZU1" "ATP6V1F" "ARHGAP25"
#>
#> $features_list$`AML&LUNGC`
#> [1] "ANGPT1" "ADGRG1" "AMY2A" "ADAMTS16" "AHCY" "AMIGO2"
#> [7] "ANGPTL2" "AMFR" "AK1" "ANPEP" "ANKRD54" "ALDH1A1"
#> [13] "AXL" "APBB1IP" "APOM" "ANXA11" "ATXN10" "AMBP"
#> [19] "AGRN" "ARTN" "ANXA5" "ACTA2" "ARNT" "AMN"
#> [25] "ANGPT2" "ANGPTL3" "AOC3" "AGRP" "AZU1" "ADCYAP1R1"
#> [31] "AGXT" "ARHGAP25"
#>
#> $features_list$`AML&CLL&MYEL&GLIOM`
#> [1] "ADGRG1" "ALCAM" "APEX1" "ANPEP" "ACP6" "ATXN10" "AMBN"
#> [8] "ANGPT2" "AZU1" "ATP6V1F"
#>
#> $features_list$AML
#> [1] ANGPT1 ADGRG1 AMY2A ADAMTS16 ADA AHCY ADAM8
#> [8] AMIGO2 ANGPTL2 ALCAM APEX1 ADH4 AMFR AK1
#> [15] ABL1 ANPEP ATP6V1D AARSD1 ANKRD54 APOH ALDH1A1
#> [22] AXL APBB1IP ADGRE2 ACP6 ATG4A APOM ACAN
#> [29] ANXA11 AGR3 ARHGAP1 ADGRG2 ATXN10 APP AMBN
#> [36] AMBP ACP5 AGRN ADAM15 ADAMTS13 ARTN ANXA5
#> [43] ACTA2 ATOX1 APLP1 ARNT ACY1 ANXA4 ANG
#> [50] ATF2 AMN ANGPT2 ALDH3A1 ANGPTL7 ANGPTL3 AKR1B1
#> [57] AOC3 AGRP AZU1 ANXA3 B4GALT1 ADCYAP1R1 AKT3
#> [64] AGXT ARSB ATP5IF1 ARHGEF12 AKT1S1 ACOX1 ATP6V1F
#> [71] ADAM23 ARHGAP25
#> 100 Levels: ACAA1 ACE2 ACTN4 ADA2 ADAMTS15 ADAMTS8 ADGRE5 ADM AGER AGR2 ... ANGPT1
#>
#> $features_list$`AML&LUNGC&CLL`
#> [1] "ADGRG1" "AMFR" "ANPEP" "ANKRD54" "AXL" "ATXN10"
#> [7] "ACTA2" "ANGPT2" "AGRP" "AZU1" "ARHGAP25"
#>
#> $features_list$`AML&LUNGC&MYEL`
#> [1] "ANGPT1" "ADGRG1" "AMY2A" "ADAMTS16" "ANGPTL2" "AK1"
#> [7] "ANPEP" "AXL" "APBB1IP" "ANXA11" "ATXN10" "AMBP"
#> [13] "ARTN" "ANXA5" "ACTA2" "ANGPT2" "ANGPTL3" "AOC3"
#> [19] "AGRP" "AZU1" "ARHGAP25"
#>
#> $features_list$`AML&LUNGC&CLL&GLIOM`
#> [1] "ADGRG1" "ANPEP" "ANKRD54" "ATXN10" "ANGPT2" "AZU1"
#>
#> $features_list$`AML&MYEL&GLIOM`
#> [1] "ANGPT1" "ADGRG1" "AMY2A" "ADAMTS16" "ANGPTL2" "ALCAM"
#> [7] "APEX1" "ANPEP" "APOH" "ACP6" "ACAN" "ANXA11"
#> [13] "AGR3" "ADGRG2" "ATXN10" "AMBN" "AMBP" "ADAM15"
#> [19] "ARTN" "ATOX1" "ANG" "ATF2" "ANGPT2" "ANGPTL7"
#> [25] "AZU1" "ARSB" "ARHGEF12" "ATP6V1F"
#>
#> $features_list$`AML&LUNGC&CLL&MYEL`
#> [1] "ADGRG1" "ANPEP" "AXL" "ATXN10" "ACTA2" "ANGPT2" "AGRP"
#> [8] "AZU1" "ARHGAP25"
#>
#> $features_list$`AML&CLL&GLIOM`
#> [1] "ADGRG1" "ALCAM" "APEX1" "ANPEP" "ANKRD54" "ACP6"
#> [7] "ARHGAP1" "ATXN10" "AMBN" "ACP5" "ADAMTS13" "APLP1"
#> [13] "ACY1" "ANGPT2" "AZU1" "ACOX1" "ATP6V1F"
#>
#> $features_list$`AML&CLL`
#> [1] "ADGRG1" "ADAM8" "ALCAM" "APEX1" "AMFR" "ANPEP"
#> [7] "ANKRD54" "AXL" "ACP6" "ARHGAP1" "ATXN10" "APP"
#> [13] "AMBN" "ACP5" "ADAMTS13" "ACTA2" "APLP1" "ACY1"
#> [19] "ANGPT2" "AGRP" "AZU1" "ATP5IF1" "ACOX1" "ATP6V1F"
#> [25] "ARHGAP25"
#>
#> $features_list$`AML&MYEL`
#> [1] "ANGPT1" "ADGRG1" "AMY2A" "ADAMTS16" "ADAM8" "ANGPTL2"
#> [7] "ALCAM" "APEX1" "AK1" "ANPEP" "APOH" "AXL"
#> [13] "APBB1IP" "ACP6" "ACAN" "ANXA11" "AGR3" "ADGRG2"
#> [19] "ATXN10" "AMBN" "AMBP" "ADAM15" "ARTN" "ANXA5"
#> [25] "ACTA2" "ATOX1" "ANG" "ATF2" "ANGPT2" "ANGPTL7"
#> [31] "ANGPTL3" "AOC3" "AGRP" "AZU1" "ANXA3" "ARSB"
#> [37] "ARHGEF12" "ATP6V1F" "ARHGAP25"
#>
#> $features_list$`LUNGC&CLL&MYEL&GLIOM`
#> [1] "ATP5PO" "ATXN10" "ANPEP" "ANGPT2" "ADGRG1" "AZU1"
#>
#> $features_list$LUNGC
#> [1] APBB1IP AOC3 ATP5PO AMIGO2 ANXA10 ADM AXL
#> [8] AMY2B ANGPTL3 AMFR ANGPTL2 ACTA2 ATXN10 AGR2
#> [15] AGRP AHCY ADA2 ACTN4 ARG1 ANPEP ANGPT2
#> [22] AKR1C4 ADGRG1 ARNT ACAA1 ANXA5 AZU1 ALDH1A1
#> [29] AXIN1 ANXA11 AMY2A APOM ATP6AP2 AGRN ADCYAP1R1
#> [36] ARTN ART3 ANGPT1 ARID4B ADAMTS16 AHSP AMBP
#> [43] AK1 AGXT ARHGAP25 AOC1 AMN ANKRD54
#> 100 Levels: AARSD1 ABL1 ACAN ACE2 ACOX1 ACP5 ACP6 ACY1 ADA ADAM15 ... APBB1IP
#>
#> $features_list$`LUNGC&MYEL&GLIOM`
#> [1] "ATP5PO" "ADM" "AMY2B" "ANGPTL2" "ATXN10" "ACTN4"
#> [7] "ANPEP" "ANGPT2" "ADGRG1" "AZU1" "ANXA11" "AMY2A"
#> [13] "ARTN" "ANGPT1" "ADAMTS16" "AHSP" "AMBP" "AOC1"
#>
#> $features_list$`LUNGC&MYEL`
#> [1] "APBB1IP" "AOC3" "ATP5PO" "ADM" "AXL" "AMY2B"
#> [7] "ANGPTL3" "ANGPTL2" "ACTA2" "ATXN10" "AGR2" "AGRP"
#> [13] "ADA2" "ACTN4" "ARG1" "ANPEP" "ANGPT2" "ADGRG1"
#> [19] "ANXA5" "AZU1" "ANXA11" "AMY2A" "ARTN" "ANGPT1"
#> [25] "ADAMTS16" "AHSP" "AMBP" "AK1" "ARHGAP25" "AOC1"
#>
#> $features_list$`LUNGC&CLL`
#> [1] "ATP5PO" "AXL" "AMFR" "ACTA2" "ATXN10" "AGRP"
#> [7] "ANPEP" "ANGPT2" "AKR1C4" "ADGRG1" "ACAA1" "AZU1"
#> [13] "ATP6AP2" "ARID4B" "ARHGAP25" "ANKRD54"
#>
#> $features_list$`LUNGC&GLIOM`
#> [1] "ATP5PO" "ADM" "AMY2B" "ANGPTL2" "ATXN10" "AHCY"
#> [7] "ACTN4" "ANPEP" "ANGPT2" "ADGRG1" "AZU1" "AXIN1"
#> [13] "ANXA11" "AMY2A" "APOM" "ATP6AP2" "AGRN" "ADCYAP1R1"
#> [19] "ARTN" "ART3" "ANGPT1" "ARID4B" "ADAMTS16" "AHSP"
#> [25] "AMBP" "AGXT" "AOC1" "ANKRD54"
#>
#> $features_list$`LUNGC&CLL&GLIOM`
#> [1] "ATP5PO" "ATXN10" "ANPEP" "ANGPT2" "ADGRG1" "AZU1" "ATP6AP2"
#> [8] "ARID4B" "ANKRD54"
#>
#> $features_list$`CLL&GLIOM`
#> [1] "ADAMTS8" "ALCAM" "ATP6V1F" "APEX1" "ARID4B" "ATXN10"
#> [7] "ADGRG1" "ATP6AP2" "ANKRD54" "AZU1" "ADAMTS13" "ARHGAP1"
#> [13] "AMBN" "ACP6" "ACOX1" "ANPEP" "APLP1" "ANGPT2"
#> [19] "ACP5" "ATP5PO" "ACY1"
#>
#> $features_list$`MYEL&GLIOM`
#> [1] "ANPEP" "ADAMTS15" "ARTN" "APOH" "ADM" "AGR3"
#> [7] "AIFM1" "AMBP" "ATOX1" "AREG" "ADGRG1" "ATP5PO"
#> [13] "AMY2B" "ALPP" "AIF1" "ACAN" "ADGRE5" "AMBN"
#> [19] "ANGPTL7" "AOC1" "ADAM15" "ACE2" "ANGPT1" "ARSB"
#> [25] "ACTN4" "ANXA11" "ATF2" "ATP6V1F" "ADGRG2" "ANGPT2"
#> [31] "ARHGEF12" "ATXN10" "ALCAM" "APEX1" "ADAMTS16" "AMY2A"
#> [37] "AZU1" "AHSP" "ACP6" "ANG" "ANGPTL2"
#>
#> $features_list$MYEL
#> [1] ANPEP ADAMTS15 ARTN APOH ADM ANGPTL3 ARHGAP25 AGR3
#> [9] AIFM1 AMBP ATOX1 AGRP AGR2 ARSA AREG ADGRG1
#> [17] ATP5PO ADA2 AMY2B ALPP ANGPTL1 AIF1 ACAN ADGRE5
#> [25] AMBN AK1 ADAM8 ANGPTL7 AOC1 ADAM15 ACE2 ANGPT1
#> [33] ARSB APBB1IP ACTA2 ACTN4 ANXA11 ATF2 AXL ATP6V1F
#> [41] ADGRG2 ANGPT2 ARHGEF12 ATXN10 ALCAM APEX1 ADAMTS16 AMY2A
#> [49] AZU1 AHSP ACP6 ANG ARG1 AOC3 ANXA3 ANGPTL2
#> [57] ANGPTL4 ANXA5
#> 100 Levels: AARSD1 ABL1 ACAA1 ACOX1 ACP5 ACY1 ADA ADAM23 ADAMTS13 ... ANPEP
#>
#>