ZIP

class synergy.combination.ZIP(use_jacobian=True, drug1_model=None, drug2_model=None, **kwargs)[source]

A model used to fit the Zero Interaction Potency (ZIP) model (doi: 10.1016/j.csbj.2015.09.001).

This model is based on the multiplicative survival principal (i.e., Bliss). All across the dose-response surface, it fits Hill-equations either holding d1==constant or d2==constant.

ZIP quantifies changes in the EC50 (C) and Hill-slope (h) of each drug, as the other is increased. For instance, at a given d1==D1, d2==D2, ZIP fits two Hill equations: one for drug1 (fixing d2==D2), and one for drug2 (fixing d1==D1). These Hill equations are averaged to get a fit value of E (y_c in their paper) at these doses. This is then subtracted from the expected result (y_zip in their paper) obtained by assuming these Hill equations have equivalent h and C to their single-drug counterparts. This difference (delta in their paper) becomes the metric of synergy.

ZIP models store these delta values as model._synergy, but also store the Hill equation fits for drug1 and drug2 across the whole surface, allowing investigation of how h and C change across the surface

Members

synergyarray_like

(-inf,0)=antagonism, (0,inf)=synergism. The “delta” synergy score from ZIP

_h_21array_like

The hill slope of drug 1 obtained by holding D2==constant

_h_12array_like

The hill slope of drug 2 obtained by holding D1==constant

_C_21array_like

The EC50 of drug 1 obtained by holding D2==constant

_C_12array_like

The EC50 of drug 2 obtained by holding D1==constant

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) –

    • use_jacobian: whether to use the model jacobian when fitting single-drug models

    • Additional keyword arguments for scipy.optimize.curve_fit()

Return ArrayLike:

Synergy values

property is_fit

True if the model has been fit to data.

property is_specified

True if each single-drug model is specified.