rm(list = ls())
###############################input data
#BiocManager::install("synergyfinder")
library(synergyfinder)
## Warning: package 'synergyfinder' was built under R version 4.4.1
data("mathews_screening_data")
head(mathews_screening_data)
## block_id drug_row drug_col conc_r conc_c response conc_r_unit conc_c_unit
## 1 1 ispinesib ibrutinib 2500 50.0000 7.802637 nM nM
## 2 1 ispinesib ibrutinib 2500 12.5000 6.831317 nM nM
## 3 1 ispinesib ibrutinib 2500 3.1250 15.089589 nM nM
## 4 1 ispinesib ibrutinib 2500 0.7812 24.503885 nM nM
## 5 1 ispinesib ibrutinib 2500 0.1954 38.043076 nM nM
## 6 1 ispinesib ibrutinib 2500 0.0000 45.790634 nM nM
# Reshaping and pre-processing
#BiocManager::available()
data_1 <- mathews_screening_data
dim(data_1) #[1] 72 8
## [1] 72 8
unique(data_1$block_id) #1 2
## [1] 1 2
#View(data_1)
unique(data_1[, c(1, 2, 3)])
## block_id drug_row drug_col
## 1 1 ispinesib ibrutinib
## 37 2 canertinib ibrutinib
res <- ReshapeData(
data = mathews_screening_data,
data_type = "viability",
impute = TRUE,
impute_method = NULL,
noise = TRUE,
seed = 1)
class(res) #[1] "list"
## [1] "list"
res
## $drug_pairs
## # A tibble: 2 × 7
## block_id drug1 drug2 conc_unit1 conc_unit2 input_type replicate
## <int> <chr> <chr> <chr> <chr> <chr> <lgl>
## 1 1 ispinesib ibrutinib nM nM viability FALSE
## 2 2 canertinib ibrutinib nM nM viability FALSE
##
## $response
## # A tibble: 72 × 5
## block_id conc1 conc2 response response_origin
## <int> <dbl> <dbl> <dbl> <dbl>
## 1 1 2500 50 92.2 92.2
## 2 1 2500 12.5 93.2 93.2
## 3 1 2500 3.12 84.9 84.9
## 4 1 2500 0.781 75.5 75.5
## 5 1 2500 0.195 62.0 62.0
## 6 1 2500 0 54.2 54.2
## 7 1 625 50 94.1 94.1
## 8 1 625 12.5 93.4 93.4
## 9 1 625 3.12 85.9 85.9
## 10 1 625 0.781 76.7 76.7
## # ℹ 62 more rows
#4 Synergy and sensitivity analysis
res_1 <- CalculateSynergy(
data = res,
method = c("ZIP", "HSA", "Bliss", "Loewe"),
Emin = NA,
Emax = NA,
correct_baseline = "non")
## Calculating synergy score(s) for block 1...
## Calculating synergy score(s) for block 2...
res_1
## $drug_pairs
## # A tibble: 2 × 15
## block_id drug1 drug2 conc_unit1 conc_unit2 input_type replicate
## <int> <chr> <chr> <chr> <chr> <chr> <lgl>
## 1 1 ispinesib ibrutinib nM nM viability FALSE
## 2 2 canertinib ibrutinib nM nM viability FALSE
## # ℹ 8 more variables: ZIP_synergy_p_value <chr>, HSA_synergy_p_value <chr>,
## # Bliss_synergy_p_value <chr>, Loewe_synergy_p_value <chr>,
## # ZIP_synergy <dbl>, HSA_synergy <dbl>, Bliss_synergy <dbl>,
## # Loewe_synergy <dbl>
##
## $response
## # A tibble: 72 × 5
## block_id conc1 conc2 response response_origin
## <int> <dbl> <dbl> <dbl> <dbl>
## 1 1 2500 50 92.2 92.2
## 2 1 2500 12.5 93.2 93.2
## 3 1 2500 3.12 84.9 84.9
## 4 1 2500 0.781 75.5 75.5
## 5 1 2500 0.195 62.0 62.0
## 6 1 2500 0 54.2 54.2
## 7 1 625 50 94.1 94.1
## 8 1 625 12.5 93.4 93.4
## 9 1 625 3.12 85.9 85.9
## 10 1 625 0.781 76.7 76.7
## # ℹ 62 more rows
##
## $synergy_scores
## # A tibble: 72 × 13
## block_id conc1 conc2 ZIP_fit ZIP_ref ZIP_synergy HSA_ref HSA_synergy
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 2500 50 93.3 79.4 13.9 71.3 20.9
## 2 1 2500 12.5 92.3 79.4 12.9 54.2 39.0
## 3 1 2500 3.12 82.7 67.9 14.8 54.2 30.7
## 4 1 2500 0.781 75.2 37.2 38.1 54.2 21.3
## 5 1 2500 0.195 57.3 37.2 20.1 54.2 7.75
## 6 1 2500 0 54.2 54.2 0 54.2 0
## 7 1 625 50 93.7 79.4 14.3 71.3 22.8
## 8 1 625 12.5 92.9 79.4 13.5 60.6 32.8
## 9 1 625 3.12 83.4 67.9 15.6 60.6 25.3
## 10 1 625 0.781 75.0 37.2 37.8 60.6 16.1
## # ℹ 62 more rows
## # ℹ 5 more variables: Bliss_ref <dbl>, Bliss_synergy <dbl>, Loewe_ref <dbl>,
## # Loewe_synergy <dbl>, Loewe_ci <dbl>
#4.2 Sensitivity scoring
res_2 <- CalculateSensitivity(
data = res,
correct_baseline = "non"
)
## Calculating sensitivity scores for block 1 ...
## Calculating sensitivity scores for block 2 ...
res_2
## $drug_pairs
## # A tibble: 2 × 14
## block_id drug1 drug2 conc_unit1 conc_unit2 input_type replicate ic50_1 ic50_2
## <int> <chr> <chr> <chr> <chr> <chr> <lgl> <dbl> <dbl>
## 1 1 ispin… ibru… nM nM viability FALSE 2500 2.74
## 2 2 caner… ibru… nM nM viability FALSE 973. 1.44
## # ℹ 5 more variables: ri_1 <dbl>, ri_2 <dbl>, css1_ic502 <dbl>,
## # css2_ic501 <dbl>, css <dbl>
##
## $response
## # A tibble: 72 × 5
## block_id conc1 conc2 response response_origin
## <int> <dbl> <dbl> <dbl> <dbl>
## 1 1 2500 50 92.2 92.2
## 2 1 2500 12.5 93.2 93.2
## 3 1 2500 3.12 84.9 84.9
## 4 1 2500 0.781 75.5 75.5
## 5 1 2500 0.195 62.0 62.0
## 6 1 2500 0 54.2 54.2
## 7 1 625 50 94.1 94.1
## 8 1 625 12.5 93.4 93.4
## 9 1 625 3.12 85.9 85.9
## 10 1 625 0.781 76.7 76.7
## # ℹ 62 more rows
sensitive_columns <- c(
"block_id", "drug1", "drug2",
"ic50_1", "ic50_2",
"ri_1", "ri_2",
"css1_ic502", "css2_ic501", "css")
res_2$drug_pairs[, sensitive_columns]
## # A tibble: 2 × 10
## block_id drug1 drug2 ic50_1 ic50_2 ri_1 ri_2 css1_ic502 css2_ic501 css
## <int> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 ispinesib ibru… 2500 2.74 60.0 27.0 85.9 82.8 84.3
## 2 2 canertin… ibru… 973. 1.44 -48.0 45.2 -35.9 -6.99 -21.4
#5 Visualization
for (i in c(1, 2)){
PlotDoseResponseCurve(
data = res_2,
plot_block = 1,
drug_index = i,
plot_new = FALSE,
record_plot = FALSE
)
}


#5.2 Two-drug combination visualization
#5.2.1 Heatmap
Plot2DrugHeatmap(
data = res_2,
plot_block = 1,
drugs = c(1, 2),
plot_value = "response",
dynamic = FALSE,
summary_statistic = c("mean", "median")
)

Plot2DrugHeatmap(
data = res_1,
plot_block = 1,
drugs = c(1, 2),
plot_value = "ZIP_synergy",
dynamic = FALSE,
summary_statistic = c( "quantile_25", "quantile_75")
)

#5.2.2 2D contour plot
Plot2DrugContour(
data = res_2,
plot_block = 1,
drugs = c(1, 2),
plot_value = "response",
dynamic = FALSE,
summary_statistic = c("mean", "median")
)

Plot2DrugContour(
data = res_1,
plot_block = 1,
drugs = c(1, 2),
plot_value = "ZIP_synergy",
dynamic = FALSE,
summary_statistic = c("quantile_25", "quantile_75")
)

#5.2.3 3D surface plot
Plot2DrugSurface(
data = res,
plot_block = 1,
drugs = c(1, 2),
plot_value = "response",
dynamic = FALSE,
summary_statistic = c("mean", "quantile_25", "median", "quantile_75")
)


Plot2DrugSurface(
data = res_1,
plot_block = 1,
drugs = c(1, 2),
plot_value = "ZIP_synergy",
dynamic = FALSE,
summary_statistic = c("mean", "quantile_25", "median", "quantile_75")
)


#5.3 Plotting wrapper for two-drug combination
PlotDoseResponse(
data = res_2,
block_ids = c(1, 2),
drugs = c(1,2),
save_file = TRUE,
file_type = "png"
)

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values

## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## $`1`
##
## $`2`
PlotSynergy(
data = res_1,
type = "2D",
method = "ZIP",
block_ids = c(1, 2),
drugs = c(1,2),
save_file = TRUE,
file_type = "png"
)
## $`1`
##
## $`2`
#5.4 Synergy barometer
# Block1: ispinesib (drug1) 9.7656 nM + ibrutinib (drug2) 50 nM
PlotBarometer(
data = res,
plot_block = 1,
plot_concs = c(9.7656, 50),
needle_text_offset = 2.5 # Move the texts below the needle
)
# Block2: Canertinib (drug1) 625 nM + Ibrutinib (drug2) 12.5 nM
PlotBarometer(
data = res,
plot_block = 2,
plot_concs = c(625, 12.5),
needle_text_offset = -2.5 # Move the texts above the needle
)
#5.5 Barplot
PlotMultiDrugBar(
data = res_1,
plot_block = 1,
plot_value = c("response", "ZIP_synergy", "Loewe_synergy", "HSA_synergy", "Bliss_synergy"),
sort_by = "response",
highlight_row = c(9.7656, 50),
highlight_label_size = 8
)
# #5.6 SS plot
# PlotSensitivitySynergy(
# data = res_2,
# plot_synergy = "ZIP",
# show_labels = TRUE,
# dynamic = FALSE
# )
#6 Data with replicates
data("ONEIL_screening_data")
head(ONEIL_screening_data, 30)
## block_id drug1 drug2 cell_line_name conc1 conc2 response conc_unit
## 1 1 MK-1775 Niraparib OCUBM 0.0000 0.000 -0.000626 uM
## 2 1 MK-1775 Niraparib OCUBM 0.0000 0.223 2.127464 uM
## 3 1 MK-1775 Niraparib OCUBM 0.0000 0.775 2.268122 uM
## 4 1 MK-1775 Niraparib OCUBM 0.0000 2.750 24.505645 uM
## 5 1 MK-1775 Niraparib OCUBM 0.0000 10.000 44.475959 uM
## 6 1 MK-1775 Niraparib OCUBM 0.0325 0.000 2.371026 uM
## 7 1 MK-1775 Niraparib OCUBM 0.0325 0.223 91.690487 uM
## 8 1 MK-1775 Niraparib OCUBM 0.0325 0.775 89.622390 uM
## 9 1 MK-1775 Niraparib OCUBM 0.0325 2.750 89.346984 uM
## 10 1 MK-1775 Niraparib OCUBM 0.0325 10.000 83.031782 uM
## 11 1 MK-1775 Niraparib OCUBM 0.0800 0.000 10.368144 uM
## 12 1 MK-1775 Niraparib OCUBM 0.0800 0.223 88.524738 uM
## 13 1 MK-1775 Niraparib OCUBM 0.0800 0.775 89.724379 uM
## 14 1 MK-1775 Niraparib OCUBM 0.0800 2.750 95.815944 uM
## 15 1 MK-1775 Niraparib OCUBM 0.0800 10.000 91.430075 uM
## 16 1 MK-1775 Niraparib OCUBM 0.2000 0.000 27.062045 uM
## 17 1 MK-1775 Niraparib OCUBM 0.2000 0.223 35.194576 uM
## 18 1 MK-1775 Niraparib OCUBM 0.2000 0.775 44.260785 uM
## 19 1 MK-1775 Niraparib OCUBM 0.2000 2.750 73.993821 uM
## 20 1 MK-1775 Niraparib OCUBM 0.2000 10.000 93.264011 uM
## 21 1 MK-1775 Niraparib OCUBM 0.5000 0.000 60.773370 uM
## 22 1 MK-1775 Niraparib OCUBM 0.5000 0.223 66.474695 uM
## 23 1 MK-1775 Niraparib OCUBM 0.5000 0.775 65.412125 uM
## 24 1 MK-1775 Niraparib OCUBM 0.5000 2.750 86.510594 uM
## 25 1 MK-1775 Niraparib OCUBM 0.5000 10.000 95.319620 uM
## 26 1 MK-1775 Niraparib OCUBM 0.0000 0.000 -0.000626 uM
## 27 1 MK-1775 Niraparib OCUBM 0.0000 0.223 2.127464 uM
## 28 1 MK-1775 Niraparib OCUBM 0.0000 0.775 2.268122 uM
## 29 1 MK-1775 Niraparib OCUBM 0.0000 2.750 24.505645 uM
## 30 1 MK-1775 Niraparib OCUBM 0.0000 10.000 44.475959 uM
data_2 <- ONEIL_screening_data
unique(data_2[, c(1,2,3,4)])
## block_id drug1 drug2 cell_line_name
## 1 1 MK-1775 Niraparib OCUBM
## 101 2 Paclitaxel L-778123 free base NCIH2122
dim(data_2) #[1] 200 8
## [1] 200 8
#table(data_2$block_id, data_2$cell_line_name, data_2$conc1)
res_1 <- ReshapeData(
data = ONEIL_screening_data,
data_type = "inhibition",
impute = TRUE,
impute_method = NULL,
noise = TRUE,
iteration = 10, # Number of iterations for bootstrapping
seed = 1
)
res_1
## $drug_pairs
## # A tibble: 2 × 9
## block_id drug1 drug2 conc_unit1 conc_unit2 input_type replicate
## <int> <chr> <chr> <chr> <chr> <chr> <lgl>
## 1 1 MK-1775 Niraparib uM uM inhibition TRUE
## 2 2 Paclitaxel L-778123 free … uM uM inhibition TRUE
## # ℹ 2 more variables: response_p_value <chr>, response_origin_p_value <chr>
##
## $response
## # A tibble: 200 × 5
## block_id conc1 conc2 response response_origin
## <int> <dbl> <dbl> <dbl> <dbl>
## 1 1 0 0 -0.00125 -0.000626
## 2 1 0 0.223 2.13 2.13
## 3 1 0 0.775 2.27 2.27
## 4 1 0 2.75 24.5 24.5
## 5 1 0 10 44.5 44.5
## 6 1 0.0325 0 2.37 2.37
## 7 1 0.0325 0.223 91.7 91.7
## 8 1 0.0325 0.775 89.6 89.6
## 9 1 0.0325 2.75 89.3 89.3
## 10 1 0.0325 10 83.0 83.0
## # ℹ 190 more rows
##
## $response_statistics
## # A tibble: 50 × 14
## block_id conc1 conc2 response_sd response_mean response_origin_sd
## <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 0 0 0.000462 -0.000624 0
## 2 1 0 0.223 0.000349 2.13 0
## 3 1 0 0.775 0.000819 2.27 0
## 4 1 0 2.75 0.00116 24.5 0
## 5 1 0 10 0.000827 44.5 0
## 6 1 0.0325 0 0.00139 2.37 0
## 7 1 0.0325 0.223 31.0 57.8 31.0
## 8 1 0.0325 0.775 35.5 55.1 35.5
## 9 1 0.0325 2.75 17.0 75.6 17.0
## 10 1 0.0325 10 3.13 84.3 3.13
## # ℹ 40 more rows
## # ℹ 8 more variables: response_origin_mean <dbl>, n <int>, response_sem <dbl>,
## # response_ci_left <dbl>, response_ci_right <dbl>, response_origin_sem <dbl>,
## # response_origin_ci_left <dbl>, response_origin_ci_right <dbl>
#6.2 Drug synergy scoring
res_sy <- CalculateSynergy(
data = res_1,
method = c("ZIP", "HSA", "Bliss", "Loewe"),
Emin = NA,
Emax = NA,
correct_baseline = "non")
## Calculating synergy score(s) for block 1...
## Calculating synergy score(s) for block 2...
res_sy$drug_pairs
## # A tibble: 2 × 17
## block_id drug1 drug2 conc_unit1 conc_unit2 input_type replicate
## <int> <chr> <chr> <chr> <chr> <chr> <lgl>
## 1 1 MK-1775 Niraparib uM uM inhibition TRUE
## 2 2 Paclitaxel L-778123 free … uM uM inhibition TRUE
## # ℹ 10 more variables: response_p_value <chr>, response_origin_p_value <chr>,
## # ZIP_synergy_p_value <chr>, HSA_synergy_p_value <chr>,
## # Bliss_synergy_p_value <chr>, Loewe_synergy_p_value <chr>,
## # ZIP_synergy <dbl>, HSA_synergy <dbl>, Bliss_synergy <dbl>,
## # Loewe_synergy <dbl>
res_sy$synergy_scores_statistics
## # A tibble: 50 × 53
## block_id conc1 conc2 ZIP_fit_mean ZIP_fit_sd ZIP_fit_sem ZIP_fit_ci_left
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 0 0 -0.000660 0.000250 0.0000789 -0.00101
## 2 1 0 0.223 2.13 0.000191 0.0000604 2.13
## 3 1 0 0.775 2.27 0.000528 0.000167 2.27
## 4 1 0 2.75 24.5 0.000466 0.000147 24.5
## 5 1 0 10 44.5 0.000352 0.000111 44.5
## 6 1 0.0325 0 2.37 0.000740 0.000234 2.37
## 7 1 0.0325 0.223 52.1 11.9 3.76 32.8
## 8 1 0.0325 0.775 59.5 8.57 2.71 43.5
## 9 1 0.0325 2.75 74.5 5.78 1.83 66.3
## 10 1 0.0325 10 83.1 1.57 0.498 81.6
## # ℹ 40 more rows
## # ℹ 46 more variables: ZIP_fit_ci_right <dbl>, ZIP_ref_mean <dbl>,
## # ZIP_ref_sd <dbl>, ZIP_ref_sem <dbl>, ZIP_ref_ci_left <dbl>,
## # ZIP_ref_ci_right <dbl>, ZIP_synergy_mean <dbl>, ZIP_synergy_sd <dbl>,
## # ZIP_synergy_sem <dbl>, ZIP_synergy_ci_left <dbl>,
## # ZIP_synergy_ci_right <dbl>, HSA_ref_mean <dbl>, HSA_ref_sd <dbl>,
## # HSA_ref_sem <dbl>, HSA_ref_ci_left <dbl>, HSA_ref_ci_right <dbl>, …
#6.3 Sensitivity scoring
res_2 <- CalculateSensitivity(
data = res_1,
correct_baseline = "non",
iteration = 10 # Number of iterations for bootstrapping
)
## Calculating sensitivity scores for block 1 ...
## | | | 0% | |======== | 11% | |================ | 22% | |======================= | 33% | |=============================== | 44% | |======================================= | 56% | |=============================================== | 67% | |====================================================== | 78% | |============================================================== | 89% | |======================================================================| 100%
##
## Calculating sensitivity scores for block 2 ...
## | | | 0% | |======== | 11% | |================ | 22% | |======================= | 33% | |=============================== | 44% | |======================================= | 56% | |=============================================== | 67% | |====================================================== | 78% | |============================================================== | 89% | |======================================================================| 100%
##
res_2
## $drug_pairs
## # A tibble: 2 × 16
## block_id drug1 drug2 conc_unit1 conc_unit2 input_type replicate
## <int> <chr> <chr> <chr> <chr> <chr> <lgl>
## 1 1 MK-1775 Niraparib uM uM inhibition TRUE
## 2 2 Paclitaxel L-778123 free … uM uM inhibition TRUE
## # ℹ 9 more variables: response_p_value <chr>, response_origin_p_value <chr>,
## # ic50_1 <dbl>, ic50_2 <dbl>, ri_1 <dbl>, ri_2 <dbl>, css1_ic502 <dbl>,
## # css2_ic501 <dbl>, css <dbl>
##
## $response
## # A tibble: 200 × 5
## block_id conc1 conc2 response response_origin
## <int> <dbl> <dbl> <dbl> <dbl>
## 1 1 0 0 -0.00125 -0.000626
## 2 1 0 0.223 2.13 2.13
## 3 1 0 0.775 2.27 2.27
## 4 1 0 2.75 24.5 24.5
## 5 1 0 10 44.5 44.5
## 6 1 0.0325 0 2.37 2.37
## 7 1 0.0325 0.223 91.7 91.7
## 8 1 0.0325 0.775 89.6 89.6
## 9 1 0.0325 2.75 89.3 89.3
## 10 1 0.0325 10 83.0 83.0
## # ℹ 190 more rows
##
## $response_statistics
## # A tibble: 50 × 14
## block_id conc1 conc2 response_sd response_mean response_origin_sd
## <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 0 0 0.000462 -0.000624 0
## 2 1 0 0.223 0.000349 2.13 0
## 3 1 0 0.775 0.000819 2.27 0
## 4 1 0 2.75 0.00116 24.5 0
## 5 1 0 10 0.000827 44.5 0
## 6 1 0.0325 0 0.00139 2.37 0
## 7 1 0.0325 0.223 31.0 57.8 31.0
## 8 1 0.0325 0.775 35.5 55.1 35.5
## 9 1 0.0325 2.75 17.0 75.6 17.0
## 10 1 0.0325 10 3.13 84.3 3.13
## # ℹ 40 more rows
## # ℹ 8 more variables: response_origin_mean <dbl>, n <int>, response_sem <dbl>,
## # response_ci_left <dbl>, response_ci_right <dbl>, response_origin_sem <dbl>,
## # response_origin_ci_left <dbl>, response_origin_ci_right <dbl>
##
## $sensitivity_scores_statistics
## block_id ic50_1_mean ic50_2_mean ri_1_mean ri_2_mean
## 1 1 0.5 2.64214451637003 22.0257 16.8071
## 2 2 0.00157428688872753 0.375135166419372 62.6112 48.5743
## css1_ic502_mean css2_ic501_mean css_mean ic50_1_sd
## 1 79.88 80.2685 80.07425 0
## 2 0.6427 0.5584 0.60055 0.000000316559225621089
## ic50_2_sd ri_1_sd ri_2_sd
## 1 0.0000488815419053813 0.00525039681040095 0.000316227766017224
## 2 0.00000624302934321902 0.000421637021357797 0.000483045891541954
## css1_ic502_sd css2_ic501_sd css_sd ic50_1_sem
## 1 3.68889212516592 5.62709696715614 3.47403477602053 0
## 2 1.14201236128745 1.83968440530193 1.38116463436559 0.000000100104816730177
## ic50_2_sem ri_1_sem ri_2_sem
## 1 0.0000154577007961972 0.00166032125405502 0.000100000000000122
## 2 0.00000197421922238372 0.00013333333333397 0.000152752523165924
## css1_ic502_sem css2_ic501_sem css_sem ic50_1_ci_left
## 1 1.16653011581832 1.77944430308391 1.09858625628578 0.5
## 2 0.361136017773544 0.581759289664644 0.436762606826892 0.00157400274871024
## ic50_2_ci_left ri_1_ci_left ri_2_ci_left css1_ic502_ci_left
## 1 2.64209193225961 22.01935 16.807 73.71755
## 2 0.375124678423372 62.611 48.574 -1.440475
## css2_ic501_ci_left css_ci_left ic50_1_ci_right ic50_2_ci_right
## 1 70.2681 74.8485625 0.5 2.64222224300618
## 2 -1.9396 -1.5926125 0.00157495595803027 0.375144201469938
## ri_1_ci_right ri_2_ci_right css1_ic502_ci_right css2_ic501_ci_right
## 1 22.036075 16.807775 85.10155 86.591475
## 2 62.612 48.575 2.2193 3.5085
## css_ci_right ri_1_p_value ri_2_p_value css_p_value
## 1 84.130825 < 2e-324 < 2e-324 6.91e-104
## 2 2.6736 < 2e-324 < 2e-324 6.77e-01
res_2$sensitivity_scores_statistics
## block_id ic50_1_mean ic50_2_mean ri_1_mean ri_2_mean
## 1 1 0.5 2.64214451637003 22.0257 16.8071
## 2 2 0.00157428688872753 0.375135166419372 62.6112 48.5743
## css1_ic502_mean css2_ic501_mean css_mean ic50_1_sd
## 1 79.88 80.2685 80.07425 0
## 2 0.6427 0.5584 0.60055 0.000000316559225621089
## ic50_2_sd ri_1_sd ri_2_sd
## 1 0.0000488815419053813 0.00525039681040095 0.000316227766017224
## 2 0.00000624302934321902 0.000421637021357797 0.000483045891541954
## css1_ic502_sd css2_ic501_sd css_sd ic50_1_sem
## 1 3.68889212516592 5.62709696715614 3.47403477602053 0
## 2 1.14201236128745 1.83968440530193 1.38116463436559 0.000000100104816730177
## ic50_2_sem ri_1_sem ri_2_sem
## 1 0.0000154577007961972 0.00166032125405502 0.000100000000000122
## 2 0.00000197421922238372 0.00013333333333397 0.000152752523165924
## css1_ic502_sem css2_ic501_sem css_sem ic50_1_ci_left
## 1 1.16653011581832 1.77944430308391 1.09858625628578 0.5
## 2 0.361136017773544 0.581759289664644 0.436762606826892 0.00157400274871024
## ic50_2_ci_left ri_1_ci_left ri_2_ci_left css1_ic502_ci_left
## 1 2.64209193225961 22.01935 16.807 73.71755
## 2 0.375124678423372 62.611 48.574 -1.440475
## css2_ic501_ci_left css_ci_left ic50_1_ci_right ic50_2_ci_right
## 1 70.2681 74.8485625 0.5 2.64222224300618
## 2 -1.9396 -1.5926125 0.00157495595803027 0.375144201469938
## ri_1_ci_right ri_2_ci_right css1_ic502_ci_right css2_ic501_ci_right
## 1 22.036075 16.807775 85.10155 86.591475
## 2 62.612 48.575 2.2193 3.5085
## css_ci_right ri_1_p_value ri_2_p_value css_p_value
## 1 84.130825 < 2e-324 < 2e-324 6.91e-104
## 2 2.6736 < 2e-324 < 2e-324 6.77e-01
#6.4 Visualization
# Standard error of mean
Plot2DrugHeatmap(
data = res_2,
plot_block = 1,
drugs = c(1, 2),
plot_value = "response",
dynamic = FALSE,
statistic = "sem",
summary_statistic = c("mean", "median")
)
# 95% confidence interval
Plot2DrugHeatmap(
data = res_sy,
plot_block = 1,
drugs = c(1, 2),
plot_value = "ZIP_synergy",
statistic = "ci",
dynamic = FALSE,
summary_statistic = c("quantile_25", "quantile_75")
)
#7 Higher-order drug combination screening
data("NCATS_screening_data")
head(NCATS_screening_data)
## block_id drug1 drug2 drug3 conc1
## 1 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate 0.60000
## 2 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate 0.30000
## 3 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate 0.15000
## 4 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate 0.07500
## 5 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate 0.03750
## 6 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate 0.01875
## conc2 conc3 response conc_unit1 conc_unit2 conc_unit3
## 1 0.075 0 3.079183 uM uM uM
## 2 0.075 0 3.867034 uM uM uM
## 3 0.075 0 1.937995 uM uM uM
## 4 0.075 0 1.601282 uM uM uM
## 5 0.075 0 4.680111 uM uM uM
## 6 0.075 0 4.592774 uM uM uM
data_3 <- NCATS_screening_data
head(data_3, 50)
## block_id drug1 drug2 drug3
## 1 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 2 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 3 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 4 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 5 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 6 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 7 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 8 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 9 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 10 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 11 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 12 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 13 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 14 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 15 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 16 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 17 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 18 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 19 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 20 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 21 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 22 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 23 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 24 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 25 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 26 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 27 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 28 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 29 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 30 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 31 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 32 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 33 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 34 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 35 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 36 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 37 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 38 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 39 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 40 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 41 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 42 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 43 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 44 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 45 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 46 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 47 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 48 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 49 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## 50 1 Piperaquine Pyronaridine Tetraphosphate Darunavir Ethanolate
## conc1 conc2 conc3 response conc_unit1 conc_unit2 conc_unit3
## 1 0.60000000 0.0750000 0 3.079183 uM uM uM
## 2 0.30000000 0.0750000 0 3.867034 uM uM uM
## 3 0.15000000 0.0750000 0 1.937995 uM uM uM
## 4 0.07500000 0.0750000 0 1.601282 uM uM uM
## 5 0.03750000 0.0750000 0 4.680111 uM uM uM
## 6 0.01875000 0.0750000 0 4.592774 uM uM uM
## 7 0.00937500 0.0750000 0 3.709694 uM uM uM
## 8 0.00468750 0.0750000 0 3.525223 uM uM uM
## 9 0.00234375 0.0750000 0 2.785740 uM uM uM
## 10 0.00000000 0.0750000 0 3.828242 uM uM uM
## 11 0.60000000 0.0375000 0 0.469935 uM uM uM
## 12 0.30000000 0.0375000 0 2.849359 uM uM uM
## 13 0.15000000 0.0375000 0 1.806546 uM uM uM
## 14 0.07500000 0.0375000 0 2.444195 uM uM uM
## 15 0.03750000 0.0375000 0 1.544446 uM uM uM
## 16 0.01875000 0.0375000 0 3.905338 uM uM uM
## 17 0.00937500 0.0375000 0 6.088852 uM uM uM
## 18 0.00468750 0.0375000 0 3.605466 uM uM uM
## 19 0.00234375 0.0375000 0 4.147887 uM uM uM
## 20 0.00000000 0.0375000 0 4.928156 uM uM uM
## 21 0.60000000 0.0187500 0 1.604961 uM uM uM
## 22 0.30000000 0.0187500 0 1.695712 uM uM uM
## 23 0.15000000 0.0187500 0 3.259754 uM uM uM
## 24 0.07500000 0.0187500 0 3.967405 uM uM uM
## 25 0.03750000 0.0187500 0 5.695037 uM uM uM
## 26 0.01875000 0.0187500 0 15.442645 uM uM uM
## 27 0.00937500 0.0187500 0 52.692850 uM uM uM
## 28 0.00468750 0.0187500 0 21.773823 uM uM uM
## 29 0.00234375 0.0187500 0 26.626480 uM uM uM
## 30 0.00000000 0.0187500 0 59.791220 uM uM uM
## 31 0.60000000 0.0093750 0 1.658162 uM uM uM
## 32 0.30000000 0.0093750 0 1.333064 uM uM uM
## 33 0.15000000 0.0093750 0 2.254580 uM uM uM
## 34 0.07500000 0.0093750 0 4.083958 uM uM uM
## 35 0.03750000 0.0093750 0 5.890681 uM uM uM
## 36 0.01875000 0.0093750 0 47.977493 uM uM uM
## 37 0.00937500 0.0093750 0 25.577060 uM uM uM
## 38 0.00468750 0.0093750 0 38.347150 uM uM uM
## 39 0.00234375 0.0093750 0 52.555725 uM uM uM
## 40 0.00000000 0.0093750 0 52.755226 uM uM uM
## 41 0.60000000 0.0046875 0 1.403909 uM uM uM
## 42 0.30000000 0.0046875 0 1.004641 uM uM uM
## 43 0.15000000 0.0046875 0 2.196902 uM uM uM
## 44 0.07500000 0.0046875 0 7.130911 uM uM uM
## 45 0.03750000 0.0046875 0 11.649027 uM uM uM
## 46 0.01875000 0.0046875 0 54.259110 uM uM uM
## 47 0.00937500 0.0046875 0 75.981900 uM uM uM
## 48 0.00468750 0.0046875 0 67.842674 uM uM uM
## 49 0.00234375 0.0046875 0 91.257770 uM uM uM
## 50 0.00000000 0.0046875 0 87.117460 uM uM uM
res_1 <- ReshapeData(
data = NCATS_screening_data,
data_type = "inhibition",
impute = TRUE,
impute_method = NULL,
noise = TRUE,
seed = 1
)
res_1
## $drug_pairs
## # A tibble: 2 × 9
## block_id drug1 drug2 drug3 conc_unit1 conc_unit2 conc_unit3 input_type
## <int> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1 Piperaquine Pyrona… Daru… uM uM uM inhibition
## 2 2 Piperaquine Pyrona… Lopi… uM uM uM inhibition
## # ℹ 1 more variable: replicate <lgl>
##
## $response
## # A tibble: 2,400 × 6
## block_id conc1 conc2 conc3 response response_origin
## <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 0.6 0.075 0 3.08 3.08
## 2 1 0.3 0.075 0 3.87 3.87
## 3 1 0.15 0.075 0 1.94 1.94
## 4 1 0.075 0.075 0 1.60 1.60
## 5 1 0.0375 0.075 0 4.68 4.68
## 6 1 0.0188 0.075 0 4.59 4.59
## 7 1 0.00938 0.075 0 3.71 3.71
## 8 1 0.00469 0.075 0 3.53 3.53
## 9 1 0.00234 0.075 0 2.79 2.79
## 10 1 0 0.075 0 3.83 3.83
## # ℹ 2,390 more rows
#ref https://www.bioconductor.org/packages/release/bioc/vignettes/synergyfinder/inst/doc/User_tutorual_of_the_SynergyFinder_plus.html
