annotate dose_response.R @ 3:2aa9da0a84a4 draft default tip

planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
author ufz
date Tue, 21 Jan 2025 12:26:00 +0000
parents c122403ac78a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
1 library(drc)
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
2 library(ggplot2)
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
3
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
4 fit_models <- function(data, concentration_col, response_col) {
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
5 models <- list(
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
6 LL.2 = drm(data[[response_col]] ~ data[[concentration_col]], data = data, fct = LL.2(), type = "binomial"),
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
7 LL.4 = drm(data[[response_col]] ~ data[[concentration_col]], data = data, fct = LL.4(), type = "binomial"),
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
8 W1.4 = drm(data[[response_col]] ~ data[[concentration_col]], data = data, fct = W1.4(), type = "binomial"),
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
9 W2.4 = drm(data[[response_col]] ~ data[[concentration_col]], data = data, fct = W2.4(), type = "binomial"),
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
10 BC.5 = drm(data[[response_col]] ~ data[[concentration_col]], data = data, fct = BC.5(), type = "binomial")
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
11 )
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
12 return(models)
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
13 }
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
14
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
15 select_best_model <- function(models) {
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
16 aic_values <- sapply(models, AIC)
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
17 best_model_name <- names(which.min(aic_values))
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
18 best_model <- models[[best_model_name]]
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
19 return(list(name = best_model_name, model = best_model))
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
20 }
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
21
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
22 calculate_ec_values <- function(model) {
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
23 ec50 <- ED(model, 50, type = "relative")
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
24 ec25 <- ED(model, 25, type = "relative")
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
25 ec10 <- ED(model, 10, type = "relative")
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
26 return(list(EC50 = ec50, EC25 = ec25, EC10 = ec10))
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
27 }
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
28
3
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
29 plot_dose_response <- function(model, data, ec_values, concentration_col, response_col, replicate_col, plot_file, compound_name, concentration_unit) {
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
30 # Generate a grid of concentration values for predictions
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
31 concentration_grid <- seq(min(data[[concentration_col]]), max(data[[concentration_col]]), length.out = 100)
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
32 prediction_data <- data.frame(concentration_grid)
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
33 colnames(prediction_data) <- concentration_col
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
34
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
35 # Compute predictions with confidence intervals
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
36 predictions <- predict(model, newdata = prediction_data, type = "response", interval = "confidence")
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
37 prediction_data$resp <- predictions[, 1]
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
38 prediction_data$lower <- predictions[, 2]
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
39 prediction_data$upper <- predictions[, 3]
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
40
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
41 print(prediction_data)
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
42
3
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
43 # Ensure replicate_col is treated as a factor
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
44 data[[replicate_col]] <- factor(data[[replicate_col]])
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
45
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
46 # Create the plot
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
47 p <- ggplot(data, aes_string(x = concentration_col, y = response_col)) +
3
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
48 geom_point(aes_string(colour = replicate_col)) + # Original data points
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
49 geom_line(data = prediction_data, aes_string(x = concentration_col, y = response_col), color = "blue") + # Predicted curve
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
50 geom_ribbon(data = prediction_data, aes_string(x = concentration_col, ymin = "lower", ymax = "upper"), alpha = 0.2, fill = "blue") + # Confidence intervals
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
51 geom_vline(xintercept = ec_values$EC10[1], color = "green", linetype = "dashed") +
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
52 geom_vline(xintercept = ec_values$EC50[1], color = "red", linetype = "dashed") +
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
53 labs(
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
54 title = paste(compound_name, "- Dose-Response Curve"),
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
55 x = paste("Dose [", concentration_unit, "]"),
3
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
56 y = "Response %",
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
57 colour = "Replicates"
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
58 ) +
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
59 theme_minimal() +
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
60 theme(
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
61 panel.background = element_rect(fill = "white", color = NA),
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
62 plot.background = element_rect(fill = "white", color = NA)
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
63 )
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
64
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
65 # Save the plot to a file
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
66 jpeg(filename = plot_file, width = 480, height = 480, res = 72)
1
8a1b524ed9d8 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit dca5f947ae4c9697ac0cfce0b313170b541124e5
ufz
parents: 0
diff changeset
67 print(p)
8a1b524ed9d8 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit dca5f947ae4c9697ac0cfce0b313170b541124e5
ufz
parents: 0
diff changeset
68 dev.off()
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
69 }
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
70
3
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
71 dose_response_analysis <- function(data, concentration_col, response_col, replicate_col, plot_file, ec_file, compound_name, concentration_unit) {
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
72 # Ensure column names are correctly selected
1
8a1b524ed9d8 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit dca5f947ae4c9697ac0cfce0b313170b541124e5
ufz
parents: 0
diff changeset
73 concentration_col <- colnames(data)[as.integer(concentration_col)]
8a1b524ed9d8 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit dca5f947ae4c9697ac0cfce0b313170b541124e5
ufz
parents: 0
diff changeset
74 response_col <- colnames(data)[as.integer(response_col)]
3
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
75 replicate_col <- colnames(data)[as.integer(replicate_col)]
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
76
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
77 # Fit models and select the best one
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
78 models <- fit_models(data, concentration_col, response_col)
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
79 best_model_info <- select_best_model(models)
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
80 best_model <- best_model_info$model
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
81 best_model_name <- best_model_info$name
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
82
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
83 # Calculate EC values
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
84 ec_values <- calculate_ec_values(best_model)
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
85
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
86 # Plot the dose-response curve
3
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
87 plot_dose_response(best_model, data, ec_values, concentration_col, response_col, replicate_col, plot_file, compound_name, concentration_unit)
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
88
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
89 # Get model summary and AIC value
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
90 model_summary <- summary(best_model)
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
91 model_aic <- AIC(best_model)
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
92
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
93 # Prepare EC values data frame with additional information
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
94 ec_data <- data.frame(
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
95 Metric = c("chemical_name", "EC10", "EC25", "EC50", "AIC"),
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
96 Value = c(compound_name, ec_values$EC10[1], ec_values$EC25[1], ec_values$EC50[1], model_aic)
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
97 )
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
98
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
99 # Write EC values, AIC, and model summary to the output file
1
8a1b524ed9d8 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit dca5f947ae4c9697ac0cfce0b313170b541124e5
ufz
parents: 0
diff changeset
100 write.table(ec_data, ec_file, sep = "\t", row.names = FALSE, col.names = TRUE, quote = FALSE)
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
101
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
102 # Append the model summary to the file
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
103 cat("\nModel Summary:\n", file = ec_file, append = TRUE)
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
104 capture.output(model_summary, file = ec_file, append = TRUE)
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
105
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
106 return(list(best_model = best_model_name, ec_values = ec_values))
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
107 }
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
108
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
109 args <- commandArgs(trailingOnly = TRUE)
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
110
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
111 data_file <- args[1]
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
112 concentration_col <- args[2]
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
113 response_col <- args[3]
3
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
114 replicate_col <- args[4]
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
115 plot_file <- args[5]
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
116 ec_file <- args[6]
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
117 compound_name <- args[7]
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
118 concentration_unit <- args[8]
0
082e9d22c38d planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 3aebdcc7c5b266a30262402934ffaad2a58adbcb
ufz
parents:
diff changeset
119
1
8a1b524ed9d8 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit dca5f947ae4c9697ac0cfce0b313170b541124e5
ufz
parents: 0
diff changeset
120 data <- read.csv(data_file, header = TRUE, sep = "\t")
2
c122403ac78a planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tools/tox_tools/baseline_calculator commit 61a3d9a20a9a90d551dd5f7503be781dc28f4b75
ufz
parents: 1
diff changeset
121 print(data)
3
2aa9da0a84a4 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/tox_tools/dose_responses commit 707eca86fc2de2e563fb5c89889f54eb13f529d0
ufz
parents: 2
diff changeset
122 dose_response_analysis(data, concentration_col, response_col, replicate_col, plot_file, ec_file, compound_name, concentration_unit)