diff --git a/R/methods.R b/R/methods.R
index e14db7b..fb49fd0 100644
--- a/R/methods.R
+++ b/R/methods.R
@@ -4,11 +4,6 @@ methods_ui <- function(id) {
verticalLayout(
h3("Methods"),
- actionButton(
- NS(id, "optimize_button"),
- "Find optimal weights",
- icon = icon("check-double")
- ),
div(style = "margin-top: 16px"),
lapply(methods, function(method) {
verticalLayout(
@@ -30,7 +25,21 @@ methods_ui <- function(id) {
value = initial_weight
)
)
- })
+ }),
+ radioButtons(
+ NS(id, "target"),
+ "Optimization target",
+ choices = list(
+ "Mean rank of reference genes" = "mean",
+ "First rank of reference genes" = "min",
+ "Last rank of reference genes" = "max"
+ )
+ ),
+ actionButton(
+ NS(id, "optimize_button"),
+ "Optimize weights",
+ class = "btn-primary"
+ )
)
}
@@ -54,7 +63,8 @@ methods_server <- function(id, analysis) {
weights <- geposan::optimize_weights(
analysis(),
method_ids,
- genes_tpe_old
+ genes_tpe_old,
+ target = input$target
)
for (method_id in method_ids) {
diff --git a/R/server.R b/R/server.R
index 44df265..cb5edaf 100644
--- a/R/server.R
+++ b/R/server.R
@@ -160,19 +160,23 @@ server <- function(input, output, session) {
digits = 1
))
+ min_rank <- as.character(reference_results[, min(rank)])
max_rank <- as.character(reference_results[, max(rank)])
} else {
mean_rank <- "Unknown"
+ min_rank <- "Unknown"
max_rank <- "Unknown"
}
sprintf(
"Included reference genes: %i/%i
\
Mean rank of reference genes: %s
\
- Maximum rank of reference genes: %s",
+ First rank of reference genes: %s
\
+ Last rank of reference genes: %s",
included_reference_count,
total_reference_count,
mean_rank,
+ min_rank,
max_rank
)
})