MuSyC

class synergy.combination.MuSyC(drug1_model=None, drug2_model=None, r1r=1.0, r2r=1.0, fit_gamma=True, **kwargs)[source]

The MuSyC parametric synergy model for combinations of two drugs.

In MuSyC, synergy is parametrically defined as shifts in potency (alpha), efficacy (beta), or cooperativity (gamma).

Interpretation of synergy parameters

Parameter

Values

Synergy/Antagonism

Interpretation

alpha12

[0, 1)

Antagonistic Potency

Drug 1 decreases the effective dose (potency) of drug 2

> 1

Synergistic Potency

Drug 1 increases the effective dose (potency) of drug 2

alpha21

[0, 1)

Antagonistic Potency

Drug 2 decreases the effective dose (potency) of drug 1

> 1

Synergistic Potency

Drug 2 increases the effective dose (potency) of drug 1

beta

< 0

Antagonistic Efficacy

The combination is weaker than the stronger drug

> 0

Synergistic Efficacy

The combination is stronger than the stronger drug

gamma12

[0, 1)

Antagonistic Cooperativity

Drug 1 decreases the cooperativity of drug 2

> 1

Synergistic Cooperativity

Drug 1 increases the cooperativity of drug 2

gamma21

[0, 1)

Antagonistic Cooperativity

Drug 2 decreases the cooperativity of drug 1

> 1

Synergistic Cooperativity

Drug 2 increases the cooperativity of drug 1

Parameters:
  • drug1_model (DoseResponseModel1D) – The model for the first drug.

  • drug2_model (DoseResponseModel1D) – The model for the second drug.

  • r1r (float, default=1.0) – The rate parameter for drug 1. This is required but makes very little impact on the overall output.

  • r2r (float, default=1.0) – The rate parameter for drug 2. This is required but makes very little impact on the overall output.

  • fit_gamma (bool , default="True") – If True will fit gamma, otherwise will keep it constant at 1.0

E(d1, d2)[source]

Calculate the expected effect of the combination of drugs at doses d1 and d2.

Parameters:
  • d1 (ArrayLike) – Concentration of drug 1

  • d2 (ArrayLike) – Concentration of drug 2

Return ArrayLike:

Expected effect of the combination of drugs at doses d1 and d2

E_reference(d1, d2)[source]

Return the expected effect of the combination of drugs at doses d1 and d2.

Parameters:
  • d1 (ArrayLike) – Concentration of drug 1

  • d2 (ArrayLike) – Concentration of drug 2

Return ArrayLike:

Reference (additive) values of E at the given doses

fit(d1, d2, E, **kwargs)

Fit the model to data.

Parameters:
  • d1 (ArrayLike) – Concentration of drug 1

  • d2 (ArrayLike) – Concentration of drug 2

  • E (ArrayLike) – Effect of the combination of drugs at doses d1 and d2

  • kwargs (dict) –

    • p0: Initial parameter guesses

    • bootstrap_iterations: Number of bootstrap iterations to perform to estimate confidence intervals

    • use_jacobian: whether to use the model jacobian when fitting

    • Additional kwargs for scipy.optimize.curve_fit()

get_confidence_intervals(confidence_interval=95)[source]

Return the lower bound and upper bound estimates for each parameter.

Parameters:

confidence_interval (float, default=95) – % confidence interval to return. Must be between 0 and 100.

Returns:

Lower and upper bounds for each parameter keyed by parameter name.

Return type:

Dict[str, Tuple[float, float]]

get_parameters()

Return the model’s parameters as a dict keyed by parameter name.

Return Dict[str, Any]:

Model parameters

Return type:

Dict[str, Any]

summarize(confidence_interval=95, tol=0.01)[source]

Print a summary table of the synergy model.

Parameters:
  • confidence_interval (float) – The confidence interval to use for parameter estimates (must be between 0 and 100).

  • tol (float) – The tolerance around additivity for determining synergism or antagonism.

property beta: float

Synergistic efficacy.

property is_converged: bool

True if model.fit() was called and the optimization converged.

property is_fit: bool

True if model.fit() was called.

property is_specified: bool

True if all parameters are set.