xynergy
Fast and high throughput Drug Synergy Prediction from Minimal Combination Data via Radial Basis Function Surface Interpolation combined with NMF and XGBoost
Workflow
A typical workflow will involve calling several functions in sequence:
tidy()- Coaxes your data into a format suitable for downstream analysispre_impute()- Fills in missing experimental points, largely to give full matrices for the next step to factorizematrix_factorize()- Approximate the imputed matrix via various matrix factorization algorithmspost_impute()- Create a final imputed dataframe using matrix factorization resultsadd_synergy()- Add columns calculating the synergy at each point under various assumptions (Bliss, Loewe, HSA, and/or ZIP)
xynergy enforces relatively few constraints on the form of your data and in theory allows you to shim in your own data transformations between any of these steps (whether that is a good idea or not is not for me to decide).
An example workflow looks something like this:
import xynergy as xyn
import xynergy.example as ex
data = ex.load_example_data()
# Normalizes column names so we can use default arguments for downstream functions
clean_data = xyn.tidy(
data,
dose_cols=["dose_a", "dose_b"],
response_col="response",
experiment_cols=["experiment_source_id", "line", "drug_a", "drug_b", "pair_index"],
)
imputed = xyn.pre_impute(clean_data, method="XGBR")
factored = xyn.matrix_factorize(imputed, method=["SVD", "NMF"])
final = xyn.post_impute(factored)
with_synergy = xyn.add_synergy(final, method=["bliss", "zip"])
The bundled workbook lives at xynergy/example_data/data.xlsx and is loaded by
xynergy.example.load_example_data(). See the tutorial "Using Xynergy" in the
Sphinx documentation for a fuller walkthrough.
Acknowledgments
This work stands on the shoulders of so many things. In addition to the software packages explicitly and implicitly used in this repo, some code/equations came from other places:
- The cNMF-like algorithm that came from DECREASE (DOI: 10.1038/s42256-019-0122-4)
- The Venter-mode code that came from the R {modeest} package (DOI: 10.32614/CRAN.package.modeest)
- The closed-form Loewe additivity algorithm from 10.3389/fphar.2018.00031
Metadata
Release files for xynergy 0.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xynergy-0.0.6.tar.gz | 70.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xynergy-0.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 146.8 kB
Release files / xynergy-0.0.6.tar.gz
| Download URL | xynergy-0.0.6.tar.gz |
|---|---|
| Size | 70.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1bb7725b67afe6a82acad7c03f6172ddb80297a9e7ac5f504f5c6b9e36a0af21
|
|
BLAKE2b-256 checksum How to use checksums |
617c8d3988af08d5f1b002dc7fcdffae818f8aba4137461a811a6e9655df1dd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / xynergy-0.0.6-py3-none-any.whl
| Download URL | xynergy-0.0.6-py3-none-any.whl |
|---|---|
| Size | 76.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c63263c584a988c65c5caf9b0c1ea4881ca0b402f8e99f811c3d8be20504e16
|
|
BLAKE2b-256 checksum How to use checksums |
09b87b32a75a4ac6dbbeb13202551d00215aa193c308b874a94674a064037e1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|