Correlation, regression and survival · Choose a method

Drug combination synergy: Bliss independence, HSA and Loewe, and how to test synergy across experiments

Name the reference model before testing, compute the log Bliss ratio in each independent experiment, and test it across experiments; one plate's wells and the highest single agent (HSA) rule both overstate synergy. Python and R code.

By Licklider · Published · Last reviewed · How this page was made · Markdown

On this page
  1. Which analysis for your question
  2. Worked example: two drugs that act independently
  3. Before you analyse
  4. Check what an AI assistant ran
  5. Report it
  6. References

Quick answer. “Synergy” means a combination works better than a reference model predicts for drugs that act independently, so name the model first. For a single dose of each drug, the usual choice is Bliss independence: the expected surviving fraction of the combination is the product of the two single-drug surviving fractions. In each independent experiment, with surviving fractions normalised to the same plate’s control wells, compute the ratio observed ÷ expected (below 1 = synergy, above 1 = antagonism), take its logarithm, and test the log ratios across experiments (a one-sample t-test against 0); report the ratio with its 95% confidence interval. Treating one plate’s wells as n found “synergy or antagonism” in 42.0% of our simulated studies of independent drugs, and the highest single agent (HSA) rule called independent drugs synergistic in 100% of studies. Plan at least 5 independent experiments.

Terms used below. Surviving fraction (SF): viability in treated wells ÷ viability in control wells on the same plate (1 = no effect). Fraction affected: 1 − SF; on this scale the Bliss expectation is f_A + f_B − f_A × f_B, and all ratios on this page are for surviving fractions. Reference model: the prediction for two drugs that act independently of each other. Bliss independence: drugs act independently, so expected SF of the combination = SF of A × SF of B. Highest single agent (HSA): the combination is compared with the better of the two drugs alone. Loewe additivity: a drug combined with itself is additive; needs full dose–response curves for both drugs. Isobologram: a plot of dose pairs giving the same effect; points below the straight line joining the single-drug doses suggest synergy. ZIP: zero interaction potency, a reference model that combines features of Bliss and Loewe for dose matrices. Response additivity: expected effect = sum of the single-drug effects. Synergy score: a model’s measure of excess effect, often in percentage points. Combination index: the Chou–Talalay measure based on Loewe additivity; an index below 1 is read as synergy (not to be confused with a confidence interval). Bliss ratio: observed ÷ Bliss-expected SF; below 1 means more killing than expected (synergy), above 1 less (antagonism). Software such as SynergyFinder reports the excess effect instead, with positive values meaning synergy. Independent experiment: a separate day, cell passage and plate. Technical replicate: a repeated well on the same plate. 95% confidence interval (CI): the range of values compatible with the data. Power: the chance of detecting an effect that is really there. False positive: a “significant” result when there is no real effect.

Which analysis for your question

Question Analysis Report
Single dose of each drug: more than independent action? Bliss ratio per experiment, one-sample t-test of the log ratios across experiments Observed ÷ expected SF with 95% CI, n experiments, p
Is the combination better than either drug alone? Combination vs the better single drug, per experiment (HSA) Say “better than either drug alone”, not “synergy”
Dose–response matrix (several doses of each drug) Bliss, Loewe or ZIP scores per experiment (for example SynergyFinder), summarised across experiments The model, the summary score with its spread across experiments
Full dose–response curves, isobologram Loewe additivity or combination index, with uncertainty across experiments Combination index or isobologram with intervals, and the effect level (for example 50% inhibition)
Combination in animals (tumour growth) A mixed model of log tumour volume over time in a four-group design (control, A, B, A + B), testing the growth-rate interaction (A + B) − A − B + control, as described by Demidenko and Miller Interaction estimate with 95% CI; growth-rate methods in tumour growth curves

Foucquier and Guedj describe the effect-based reference models, including “Highest Single Agent”, “Response Additivity” and the “Bliss Independence model”, and the dose-based Loewe additivity, under which a combination index below 1 indicates synergy (Foucquier & Guedj 2015). Experts have not settled on one model: the Saariselkä committee “did not reach a consensus and simply recommended that drug combination studies explicitly state how synergy was calculated” (Wooten et al. 2021). Demidenko and Miller stress “the importance of replicates in each drug group to account for natural variation of response to treatment”, and their Bliss test compares “the SF from the combination group with the SF computed as the product of the SFs from the two single-agent groups” on the log scale (Demidenko & Miller 2019). SynergyFinder implements the HSA, Bliss, Loewe and ZIP models and, with replicate measurements, “reports standard deviations for each synergy score” (Ianevski et al. 2020); for a test of synergy, those replicates should be independent experiments, not wells on one plate.

Worked example: two drugs that act independently

Constructed data: a viability assay with control, drug A, drug B and A + B, 3 wells each, on one plate in each of 5 independent experiments. By design, the true surviving fractions are 0.6 (A), 0.5 (B) and 0.30 (A + B), which is exactly the Bliss expectation 0.6 × 0.5: the drugs act independently. Each plate’s response varies around these values, as real plates do (a standard deviation of 0.10 on the log scale for each treated condition, plus 0.08 of well-to-well variation on the log scale). The random seed was the first one tried and was not chosen for its result. Stored code and data: viability.csv, model.py, make_data.py, analysis.py, analysis.R and the analysis output; analysis.py and analysis.R print the same output.

In experiment 1, the surviving fractions were 0.667 (A), 0.532 (B) and 0.279 (A + B). The Bliss expectation was 0.667 × 0.532 = 0.355, and the best single drug (HSA) gave 0.532.

Analysis Result
Experiment 1 alone, wells as n: A + B vs B (HSA; not a synergy test) p = 1.4 × 10⁻⁵ (misleading “synergy”)
Experiment 1 alone, wells as n: A + B vs the Bliss expectation p = 0.009 (misleading “synergy”)
Observed ÷ Bliss expected, experiments 1 to 5 0.79, 1.35, 1.38, 0.87, 1.09
Across 5 experiments, observed ÷ Bliss expected 1.07 (95% CI 0.78 to 1.47), p = 0.58
Across 5 experiments, observed ÷ better single drug (HSA; not a synergy test) 0.63 (95% CI 0.48 to 0.83), p = 0.0096

Experiment 1 alone looks synergistic by either rule, yet the other experiments fail to repeat it: the ratio swings from 0.79 to 1.38 between plates, far more than the three wells on one plate suggest. Across experiments there is no evidence of Bliss synergy, and the interval runs from a surviving fraction 22% below the expectation (synergy) to 47% above it (antagonism). The HSA comparison is “significant” because two independent drugs that each reduce viability nearly always beat either drug alone when combined; it shows that the combination is better than either drug alone, not that the drugs interact. (The better drug is also picked from the same data, so treat the HSA ratio as a description.) In 10,000 simulated studies of this design (simulation.py, the simulation output):

Scenario Bliss test, one plate’s wells as n, p < 0.05 Bliss test, one ratio per experiment (n = 5), p < 0.05 HSA “synergy” across experiments
Independent drugs (A + B = 0.30) 42.0% (false positives) 5.2% (false positives) 100.0%
True synergy (A + B = 0.225, a Bliss ratio of 0.75) 73.6% (power) 68.4% (power) 100.0%

The one-plate test is “significant” in 42% of studies with no interaction at all, so its 73.6% power under true synergy cannot be trusted either. One ratio per experiment keeps false positives at 5.2%; it detects a Bliss ratio of 0.75 with 5 experiments 68.4% of the time, so smaller effects need more experiments.

The code expects one row per well with columns experiment, treatment (control, A, B, A+B), well and signal; rename your columns and treatment labels to match, save the file as viability.csv (or change the name in the code), and run the code in the folder that holds it. Python needs NumPy, pandas and SciPy; the R code uses base R only.

# Condensed: analysis.py also gives the one-plate tests
import numpy as np, pandas as pd
from scipy import stats

d = pd.read_csv("viability.csv")
m = d.groupby(["experiment", "treatment"]).signal.mean().unstack()   # mean signal per plate and treatment
sf = m[["A", "B", "A+B"]].div(m["control"], axis=0)                  # surviving fractions, per plate
lr = np.log(sf["A+B"] / (sf["A"] * sf["B"]))                         # log Bliss ratio, one per experiment
t = stats.ttest_1samp(lr, 0)
print("observed / expected", np.exp(lr.mean()), "95% CI", np.exp(t.confidence_interval()), "p", t.pvalue)
h = stats.ttest_1samp(np.log(sf["A+B"] / sf[["A", "B"]].min(axis=1)), 0)   # vs the better single drug (HSA), not synergy
print("observed / better single drug", np.exp(h.confidence_interval()))
d <- read.csv("viability.csv", check.names = FALSE)
m <- tapply(d$signal, list(d$experiment, d$treatment), mean)          # mean signal per plate and treatment
sf <- m[, c("A", "B", "A+B")] / m[, "control"]                        # surviving fractions, per plate
lr <- log(sf[, "A+B"] / (sf[, "A"] * sf[, "B"]))                      # log Bliss ratio, one per experiment
tt <- t.test(lr); c(ratio = exp(mean(lr)), lower = exp(tt$conf.int[1]), upper = exp(tt$conf.int[2]), p = tt$p.value)
hs <- log(sf[, "A+B"] / pmin(sf[, "A"], sf[, "B"])); exp(c(mean(hs), t.test(hs)$conf.int))   # vs the better single drug (HSA), not synergy

Before you analyse

  1. Choose and state the reference model in advance (Bliss for single doses; Loewe or the combination index when you have full dose–response curves), and report which one you used. Wooten and colleagues found that median Bliss scores in a large anticancer dataset were “biased toward antagonism for moderately efficacious combinations 0.35 < (E1, E2) < 0.65”, where E1 and E2 are the single-drug effects, the range of this example, so a modest synergy there can be understated. If one drug alone has no effect (SF near 1), the Bliss ratio reduces to the combination ÷ the other drug and says little about interaction.
  2. Subtract the blank, then normalise. If you have medium-only blank wells, subtract their mean from every well first, then divide by the same plate’s control mean. Every surviving fraction must be above 0 for the log ratio; decide in advance how to handle values at or below 0 (complete killing), for example by setting them to the lowest value the assay can measure and reporting how often, and values above 1 (growth above control).
  3. Run independent experiments, each with all four conditions and the same doses on the same plate; the n for the synergy test is the number of experiments (what counts as n). Two plates from the same day and passage count as one experiment. Wells on one plate tell you about pipetting, not about whether the interaction repeats. With one or two experiments, report each experiment’s ratio without a test; the t-test assumes roughly normal log ratios, which a handful of experiments cannot check, so plan at least 5.
  4. Work on the log scale. The Bliss expectation is a product, so log(observed ÷ expected) turns it into a difference that can be averaged and tested; report the back-transformed ratio.
  5. For dose matrices, decide the summary in advance (for example the mean Bliss score over the matrix, or the score at one pre-chosen dose pair), rather than reporting the dose pair with the largest score.

Check what an AI assistant ran

  1. The assistant called the combination synergistic because it beat both drugs alone. Ask for a Bliss (or Loewe) comparison, and keep “better than either drug” as a separate statement.
  2. The assistant tested synergy using the wells from one plate. Ask for one ratio per independent experiment and a test across experiments.
  3. The assistant reported a combination index below 1 with no confidence interval. Ask for the index from each experiment and its spread.
  4. The assistant did not say which reference model it used. Ask it to name the model and the formula.

Report it

Synergy was assessed against Bliss independence: in each of [5] independent experiments, the expected surviving fraction for the combination was the product of the single-drug surviving fractions, each normalised to control wells on the same plate. The log ratio of observed to expected surviving fraction was tested against 0 with a one-sample t-test across experiments (R [4.3.3]).

The combination’s surviving fraction was [1.07] times the Bliss expectation (above 1 = more surviving cells than predicted; 95% CI [0.78] to [1.47]; p = [0.58], n = [5] experiments), giving no evidence of synergy or antagonism. The combination reduced viability more than either drug alone (observed ÷ best single drug [0.63], 95% CI [0.48] to [0.83]); this comparison is not a test of synergy.

If the whole interval lies below 1, write instead: “the combination was synergistic under Bliss independence: its surviving fraction was [0.75] times the Bliss expectation (95% CI [0.62] to [0.91])”. Replace the bracketed values with your own.

References

  • Foucquier J, Guedj M (2015). Analysis of drug combinations: current methodological landscape. Pharmacology Research & Perspectives 3:e00149. doi:10.1002/prp2.149
  • Wooten DJ, Meyer CT, Lubbock ALR, Quaranta V, Lopez CF (2021). MuSyC is a consensus framework that unifies multi-drug synergy metrics for combinatorial drug discovery. Nature Communications 12:4607. doi:10.1038/s41467-021-24789-z
  • Demidenko E, Miller TW (2019). Statistical determination of synergy based on Bliss definition of drugs independence. PLOS ONE 14:e0224137. doi:10.1371/journal.pone.0224137
  • Ianevski A, Giri AK, Aittokallio T (2020). SynergyFinder 2.0: visual analytics of multi-drug combination synergies. Nucleic Acids Research 48:W488–W493. doi:10.1093/nar/gkaa216

How this page was made

  • Written and published by Licklider. Recommendations cite peer-reviewed methods papers listed under References; cited passages were checked against the source text.
  • The worked example uses constructed data. Its numbers were produced by stored code (Python 3.13 with SciPy 1.18.1; R 4.3.3, base R), and the two languages print identical output; the simulation was run in Python.
  • Separate review passes checked the statistics, the citations and readability before publication.