Skip to main content

synergy

A python package to calculate, analyze, and visualize drug combination synergy and antagonism. Supports multiple models of synergy:

  • MuSyC
  • Bliss
  • Loewe
  • Combination Index
  • ZIP
  • Zimmer
  • BRAID
  • Schindler
  • HSA

Citation

If you use, please cite:

Wooten, David J, and Albert, Réka. synergy - A Python library for calculating, analyzing, and visualizing drug combination synergy. (2020) Bioinformatics. https://doi.org/10.1093/bioinformatics/btaa826

Installation

Using PIP pip install synergy

From source

git clone git@github.com:djwooten/synergy.git
cd synergy
pip install -e .

Documentation

You can find extensive documentation and examples at http://synergy.readthedocs.io/

Example Usage

The general usage is the same for most synergy models, though refer to the documentation at http://synergy.readthedocs.io/ for specifics.

Fitting models

For this, I assume you have access to a drug response data set that has (at least) the following columns.

drug1.conc drug2.conc effect
0 0 1
0 0.01 0.97
0 0.1 0.9
0 1 0.7
... ... ...
from synergy.combination import MuSyC  # or any other model
import pandas as pd

df = pd.read_csv("/path/to/your_own_drug_response_data.csv")

# Instantiate the model. Bounds are optional for parametric models, and will be used when fitting to data.
# In this case, imagine that the effect data we have is known to fall between 0 and 1. Further, the given h and alpha
# bounds here are reasonable for most datasets, as changing those parameters has the most impact near `1`.
model = MuSyC(E_bounds=(0, 1), h_bounds=(1e-3, 1e3), alpha_bounds=(1e-3, 1e3))

# Prepare the input data to be fit
d1 = df["drug1.conc"]
d2 = df["drug2.conc"]
E = df["effect"]

# Fit the model (bootstrap_iterations is an option for some models to estimate parameter
model.fit(d1, d2, E, bootstrap_iterations=100)

model.summarize()

The last call to model.summarize() will print a table summarizing the synergy findings. This is only available for parametric synergy models. For example, the table may look like

Parameter  |  Value  |  95% CI          |  Comparison  |  Synergy
=====================================================================
beta       |  0.261  |  (0.175, 0.333)  |  > 0         |  synergistic
alpha12    |  3.54   |  (2.67, 4.93)    |  > 1         |  synergistic
alpha21    |  1.29   |  (0.845, 2.45)   |  ~= 1        |  additive
gamma12    |  0.947  |  (0.762, 1.2)    |  ~= 1        |  additive
gamma21    |  0.722  |  (0.487, 1.2)    |  ~= 1        |  additive

Visualization

Many utilities exist under synergy.utils.plots to create heatmaps, 3D interactive dose-response surfaces, and 3D interactive isosurfaces. These require intsalling matplotlib for the heatmaps, and plotly for the 3d plots. Many exmaples can be seen at http://synergy.readthedocs.io/models/synergy_models.html/.

The basic approach is

from synergy.utils.plots import plot_heatmap, plot_plotly_surface

plot_heatmap(d1, d2, E, title="Dose response surface", fname="heatmap.png")
plot_surface_plotly(d1, d2, E, title="Dose response surface", fname="surface.html")

License

GNU General Public License v3 or later (GPLv3+)

Release files for synergy 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for synergy 1.0.0
File Size Uploaded
synergy-1.0.0.tar.gz 101.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for synergy 1.0.0
File Interpreter ABI Platform
synergy-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 213.5 kB

Release files / synergy-1.0.0.tar.gz

Download URL synergy-1.0.0.tar.gz
Size 101.9 kB
Tags Source
SHA-256 checksum
How to use checksums
57a797b82699ce18ce165ce25c7aab5f15ebb576b8f56b20868e9a6992bb3806
BLAKE2b-256 checksum
How to use checksums
084609a08bcc41978bc628803cf73f3eaef4218a5ab78b56d73b8f00c437d7c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.14

Release files / synergy-1.0.0-py3-none-any.whl

Download URL synergy-1.0.0-py3-none-any.whl
Size 111.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
84196415a297c36d5d82ee60660aab25d1b88be7bd579b6c052718c166cc247d
BLAKE2b-256 checksum
How to use checksums
ea191ca4c3d0b8909282fa87c10b51cc162159043c41e4ce19ff3852aff23c87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.14

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page