Compute Bliss and HSA synergy scores for a combination SE, replicating the
exact scoring logic of fit_SE.combinations.
Usage
apply_combo_scores(
se,
scores_assay = "scores",
averaged_assay = "Averaged",
metrics_assay = "Metrics",
excess_assay = NULL,
normalization_types = c("GR", "RV"),
fit_source = "gDR",
score_FUN = calculate_score,
isobolograms_assay = "isobolograms"
)Arguments
- se
SummarizedExperimentwith"Averaged"and"Metrics"assays (combination experiment).- scores_assay
string; name of the output assay to write scores into. Default
"scores".- averaged_assay
string; name of the input assay. Default
"Averaged".- metrics_assay
string; name of the assay containing SA fit parameters. Default
"Metrics".- excess_assay
string or
NULL; if the SE already contains a pre-computed excess assay (e.g. fromapply_combo_excess), pass its name here to skip excess re-computation and score directly from it. DefaultNULL(excess is computed internally).- normalization_types
character vector of normalization types to process. Default
c("GR", "RV").- fit_source
string recorded in the
fit_sourcecolumn. Default"gDR".- score_FUN
function to reduce per-point excess values to a scalar score. Default
calculate_score(mean of top 10-percentile).- isobolograms_assay
string or
NULL; name of the assay with the Loewe isobolograms used forCIScore_50andCIScore_80. Default"isobolograms".
Value
Updated SummarizedExperiment with a scores_assay
assay containing bliss_score, hsa_score, CIScore_50
and CIScore_80 per triplet.
Details
Unlike the low-level bliss_fit_fn and hss_fit_fn
(which work on raw Averaged data per triplet), this function uses the SA fit
parameters from the Metrics assay to generate curve-smoothed single-agent
responses via predict_efficacy_from_conc before computing
excess. This produces results numerically identical to fit_SE.combinations.
The function requires a Metrics assay containing columns
dilution_drug, cotrt_value, ec50, h,
x_inf, x_0, and normalization_type — as produced by
fit_SE.combinations or apply_fit_to_se with
fit_drug_response_metrics.
Scoring steps (per drug-combo × cell-line × normalization_type):
Predict smooth SA responses at every combo concentration using
predict_efficacy_from_concondrug_1anddrug_2parameter sets fromMetrics.Average
col_values(drug-1-along-conc1) androw_values(drug-2-along-conc2) →smooth.Compute Bliss-expected using
calculate_Blissand HSA-expected usingcalculate_HSAon the smooth SA edges.Compute excess via
calculate_excess.Score = mean of top 10-percentile excess via
calculate_score.
CIScore_50 and CIScore_80 are read from the
isobolograms_assay written by apply_combo_isobolograms:
the combination index of the isobologram at the lowest response level
\(\ge\) 0.5 and \(\ge\) 0.2. They are NA when that assay is
missing or has no isobologram for the drug pair and cell line.
See also
bliss_fit_fn, hss_fit_fn for the
simplified raw-data variants.
Examples
mae <- gDRutils::get_synthetic_data("finalMAE_combo_matrix_small")
combo_se <- mae[[gDRutils::get_supported_experiments("combo")]]
combo_se_out <- apply_combo_scores(combo_se)
"scores" %in% SummarizedExperiment::assayNames(combo_se_out)
#> [1] TRUE