View source: R/fit_MuSyC_score_by_dose.R
fit_MuSyC_score_by_dose | R Documentation |
Fit the MuSyC synergy model by dose
fit_MuSyC_score_by_dose( well_scores, group_vars = vars(compound), C1_prior = brms::prior(normal(0.5, 0.5), nlpar = "C1", lb = 0), C2_prior = brms::prior(normal(0.5, 0.5), nlpar = "C2", lb = 0), s1_prior = brms::prior(normal(1, 3), nlpar = "s1", lb = -0.1), s2_prior = brms::prior(normal(1, 3), nlpar = "s2", lb = -0.1), log10alpha_prior = brms::prior(normal(0, 0.5), nlpar = "log10alpha", lb = 0), E0_prior = brms::prior(beta(1, 1), nlpar = "E0", lb = 0, ub = 1), E1_prior = brms::prior(beta(1, 1), nlpar = "E1", lb = 0, ub = 1), E2_prior = brms::prior(beta(1, 1), nlpar = "E2", lb = 0, ub = 1), E3_alpha_prior = brms::prior(normal(0, 2), nlpar = "E3alpha", lb = 0), C1_init = function() { as.array(runif(1, 0, 2)) }, C2_init = function() { as.array(runif(1, 0, 2)) }, s1_init = function() { as.array(runif(1, -0.1, 2)) }, s2_init = function() { as.array(runif(1, -0.1, 2)) }, log10alpha_init = function() { as.array(0) }, E0_init = function() { as.array(rbeta(1, 1, 1)) }, E1_init = function() { as.array(rbeta(1, 1, 1)) }, E2_init = function() { as.array(rbeta(1, 1, 1)) }, E3_alpha_init = function() { as.array(rnorm(1, 0, 2)) }, combine = FALSE, verbose = FALSE, iter = 8000, cores = 4, stan_model_args = list(verbose = FALSE), control = list(adapt_delta = 0.99, max_treedepth = 12), model_evaluation_criteria = c("loo", "bayes_R2"), ... )
well_scores |
data.frame with columns: dose1, dose2, n_positive, count, [<group_vars>] |
group_vars |
quosures list dplyr::vars(...) columns to over when fitting synergy model |
C1_prior |
prior distribution for Ed when d1=d1_IC50, d2=0 |
C2_prior |
prior distribution for Ed when d1=0, d2=d2_IC50 |
s1_prior |
prior distribution for d(Ed)/d(d1) when d1=d1_IC50, d2=0 |
s2_prior |
prior distribution for d(Ed)/d(d2) when d1=0, d2=d2_IC50 |
log10alpha_prior |
prior distribution for alpha synergy parameter |
E0_prior |
prior distribution for Ed when d1=0, d2=0 |
E1_prior |
prior distribution for Ed when d1=Inf, d2=0 |
E2_prior |
prior distribution for Ed when d1=0, d2=Inf |
E3_alpha_prior |
prior distribution for Ed scaled by alpha when d1=Inf, d2=Inf |
C1_init |
initial sampling distribution for the C1 parameter |
C2_init |
initial sampling distribution for the C2 parameter |
s1_init |
initial sampling distribution for the s1 parameter |
s2_init |
initial sampling distribution for the s2 parameter |
log10alpha_init |
intial sampling distribution for the alpha parameter |
E0_init |
initial sampling distribution for the E0 parameter |
E1_init |
initial sampling distribution for the E1 parameter |
E2_init |
initial sampling distribution for the E2 parameter |
E3_alpha_init |
initial sampling distribution for the E3 parameter |
combine |
combine the grouped models into a single brms model |
verbose |
verbose output |
iter |
number of stan NUTS sampling steps |
cores |
number of cores used for sampling |
stan_model_args |
stan model arguments |
control |
stan control arguments The bernoulli_inf(n_positive / count) = Ed ~ MuSyC(d1, d2, C_params, E_params, s_params, alpha) To improve numeric stability, the d1 and d2 and C1 and C2 variables are scaled to improve numeric stability: d1 = dose1/max(dose1) d2 = dose2/max(dose2) drug1_IC50 = C1 * max(dose1) drug2_IC50 = C2 * max(dose2) Functional form: Ed ~ ( C1^h1 * C2^h2 * E0 + d1^h1 * C2^h2 * E1 + C1^h1 * d2^h2 * E2 + d1^h1 * d2^h2 * E3 * alpha ) / ( C1^h1 * C2^h2 + d1^h1 * C2^h2 + C1^h1 * d2^h2 + d1^h1 * d2^h2 * alpha ) ############################################## # Proof of the definitions of the parameters # ############################################## Claim: When d1=0 and d2=0 then Ed = E0 Ed = (C1^h1 * C2^h2 * E0) / (C1^h1 * C2^h2) = E0 Claim: When d1=0 and d2 -> Inf then Ed = E2 Ed = (C2^h2 * E0 + d2^h2 * E2) / (C2^h2 + d2^h2) = (d2^h2 * E2) / (d2^h2) = E2 When d1>0 and d2 -> Inf then Ed Ed = (C1^h1 * C2^h2 * E0 + C1^h1 * C2^h2 * E2) / (C1^h1 * C2^h2 + C1^h1 * C2^h2) = (E0 + E2) / 2 |
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.