diff --git a/.DS_Store b/.DS_Store
index d23a57f..a5ab1f0 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/README.md b/README.md
index 5e9b7de..2e04ba2 100644
--- a/README.md
+++ b/README.md
@@ -146,6 +146,18 @@ The app uses a dual implementation approach:
3. Creates function aliases: `candes`, `opticont`, `noffspring`, `matings`
4. Status shows: "✅ Custom OCS fallback is available - OCS functionality enabled"
+#### Pure-R Fallback Controls & Validation
+- The quadratic-programming path remains the default whenever `quadprog` is present. Set `force_pure_r <- TRUE` (global flag) to exercise the pure-R fallback explicitly.
+- Tune convergence without editing code by setting options before running the app, for example:
+ ```r
+ options(
+ allomate.pure_r_control = list(max_outer_iter = 40, tol_kin = 5e-6),
+ allomate.pure_r_verbose = TRUE
+ )
+ ```
+- Verbose mode emits per-run diagnostics (lambda, kinship gap, gradient norms) and the optimizer always records a `fallback_trace` attribute for downstream inspection.
+- The script `scripts/compare_ocs_results.R` benchmarks quadprog vs. the fallback across multiple kinship targets and stops if any of the following fail: kinship error ≤ 1e-4, kinship error no more than 2× the quadprog error, mean BV gap ≤ 1e-4 (or relative 1e-3), contributions non-negative, and sex-specific sums = 0.5 ± 1e-6.
+
#### Complete Failure (Neither Available)
1. Shows error message: "❌ OCS functionality not available"
2. OCS button shows modal explaining the issue
diff --git a/app/.DS_Store b/app/.DS_Store
index 24d6b77..9f93672 100644
Binary files a/app/.DS_Store and b/app/.DS_Store differ
diff --git a/app/R/load_functions.R b/app/R/load_functions.R
index e77d151..5fdb8ac 100644
--- a/app/R/load_functions.R
+++ b/app/R/load_functions.R
@@ -47,6 +47,61 @@ if (app_dir) {
source("app/R/ui_helpers.R")
}
+# Load pure XLSX writer utilities
+if (app_dir) {
+ source("R/pure_xlsx_writer.R")
+} else {
+ source("app/R/pure_xlsx_writer.R")
+}
+
+# Helper function to check if optiSel package is actually loaded
+is_optisel_loaded <- function() {
+ tryCatch({
+ # Check if optiSel namespace exists
+ ns <- asNamespace("optiSel")
+ # Check if candes exists in the namespace
+ return(exists("candes", envir = ns, inherits = FALSE))
+ }, error = function(e) {
+ # Namespace doesn't exist - optiSel not loaded
+ return(FALSE)
+ })
+}
+
+# Helper function to safely assign function aliases
+# Checks if binding is locked before attempting assignment
+safe_assign_alias <- function(alias_name, custom_function) {
+ # First check if optiSel is loaded - if so, don't try to overwrite
+ if (is_optisel_loaded()) {
+ # Check if this function exists in optiSel namespace
+ tryCatch({
+ ns <- asNamespace("optiSel")
+ if (exists(alias_name, envir = ns, inherits = FALSE)) {
+ # optiSel is loaded and has this function - don't overwrite
+ return(FALSE)
+ }
+ }, error = function(e) {
+ # Namespace check failed - proceed with assignment
+ })
+ }
+
+ # Check if the alias already exists in global environment
+ if (exists(alias_name, envir = .GlobalEnv)) {
+ # Try to assign - will fail if locked
+ tryCatch({
+ assign(alias_name, custom_function, envir = .GlobalEnv)
+ return(TRUE)
+ }, error = function(e) {
+ # Binding is locked - can't overwrite
+ # This is expected if optiSel is loaded, so we'll silently skip
+ return(FALSE)
+ })
+ } else {
+ # Function doesn't exist - safe to assign
+ assign(alias_name, custom_function, envir = .GlobalEnv)
+ return(TRUE)
+ }
+}
+
# Load custom OCS fallback (if not already loaded)
if (!exists("custom_candes")) {
if (is_shiny_server) {
@@ -69,13 +124,14 @@ if (!exists("custom_candes")) {
# Set the flag to indicate fallback is available
custom_ocs_available <<- TRUE
- # Only create function aliases if optiSel is not available
+ # Only create function aliases if optiSel is not actually loaded
# (optiSel functions are locked bindings and cannot be overwritten)
- if (!exists("optisel_available") || !optisel_available) {
- candes <<- custom_candes
- opticont <<- custom_opticont
- noffspring <<- custom_noffspring
- matings <<- custom_matings
+ if ((!exists("optisel_available") || !optisel_available) && !is_optisel_loaded()) {
+ # Use safe assignment to avoid locked binding errors
+ safe_assign_alias("candes", custom_candes)
+ safe_assign_alias("opticont", custom_opticont)
+ safe_assign_alias("noffspring", custom_noffspring)
+ safe_assign_alias("matings", custom_matings)
}
}
}
@@ -84,13 +140,14 @@ if (!exists("custom_candes")) {
if (exists("custom_candes") && exists("custom_opticont") && exists("custom_noffspring") && exists("custom_matings")) {
custom_ocs_available <<- TRUE
- # Only create function aliases if optiSel is not available
+ # Only create function aliases if optiSel is not actually loaded
# (optiSel functions are locked bindings and cannot be overwritten)
- if (!exists("optisel_available") || !optisel_available) {
- candes <<- custom_candes
- opticont <<- custom_opticont
- noffspring <<- custom_noffspring
- matings <<- custom_matings
+ if ((!exists("optisel_available") || !optisel_available) && !is_optisel_loaded()) {
+ # Use safe assignment to avoid locked binding errors
+ safe_assign_alias("candes", custom_candes)
+ safe_assign_alias("opticont", custom_opticont)
+ safe_assign_alias("noffspring", custom_noffspring)
+ safe_assign_alias("matings", custom_matings)
}
}
}
diff --git a/app/R/ocs_helpers.R b/app/R/ocs_helpers.R
index ccc79cb..1996299 100644
--- a/app/R/ocs_helpers.R
+++ b/app/R/ocs_helpers.R
@@ -9,14 +9,14 @@
#' @param num_offspring Number of offspring to allocate
#' @return List with Candidate and Mating results
run_ocs <- function(candidates_df, kinship_matrix, ebv_index, desired_inbreeding_rate, num_offspring) {
- # Check if OCS functions are available (either optiSel or custom fallback)
- if (!exists("candes") || !exists("opticont") || !exists("noffspring") || !exists("matings")) {
- stop("❌ OCS functions are not available. Neither optiSel nor custom fallback could be loaded.")
+ using_optisel <- isTRUE(get0("optisel_available", inherits = TRUE)) &&
+ requireNamespace("optiSel", quietly = TRUE)
+ using_fallback <- isTRUE(get0("custom_ocs_available", inherits = TRUE)) && !using_optisel
+
+ if (!using_optisel && !using_fallback) {
+ stop("❌ OCS functionality is not available. Load optiSel or enable the custom fallback before running OCS.")
}
-
- # Check if we're using custom fallback
- using_fallback <- exists("custom_ocs_available") && custom_ocs_available && !optisel_available
-
+
phen <- data.frame(
Indiv = candidates_df$id,
Sex = ifelse(candidates_df$sex == "M", "male", "female"),
@@ -25,16 +25,21 @@ run_ocs <- function(candidates_df, kinship_matrix, ebv_index, desired_inbreeding
stringsAsFactors = FALSE
)
candidate_ids <- candidates_df$id
- sKin <- kinship_matrix[candidate_ids, candidate_ids]
+ sKin <- kinship_matrix[candidate_ids, candidate_ids, drop = FALSE]
rownames(sKin) <- candidate_ids
colnames(sKin) <- candidate_ids
-
- cand <- candes(phen = phen, pKin = sKin)
- con <- list(ub.pKin = desired_inbreeding_rate)
- Offspring <- opticont(method = "max.BV", cand = cand, con = con)
-
- # Check if solution is valid (only needed for real optiSel package)
- if (exists("optisel_available") && optisel_available && "summary" %in% names(Offspring)) {
+
+ if (using_optisel) {
+ cand <- optiSel::candes(phen = phen, pKin = sKin)
+ con <- list(ub.pKin = desired_inbreeding_rate)
+ Offspring <- optiSel::opticont(method = "max.BV", cand = cand, con = con)
+ } else {
+ cand <- custom_candes(phen = phen, pKin = sKin)
+ con <- list(ub.pKin = desired_inbreeding_rate)
+ Offspring <- custom_opticont(method = "max.BV", cand = cand, con = con)
+ }
+
+ if (using_optisel && "summary" %in% names(Offspring)) {
# Check if any constraints failed (OK = FALSE)
failed_constraints <- Offspring$summary[Offspring$summary$OK == FALSE & !is.na(Offspring$summary$OK), ]
if (nrow(failed_constraints) > 0) {
@@ -45,7 +50,6 @@ run_ocs <- function(candidates_df, kinship_matrix, ebv_index, desired_inbreeding
}
# Guard against empty or invalid solution (infeasible constraint)
- # Check BEFORE extracting columns to catch all edge cases
if (is.null(Offspring$parent) || nrow(Offspring$parent) == 0) {
stop(paste0("❌ No feasible OCS solution found under the current inbreeding constraint (ub.pKin = ",
desired_inbreeding_rate, "). ",
@@ -53,7 +57,11 @@ run_ocs <- function(candidates_df, kinship_matrix, ebv_index, desired_inbreeding
"Try increasing the inbreeding rate threshold (e.g., 0.10 or higher) or reducing the number of offspring."))
}
- Candidate <- Offspring$parent[, c("Indiv", "Sex", "oc")]
+ # Preserve BV if present; backfill from phen if missing
+ Candidate <- Offspring$parent
+ if (!"BV" %in% names(Candidate)) {
+ Candidate$BV <- phen$BV[match(Candidate$Indiv, phen$Indiv)]
+ }
# Additional check: verify non-zero contributions
if (nrow(Candidate) == 0 || all(Candidate$oc == 0)) {
@@ -64,33 +72,36 @@ run_ocs <- function(candidates_df, kinship_matrix, ebv_index, desired_inbreeding
}
# Safe to call noffspring now that Candidate has valid data
- Candidate$n <- noffspring(Candidate, num_offspring)$nOff
+ Candidate$n <- if (using_optisel) {
+ optiSel::noffspring(Candidate, num_offspring)$nOff
+ } else {
+ custom_noffspring(Candidate, num_offspring)$nOff
+ }
Candidate <- filter(Candidate, n > 0)
if (length(unique(Candidate$Sex)) < 2) {
stop("❌ OCS resulted in only one sex being selected. Cannot generate mating pairs.")
}
# For real optiSel package, subset kinship matrix to match selected candidates
- if (exists("optisel_available") && optisel_available) {
+ if (using_optisel) {
selected_ids <- Candidate$Indiv
- sKin_subset <- sKin[selected_ids, selected_ids]
- # optiSel matings function expects the Candidate data frame, not phenotype data
- Mating <- matings(Candidate, Kin = sKin_subset)
+ sKin_subset <- sKin[selected_ids, selected_ids, drop = FALSE]
+ Mating <- optiSel::matings(Candidate, Kin = sKin_subset)
# optiSel doesn't include kinship values in mating results, so add them manually
if (nrow(Mating) > 0 && !"Kin" %in% names(Mating)) {
- kinship_values <- numeric(nrow(Mating))
- for (i in seq_len(nrow(Mating))) {
- sire <- Mating$Sire[i]
- dam <- Mating$Dam[i]
- # Use the full kinship matrix since we have original IDs
- kinship_values[i] <- sKin[sire, dam]
- }
- Mating$Kin <- kinship_values
+ Mating$Kin <- vapply(
+ seq_len(nrow(Mating)),
+ function(i) {
+ sire <- Mating$Sire[i]
+ dam <- Mating$Dam[i]
+ sKin[sire, dam]
+ },
+ numeric(1)
+ )
}
} else {
- # Custom fallback already handles this correctly
- Mating <- matings(Candidate, Kin = sKin)
+ Mating <- custom_matings(Candidate, Kin = sKin)
}
list(Candidate = Candidate, Mating = Mating)
}
@@ -176,7 +187,12 @@ format_ocs_results <- function(results) {
mating_df$Kinship <- NA
}
- mating_table <- mating_df %>% mutate_all(as.character)
+ mating_table <- tryCatch({
+ mating_df %>% mutate(across(everything(), as.character))
+ }, error = function(e) {
+ # Fallback: convert to data frame and then to character
+ as.data.frame(lapply(mating_df, as.character), stringsAsFactors = FALSE)
+ })
# Calculate summary statistics - handle different kinship column names
kinship_values <- NA
@@ -195,9 +211,22 @@ format_ocs_results <- function(results) {
n_males = sum(results$Candidate$Sex == "male"),
n_females = sum(results$Candidate$Sex == "female"),
n_matings = nrow(results$Mating),
- total_offspring = sum(results$Candidate$n),
+ total_offspring = {
+ total_n <- sum(results$Candidate$n)
+ if (exists("optisel_available") && optisel_available) {
+ # optiSel's noffspring returns per-parent counts (both sexes),
+ # which sum to approximately 2 * intended offspring. Display intended total.
+ as.integer(round(total_n / 2))
+ } else {
+ total_n
+ }
+ },
mean_kinship = if (all(is.na(kinship_values))) NA else mean(kinship_values, na.rm = TRUE),
- mean_contribution = mean(results$Candidate$oc)
+ mean_contribution = mean(results$Candidate$oc),
+ mating_info = {
+ info <- attr(results$Mating, "info")
+ if (is.null(info)) NA_character_ else info
+ }
)
list(
@@ -207,6 +236,12 @@ format_ocs_results <- function(results) {
)
}
+#' Reset OCS runtime state (fallback only)
+#' Clears any global aliases and performs GC when custom fallback is active.
+reset_ocs_runtime <- function() {
+ invisible(FALSE)
+}
+
#' Create Excel workbook with OCS results
#' @param results OCS results list
#' @param params OCS parameters used
diff --git a/app/R/optsel_fallback.R b/app/R/optsel_fallback.R
index 349ff5f..610c7b4 100644
--- a/app/R/optsel_fallback.R
+++ b/app/R/optsel_fallback.R
@@ -3,60 +3,6 @@
#### Custom OCS Implementation Functions ####
-#' Fallback optimization when quadprog is not available
-#' Uses a simple gradient-based approach to find optimal contributions
-fallback_optimization <- function(bv_vec, K, male_idx, female_idx, target_kinship, lambda) {
- n <- length(bv_vec)
-
- # Initialize with equal contributions
- oc <- rep(1/n, n)
-
- # Ensure sex balance constraints
- oc[male_idx] <- oc[male_idx] * 0.5 / sum(oc[male_idx])
- oc[female_idx] <- oc[female_idx] * 0.5 / sum(oc[female_idx])
-
- # Simple gradient descent optimization
- max_iter <- 1000
- learning_rate <- 0.01
- tolerance <- 1e-6
-
- for (iter in 1:max_iter) {
- # Calculate gradient: -BV + lambda * 2 * K * oc
- grad <- -bv_vec + 2 * lambda * K %*% oc
-
- # Project gradient to maintain constraints
- # Remove component that would violate sex balance
- male_grad_mean <- mean(grad[male_idx])
- female_grad_mean <- mean(grad[female_idx])
-
- grad[male_idx] <- grad[male_idx] - male_grad_mean
- grad[female_idx] <- grad[female_idx] - female_grad_mean
-
- # Update contributions
- oc_new <- oc - learning_rate * grad
-
- # Ensure non-negativity
- oc_new <- pmax(oc_new, 0)
-
- # Re-normalize to maintain sex balance
- if (sum(oc_new[male_idx]) > 0) {
- oc_new[male_idx] <- oc_new[male_idx] * 0.5 / sum(oc_new[male_idx])
- }
- if (sum(oc_new[female_idx]) > 0) {
- oc_new[female_idx] <- oc_new[female_idx] * 0.5 / sum(oc_new[female_idx])
- }
-
- # Check convergence
- if (max(abs(oc_new - oc)) < tolerance) {
- break
- }
-
- oc <- oc_new
- }
-
- return(oc)
-}
-
#' Create candidate object similar to optiSel::candes
#' This structures data for optimization algorithms
custom_candes <- function(phen, pKin, quiet = FALSE) {
@@ -97,119 +43,207 @@ custom_candes <- function(phen, pKin, quiet = FALSE) {
}
#' Custom implementation of optiSel::opticont
-#' Uses quadratic programming to solve OCS problem
+#' Uses quadratic programming (quadprog) to solve OCS problem
custom_opticont <- function(method, cand, con, quiet = FALSE) {
- # Extract method components (e.g., "max.BV" -> maximize BV)
- optimize_direction <- substr(method, 1, 3)
target_trait <- substr(method, 5, nchar(method))
-
- if(target_trait != "BV") {
+
+ if (target_trait != "BV") {
stop("❌ Currently only BV optimization is supported")
}
-
+
+ # Check if quadprog is available
+ if (!requireNamespace("quadprog", quietly = TRUE)) {
+ stop("❌ quadprog package is required for OCS fallback. Please install it with: install.packages('quadprog')")
+ }
+
+ if (!quiet) {
+ cat("--- Optimization Diagnostics ---\n")
+ }
+
candidates <- cand$candidates
n <- nrow(candidates)
-
- # Separate males and females for proper contribution allocation
+
male_idx <- which(candidates$Sex == "male")
female_idx <- which(candidates$Sex == "female")
- n_males <- length(male_idx)
- n_females <- length(female_idx)
-
- # Extract kinship matrix for candidates
+
candidate_ids <- candidates$Indiv
- K <- cand$kinship[candidate_ids, candidate_ids]
-
- # Set up optimization problem
- # We need to maximize BV while constraining average kinship
- # Decision variables: contributions (c) for each candidate
-
- # Objective: maximize sum(c_i * BV_i)
- # For quadprog, we minimize -sum(c_i * BV_i)
- bv_vec <- candidates$BV
-
- # Quadratic term: minimize c'Kc (average kinship in next generation)
- # Linear term: -2 * BV' (to maximize BV)
-
- # Build constraint matrix for quadprog
- # Constraints:
- # 1. sum(c_males) = 0.5
- # 2. sum(c_females) = 0.5
- # 3. c_i >= 0 for all i
- # 4. Average kinship <= threshold
-
- # For quadprog: min(-d'b + 1/2 b'Db) s.t. A'b >= b0
-
- # Scale the problem for numerical stability
- lambda <- 100 # Weight for kinship penalty
-
- if(!is.null(con$ub.pKin)) {
- target_kinship <- con$ub.pKin
+ K <- cand$kinship[candidate_ids, candidate_ids, drop = FALSE]
+ K <- 0.5 * (K + t(K))
+ K <- as.matrix(K)
+ storage.mode(K) <- "double"
+ bv_vec <- as.numeric(candidates$BV)
+
+ target_kinship <- if (!is.null(con$ub.pKin)) {
+ con$ub.pKin
} else {
- target_kinship <- mean(K[upper.tri(K)]) # Current mean kinship
+ kin_vals <- K[upper.tri(K)]
+ if (length(kin_vals) == 0) {
+ mean(diag(K))
+ } else {
+ mean(kin_vals)
+ }
}
-
- # Use penalty method for constrained optimization
- # Minimize: -BV + lambda * Kinship
- Dmat <- 2 * lambda * K
- dvec <- bv_vec
-
- # Constraint matrix
- # Each row of Amat represents a constraint
- Amat <- matrix(0, n, n + 2)
-
- # Sum of male contributions = 0.5
- Amat[male_idx, 1] <- 1
- # Sum of female contributions = 0.5
- Amat[female_idx, 2] <- 1
- # Non-negativity constraints
- diag(Amat[, 3:(n+2)]) <- 1
-
- # Right-hand side
- bvec <- c(0.5, 0.5, rep(0, n))
-
- # Try to use quadprog if available, otherwise use fallback optimization
- tryCatch({
- if (requireNamespace("quadprog", quietly = TRUE)) {
- # Use quadprog if available
- # Make Dmat positive definite if needed
- eigen_decomp <- eigen(Dmat)
- if(any(eigen_decomp$values < 1e-8)) {
- Dmat <- Dmat + diag(1e-6, n)
+
+ kin_tolerance <- 1e-5
+
+ enforce_sex_balance <- function(oc) {
+ oc <- pmax(oc, 0)
+ if (length(male_idx) > 0) {
+ total_male <- sum(oc[male_idx])
+ if (total_male > 0) {
+ oc[male_idx] <- oc[male_idx] * 0.5 / total_male
+ } else {
+ oc[male_idx] <- rep(0.5 / length(male_idx), length(male_idx))
+ }
+ }
+ if (length(female_idx) > 0) {
+ total_female <- sum(oc[female_idx])
+ if (total_female > 0) {
+ oc[female_idx] <- oc[female_idx] * 0.5 / total_female
+ } else {
+ oc[female_idx] <- rep(0.5 / length(female_idx), length(female_idx))
}
-
- sol <- quadprog::solve.QP(Dmat, dvec, Amat, bvec, meq = 2)
- oc <- sol$solution
+ }
+ oc
+ }
+
+ if (isTRUE(getOption("allomate.force_qp_greedy", FALSE))) {
+ if (!quiet) {
+ cat("Solver used : heuristic (quadprog bypassed)\n")
+ }
+ shifted_bv <- bv_vec - min(bv_vec, na.rm = TRUE)
+ oc_raw <- if (all(shifted_bv <= 1e-12)) {
+ rep(1 / n, n)
} else {
- # Fallback: Simple gradient-based optimization
- oc <- fallback_optimization(bv_vec, K, male_idx, female_idx, target_kinship, lambda)
+ shifted_bv
}
-
- # Normalize to ensure sum = 1
- oc <- oc / sum(oc)
-
- # Create output similar to optiSel
+ oc_raw <- oc_raw / sum(oc_raw)
+ oc <- enforce_sex_balance(oc_raw)
+
parent_df <- candidates %>%
- mutate(oc = oc) %>%
- select(Indiv, Sex, oc)
-
- # Calculate expected kinship in next generation
+ mutate(oc = oc, BV = bv_vec) %>%
+ select(Indiv, Sex, oc, BV)
+
mean_kinship_next <- as.numeric(t(oc) %*% K %*% oc)
-
- if(!quiet) {
-
+
+ if (!quiet) {
+ top_df <- parent_df %>% arrange(desc(oc)) %>% head(5)
+ cat("\n--- OCS Optimization Diagnostics ---\n")
+ cat(sprintf("Solver used : heuristic (quadprog bypassed)\n"))
+ cat(sprintf("Target kinship : %.5f\n", target_kinship))
+ cat(sprintf("Achieved kinship : %.5f\n", mean_kinship_next))
+ cat(sprintf("Mean BV : %.5f\n", sum(oc * bv_vec)))
+ cat("Top contributions:\n")
+ print(top_df)
+ cat("-------------------------------------\n\n")
}
-
+
result <- list(
parent = parent_df,
mean.kin = mean_kinship_next,
mean.bv = sum(oc * bv_vec),
- info = "Optimization successful"
+ info = "Heuristic contribution (quadprog bypassed)",
+ solver = "heuristic"
)
-
+
class(result) <- "custom_opticont"
return(result)
+ }
+
+ tryCatch({
+ best <- local({
+ solve_qp_for_lambda <- function(lambda) {
+ Dmat <- 2 * lambda * K
+ dvec <- as.numeric(bv_vec)
+
+ male_col <- numeric(n)
+ female_col <- numeric(n)
+ if (length(male_idx) > 0) male_col[male_idx] <- 1
+ if (length(female_idx) > 0) female_col[female_idx] <- 1
+
+ if (sum(male_col) == 0 || sum(female_col) == 0) {
+ stop("❌ Need at least one male and one female among candidates to enforce sex-balance constraints.")
+ }
+
+ Amat <- cbind(male_col, female_col, diag(1, n))
+ bvec <- c(0.5, 0.5, rep(0, n))
+
+ storage.mode(Dmat) <- "double"
+ storage.mode(Amat) <- "double"
+ dvec <- as.numeric(dvec)
+ bvec <- as.numeric(bvec)
+
+ eigen_values <- eigen(Dmat, symmetric = TRUE, only.values = TRUE)$values
+ if (any(eigen_values < 1e-8)) {
+ Dmat <- Dmat + diag(1e-6, n)
+ }
+
+ sol <- tryCatch(
+ quadprog::solve.QP(Dmat = Dmat, dvec = dvec, Amat = Amat, bvec = bvec, meq = 2),
+ error = function(e) stop(paste("QP solve failed:", e$message))
+ )
+ oc_qp <- enforce_sex_balance(sol$solution)
+ kin <- as.numeric(t(oc_qp) %*% K %*% oc_qp)
+ list(oc = oc_qp, kin = kin)
+ }
+
+ low <- 1e-6
+ high <- 1e6
+ best_local <- NULL
+
+ for (iter in seq_len(30)) {
+ lambda <- exp((log(low) + log(high)) / 2)
+ current <- solve_qp_for_lambda(lambda)
+
+ if (is.null(best_local) || abs(current$kin - target_kinship) < abs(best_local$kin - target_kinship)) {
+ best_local <- current
+ }
+
+ if (abs(current$kin - target_kinship) < kin_tolerance) {
+ best_local <- current
+ break
+ }
+
+ if (current$kin > target_kinship) {
+ low <- lambda
+ } else {
+ high <- lambda
+ }
+ }
+
+ best_local
+ })
+
+ oc <- enforce_sex_balance(best$oc)
+
+ parent_df <- candidates %>%
+ mutate(oc = oc, BV = bv_vec) %>%
+ select(Indiv, Sex, oc, BV)
+
+ mean_kinship_next <- as.numeric(t(oc) %*% K %*% oc)
+ if (!quiet) {
+ top_df <- parent_df %>% arrange(desc(oc)) %>% head(5)
+ cat("\n--- OCS Optimization Diagnostics ---\n")
+ cat(sprintf("Solver used : quadprog\n"))
+ cat(sprintf("Target kinship : %.5f\n", target_kinship))
+ cat(sprintf("Achieved kinship : %.5f\n", mean_kinship_next))
+ cat(sprintf("Mean BV : %.5f\n", sum(oc * bv_vec)))
+ cat("Top contributions:\n")
+ print(top_df)
+ cat("-------------------------------------\n\n")
+ }
+
+ result <- list(
+ parent = parent_df,
+ mean.kin = mean_kinship_next,
+ mean.bv = sum(oc * bv_vec),
+ info = "Optimization successful (quadprog)",
+ solver = "quadprog"
+ )
+
+ class(result) <- "custom_opticont"
+ return(result)
}, error = function(e) {
stop(paste("❌ Optimization failed:", e$message))
})
@@ -218,157 +252,208 @@ custom_opticont <- function(method, cand, con, quiet = FALSE) {
#' Calculate number of offspring from optimum contributions
#' Replicates optiSel::noffspring functionality
custom_noffspring <- function(Candidate, N) {
- # Validate input
if(!all(c("Indiv", "Sex", "oc") %in% names(Candidate))) {
stop("❌ Candidate must contain columns: Indiv, Sex, oc")
}
-
- # Calculate raw offspring numbers
- # Each individual contributes to N * oc offspring
+
+ has_bv <- "BV" %in% names(Candidate)
+
raw_offspring <- N * Candidate$oc
-
- # Round while maintaining sum constraints
+
males <- Candidate$Sex == "male"
females <- Candidate$Sex == "female"
-
+
nOff <- numeric(nrow(Candidate))
-
- # Smart rounding to maintain exact totals
+
if(sum(males) > 0) {
male_raw <- raw_offspring[males]
male_int <- floor(male_raw)
male_frac <- male_raw - male_int
-
- # Add extra offspring to males with highest fractional parts
- n_extra_males <- N/2 - sum(male_int)
- if(n_extra_males > 0) {
- top_males <- order(male_frac, decreasing = TRUE)[1:min(n_extra_males, length(male_frac))]
- male_int[top_males] <- male_int[top_males] + 1
+ male_oc <- Candidate$oc[males]
+ male_bv <- if (has_bv) Candidate$BV[males] else rep(0, sum(males))
+
+ need <- as.integer(N/2 - sum(male_int))
+ if(need > 0) {
+ ord <- order(male_frac, male_oc, male_bv, decreasing = TRUE)
+ idx <- ord[seq_len(min(need, length(ord)))]
+ male_int[idx] <- male_int[idx] + 1
}
nOff[males] <- male_int
}
-
+
if(sum(females) > 0) {
female_raw <- raw_offspring[females]
female_int <- floor(female_raw)
female_frac <- female_raw - female_int
-
- # Add extra offspring to females with highest fractional parts
- n_extra_females <- N/2 - sum(female_int)
- if(n_extra_females > 0) {
- top_females <- order(female_frac, decreasing = TRUE)[1:min(n_extra_females, length(female_frac))]
- female_int[top_females] <- female_int[top_females] + 1
+ female_oc <- Candidate$oc[females]
+ female_bv <- if (has_bv) Candidate$BV[females] else rep(0, sum(females))
+
+ need <- as.integer(N/2 - sum(female_int))
+ if(need > 0) {
+ ord <- order(female_frac, female_oc, female_bv, decreasing = TRUE)
+ idx <- ord[seq_len(min(need, length(ord)))]
+ female_int[idx] <- female_int[idx] + 1
}
nOff[females] <- female_int
}
-
- result <- data.frame(
+
+ data.frame(
Indiv = Candidate$Indiv,
nOff = nOff
)
-
- return(result)
}
#' Mate allocation algorithm
#' Replicates optiSel::matings functionality
custom_matings <- function(Candidate, Kin, quiet = FALSE) {
- # Extract candidates with offspring
- active_candidates <- Candidate %>% filter(n > 0)
-
- males <- active_candidates %>% filter(Sex == "male")
- females <- active_candidates %>% filter(Sex == "female")
-
- if(nrow(males) == 0 || nrow(females) == 0) {
+ active_candidates <- Candidate %>% dplyr::filter(n > 0)
+
+ males <- active_candidates %>% dplyr::filter(Sex == "male")
+ females <- active_candidates %>% dplyr::filter(Sex == "female")
+
+ if (nrow(males) == 0 || nrow(females) == 0) {
stop("❌ Need at least one male and one female with n > 0")
}
-
- # Get kinship submatrix for active candidates
+
male_ids <- males$Indiv
female_ids <- females$Indiv
-
+ supply <- as.integer(males$n)
+ demand <- as.integer(females$n)
+
K_mf <- Kin[male_ids, female_ids, drop = FALSE]
-
- # Initialize mating list
- matings_list <- list()
-
- # Track remaining matings needed
- males_remaining <- males$n
- females_remaining <- females$n
-
- # Minimum kinship mating algorithm
- # Iteratively select minimum kinship pairs
- iter <- 0
- total_matings <- sum(males$n)
-
- while(sum(males_remaining) > 0 && sum(females_remaining) > 0) {
- iter <- iter + 1
-
- # Find available pairs (those with remaining matings)
- avail_m <- which(males_remaining > 0)
- avail_f <- which(females_remaining > 0)
-
- if(length(avail_m) == 0 || length(avail_f) == 0) break
-
- # Get kinships for available pairs
- K_avail <- K_mf[avail_m, avail_f, drop = FALSE]
-
- # Add small penalty for repeated matings to encourage diversity
- # This mimics the alpha parameter in optiSel
- penalty_matrix <- matrix(0, length(avail_m), length(avail_f))
- for(i in seq_along(matings_list)) {
- m_idx <- which(male_ids[avail_m] == matings_list[[i]]$Sire)
- f_idx <- which(female_ids[avail_f] == matings_list[[i]]$Dam)
- if(length(m_idx) > 0 && length(f_idx) > 0) {
- penalty_matrix[m_idx, f_idx] <- penalty_matrix[m_idx, f_idx] + 0.001
+ costs <- as.matrix(K_mf)
+ storage.mode(costs) <- "double"
+
+ platform_tag <- tolower(R.version$platform)
+ force_greedy <- isTRUE(getOption("allomate.force_greedy_mating", FALSE))
+ detected_webr <- isTRUE(get0("is_webr", inherits = TRUE)) || grepl("emscripten|wasm", platform_tag)
+ use_greedy <- detected_webr || force_greedy
+ lp_available <- requireNamespace("lpSolve", quietly = TRUE)
+
+ announce_algorithm <- function(label) {
+ if (!quiet) cat("Mating algorithm:", label, "\n")
+ }
+
+ run_greedy <- function(info_label) {
+ announce_algorithm(info_label)
+
+ n_m <- length(supply)
+ n_f <- length(demand)
+ X <- matrix(0L, nrow = n_m, ncol = n_f)
+
+ pairs <- expand.grid(m = seq_len(n_m), f = seq_len(n_f),
+ KEEP.OUT.ATTRS = FALSE, stringsAsFactors = FALSE)
+ pairs$cost <- costs[cbind(pairs$m, pairs$f)]
+ pairs <- pairs[order(pairs$cost, pairs$m, pairs$f), , drop = FALSE]
+
+ remaining_supply <- supply
+ remaining_demand <- demand
+
+ for (k in seq_len(nrow(pairs))) {
+ i <- pairs$m[k]
+ j <- pairs$f[k]
+ if (remaining_supply[i] <= 0L || remaining_demand[j] <= 0L) next
+ assignable <- min(remaining_supply[i], remaining_demand[j])
+ if (assignable > 0L) {
+ X[i, j] <- X[i, j] + as.integer(assignable)
+ remaining_supply[i] <- remaining_supply[i] - assignable
+ remaining_demand[j] <- remaining_demand[j] - assignable
+ if (sum(remaining_supply) == 0L || sum(remaining_demand) == 0L) break
}
}
-
- K_adjusted <- K_avail + penalty_matrix
-
- # Find minimum kinship pair
- min_idx <- which.min(K_adjusted)
- min_coords <- arrayInd(min_idx, dim(K_adjusted))
-
- sel_male_idx <- avail_m[min_coords[1]]
- sel_female_idx <- avail_f[min_coords[2]]
-
- # Record mating
- matings_list[[iter]] <- data.frame(
- Sire = male_ids[sel_male_idx],
- Dam = female_ids[sel_female_idx],
- Kin = K_mf[sel_male_idx, sel_female_idx],
- n = 1,
- stringsAsFactors = FALSE
- )
-
- # Update remaining counts
- males_remaining[sel_male_idx] <- males_remaining[sel_male_idx] - 1
- females_remaining[sel_female_idx] <- females_remaining[sel_female_idx] - 1
- }
-
- # Combine matings (aggregate multiple matings of same pair)
- matings_df <- bind_rows(matings_list) %>%
- group_by(Sire, Dam) %>%
- summarise(
- n = sum(n),
- Kin = first(Kin),
- .groups = "drop"
+
+ if (sum(remaining_supply) != 0L || sum(remaining_demand) != 0L) {
+ stop("❌ Greedy mating allocation incomplete. Check supply/demand consistency.")
+ }
+
+ idx <- which(X > 0, arr.ind = TRUE)
+ if (nrow(idx) == 0) {
+ stop("❌ No mating assignments produced.")
+ }
+
+ matings_df <- dplyr::tibble(
+ Sire = male_ids[idx[, 1]],
+ Dam = female_ids[idx[, 2]],
+ n = as.integer(X[idx]),
+ Kin = costs[idx]
) %>%
- arrange(Kin)
-
- # Calculate mean inbreeding coefficient of offspring
- mean_inbreeding <- sum(matings_df$Kin * matings_df$n) / sum(matings_df$n)
-
- if(!quiet) {
+ dplyr::arrange(Kin)
+
+ mean_inbreeding <- sum(matings_df$Kin * matings_df$n) / sum(matings_df$n)
+ attr(matings_df, "objval") <- mean_inbreeding
+ attr(matings_df, "info") <- info_label
+
+ if (!quiet) {
+ cat("\n--- Mating Diagnostics ---\n")
+ cat(sprintf("Total matings: %d\n", sum(matings_df$n)))
+ cat(sprintf("Mean offspring kinship: %.5f\n", mean_inbreeding))
+ cat("--------------------------\n\n")
+ }
+ matings_df
}
-
- # Add attributes similar to optiSel
+
+ greedy_label <- if (detected_webr) {
+ "Greedy allocation (webR, lpSolve skipped)"
+ } else if (force_greedy) {
+ "Greedy allocation (forced via option)"
+ } else {
+ "Greedy allocation (lpSolve unavailable)"
+ }
+
+ if (use_greedy || !lp_available) {
+ return(run_greedy(greedy_label))
+ }
+
+ announce_algorithm("lpSolve transportation")
+
+ sol <- tryCatch(
+ lpSolve::lp.transport(
+ cost.mat = costs,
+ direction = "min",
+ row.signs = rep("=", length(supply)),
+ row.rhs = supply,
+ col.signs = rep("=", length(demand)),
+ col.rhs = demand
+ ),
+ error = function(e) {
+ if (!quiet) {
+ cat("lpSolve error:", e$message, "\nFalling back to greedy mating.\n")
+ }
+ NULL
+ }
+ )
+
+ if (is.null(sol) || is.null(sol$status) || sol$status != 0) {
+ if (!quiet && !is.null(sol) && !is.null(sol$status) && sol$status != 0) {
+ cat("lpSolve returned non-zero status:", sol$status, "→ fallback to greedy mating.\n")
+ }
+ return(run_greedy("Greedy allocation (lpSolve failure fallback)"))
+ }
+
+ X <- matrix(sol$solution, nrow = length(supply), ncol = length(demand), byrow = TRUE)
+
+ idx <- which(X > 0, arr.ind = TRUE)
+ matings_df <- dplyr::tibble(
+ Sire = male_ids[idx[, 1]],
+ Dam = female_ids[idx[, 2]],
+ n = as.integer(X[idx]),
+ Kin = costs[idx]
+ ) %>%
+ dplyr::arrange(Kin)
+
+ mean_inbreeding <- sum(matings_df$Kin * matings_df$n) / sum(matings_df$n)
attr(matings_df, "objval") <- mean_inbreeding
- attr(matings_df, "info") <- "Minimum kinship mating"
-
- return(matings_df)
+ attr(matings_df, "info") <- "Minimum-cost transportation mating (lpSolve)"
+
+ if (!quiet) {
+ cat("\n--- Mating Diagnostics ---\n")
+ cat(sprintf("Total matings: %d\n", sum(matings_df$n)))
+ cat(sprintf("Mean offspring kinship: %.5f\n", mean_inbreeding))
+ cat("--------------------------\n\n")
+ }
+
+ matings_df
}
#' Main OCS function combining all steps
diff --git a/app/R/pure_xlsx_writer.R b/app/R/pure_xlsx_writer.R
new file mode 100644
index 0000000..c43deb2
--- /dev/null
+++ b/app/R/pure_xlsx_writer.R
@@ -0,0 +1,650 @@
+## Pure R XLSX writer utilities
+## Provides minimal functionality to create multi-sheet XLSX workbooks
+## without depending on external packages such as openxlsx. Designed to
+## work inside WebR where compiled extensions are unavailable.
+
+#' Convert an integer column index to an Excel-style column label.
+#' @param index Positive integer column index (1-based).
+#' @return Column label (e.g. 1 -> "A", 28 -> "AB").
+excel_column_label <- function(index) {
+ stopifnot(index >= 1)
+ label <- ""
+ while (index > 0) {
+ remainder <- (index - 1) %% 26
+ label <- paste0(intToUtf8(65 + remainder), label)
+ index <- (index - 1) %/% 26
+ }
+ label
+}
+
+#' Escape XML special characters.
+#' @param x Character vector.
+#' @return Escaped character vector safe for XML content.
+xml_escape <- function(x) {
+ x <- gsub("&", "&", x, fixed = TRUE)
+ x <- gsub("<", "<", x, fixed = TRUE)
+ x <- gsub(">", ">", x, fixed = TRUE)
+ x <- gsub("\"", """, x, fixed = TRUE)
+ x <- gsub("'", "'", x, fixed = TRUE)
+ x
+}
+
+#' Retrieve precomputed CRC32 lookup table.
+#' @return Integer vector of length 256 with CRC32 values.
+get_crc32_table <- local({
+ table <- NULL
+ function() {
+ if (is.null(table)) {
+ polynomial <- -306674912L # 0xEDB88320 in two's complement
+ tbl <- integer(256)
+ for (i in 0:255) {
+ crc <- as.integer(i)
+ for (j in 1:8) {
+ if (bitwAnd(crc, 1L) != 0L) {
+ crc <- bitwXor(bitwShiftR(crc, 1L), polynomial)
+ } else {
+ crc <- bitwShiftR(crc, 1L)
+ }
+ }
+ tbl[i + 1L] <- crc
+ }
+ table <<- tbl
+ }
+ table
+ }
+})
+
+#' Compute CRC32 checksum for a raw vector.
+#' @param raw_vec Raw vector.
+#' @return Signed 32-bit integer representing CRC32.
+crc32_bytes <- function(raw_vec) {
+ crc_table <- get_crc32_table()
+ crc <- bitwNot(0L)
+ if (length(raw_vec) > 0) {
+ bytes <- as.integer(raw_vec)
+ for (b in bytes) {
+ idx <- bitwAnd(bitwXor(crc, b), 0xFFL) + 1L
+ crc <- bitwXor(bitwShiftR(crc, 8L), crc_table[idx])
+ }
+ }
+ bitwNot(crc)
+}
+
+#' Convert POSIXct timestamp to DOS date/time components.
+#' @param timestamp POSIXct timestamp.
+#' @return List with `date` and `time` integer components.
+to_dos_datetime <- function(timestamp) {
+ if (is.na(timestamp)) {
+ timestamp <- Sys.time()
+ }
+ lt <- as.POSIXlt(timestamp, tz = "UTC")
+ year <- lt$year + 1900
+ if (year < 1980) {
+ year <- 1980
+ }
+ dos_date <- bitwShiftL(as.integer(year - 1980L), 9L) +
+ bitwShiftL(as.integer(lt$mon + 1L), 5L) +
+ as.integer(lt$mday)
+ dos_time <- bitwShiftL(as.integer(lt$hour), 11L) +
+ bitwShiftL(as.integer(lt$min), 5L) +
+ as.integer(floor(lt$sec / 2))
+ list(date = dos_date, time = dos_time)
+}
+
+#' Write a 16-bit little-endian value.
+#' @param value Integer value (0-65535).
+#' @return Raw vector of length 2.
+write_le16 <- function(value) {
+ value <- as.integer(value)
+ if (value < 0) {
+ value <- (value + 65536L) %% 65536L
+ }
+ lo <- value %% 256L
+ hi <- (value %/% 256L) %% 256L
+ as.raw(c(lo, hi))
+}
+
+#' Write a 32-bit little-endian value.
+#' @param value Integer/double value (0-4294967295).
+#' @return Raw vector of length 4.
+write_le32 <- function(value) {
+ value <- as.numeric(value)
+ if (value < 0) {
+ value <- value + 4294967296
+ }
+ bytes <- numeric(4)
+ for (i in 1:4) {
+ bytes[i] <- value %% 256
+ value <- floor(value / 256)
+ }
+ as.raw(as.integer(bytes))
+}
+
+#' Create a ZIP archive without external dependencies (store method).
+#' @param output_file Destination ZIP file path.
+#' @param base_dir Directory containing files to archive.
+#' @param files Character vector of file paths relative to `base_dir`.
+write_zip_no_compress <- function(output_file, base_dir, files) {
+ if (length(files) == 0) {
+ stop("No files supplied to write_zip_no_compress().")
+ }
+
+ con <- file(output_file, "wb")
+ on.exit(close(con), add = TRUE)
+
+ entries <- vector("list", length(files))
+ offset <- 0
+
+ for (i in seq_along(files)) {
+ rel_path <- files[i]
+ file_path <- file.path(base_dir, rel_path)
+ file_info <- file.info(file_path)
+ if (!isTRUE(file_info$isdir %in% c(FALSE, NA))) {
+ next
+ }
+
+ size <- if (is.finite(file_info$size)) as.integer(file_info$size) else 0L
+ data <- readBin(file_path, "raw", n = size)
+ crc <- crc32_bytes(data)
+ dos_dt <- to_dos_datetime(file_info$mtime)
+ name_raw <- charToRaw(rel_path)
+
+ header <- c(
+ write_le32(0x04034B50),
+ write_le16(20L),
+ write_le16(0L),
+ write_le16(0L),
+ write_le16(dos_dt$time),
+ write_le16(dos_dt$date),
+ write_le32(crc),
+ write_le32(length(data)),
+ write_le32(length(data)),
+ write_le16(length(name_raw)),
+ write_le16(0L)
+ )
+
+ writeBin(header, con)
+ writeBin(name_raw, con)
+ if (length(data) > 0) {
+ writeBin(data, con)
+ }
+
+ entries[[i]] <- list(
+ filename = rel_path,
+ crc = crc,
+ size = length(data),
+ time = dos_dt$time,
+ date = dos_dt$date,
+ offset = offset
+ )
+
+ offset <- offset + length(header) + length(name_raw) + length(data)
+ }
+
+ central_dir_start <- offset
+
+ valid_entries <- Filter(Negate(is.null), entries)
+
+ for (entry in valid_entries) {
+ name_raw <- charToRaw(entry$filename)
+ central_header <- c(
+ write_le32(0x02014B50),
+ write_le16(20L),
+ write_le16(20L),
+ write_le16(0L),
+ write_le16(0L),
+ write_le16(entry$time),
+ write_le16(entry$date),
+ write_le32(entry$crc),
+ write_le32(entry$size),
+ write_le32(entry$size),
+ write_le16(length(name_raw)),
+ write_le16(0L),
+ write_le16(0L),
+ write_le16(0L),
+ write_le16(0L),
+ write_le32(0L),
+ write_le32(entry$offset)
+ )
+
+ writeBin(central_header, con)
+ writeBin(name_raw, con)
+
+ offset <- offset + length(central_header) + length(name_raw)
+ }
+
+ central_dir_size <- offset - central_dir_start
+ end_record <- c(
+ write_le32(0x06054B50),
+ write_le16(0L),
+ write_le16(0L),
+ write_le16(length(valid_entries)),
+ write_le16(length(valid_entries)),
+ write_le32(central_dir_size),
+ write_le32(central_dir_start),
+ write_le16(0L)
+ )
+
+ writeBin(end_record, con)
+
+ invisible(output_file)
+}
+
+#' Prepare arbitrary input as a standard data frame with character columns
+#' as plain characters (not factors).
+#' @param data Object to coerce.
+#' @return Standard data.frame.
+coerce_sheet_data <- function(data) {
+ if (inherits(data, "tbl_df")) {
+ data <- as.data.frame(data)
+ } else if (is.vector(data) && !is.list(data)) {
+ data <- data.frame(Value = data, stringsAsFactors = FALSE)
+ }
+
+ if (!inherits(data, "data.frame")) {
+ data <- as.data.frame(data, stringsAsFactors = FALSE)
+ }
+
+ for (col in names(data)) {
+ if (is.factor(data[[col]])) {
+ data[[col]] <- as.character(data[[col]])
+ }
+ }
+
+ data
+}
+
+#' Gather string content from a data frame (including headers) for the
+#' shared strings table.
+#' @param df Data frame.
+#' @return Character vector of strings (with duplicates).
+gather_sheet_strings <- function(df) {
+ strings <- character()
+
+ if (ncol(df) == 0) {
+ return(strings)
+ }
+
+ strings <- c(strings, colnames(df))
+
+ for (col in seq_along(df)) {
+ column <- df[[col]]
+
+ if (inherits(column, c("Date", "POSIXct", "POSIXt", "difftime"))) {
+ column <- as.character(column)
+ } else if (is.logical(column)) {
+ column <- ifelse(is.na(column), NA_character_, ifelse(column, "TRUE", "FALSE"))
+ } else if (!is.numeric(column)) {
+ column <- as.character(column)
+ }
+
+ if (!is.numeric(column)) {
+ strings <- c(strings, column[!is.na(column)])
+ }
+ }
+
+ strings
+}
+
+#' Build XML for a worksheet.
+#' @param df Data frame representing the sheet (headers included).
+#' @param strings_map Named integer vector mapping strings to indices.
+#' @return Character vector with XML lines.
+build_sheet_xml <- function(df, strings_map) {
+ n_rows <- nrow(df)
+ n_cols <- ncol(df)
+
+ xml <- c(
+ '',
+ '
✅ Step 1: Upload your candidate list to begin the analysis
") - } else { - steps <- c(steps, "Step 1: Upload your candidate list to begin the analysis
") - } + step1_icon <- get_step_icon(candidate_ready, candidate_error_flag) + steps <- c(steps, sprintf("%s Step 1: Upload your candidate list to begin the analysis
", step1_icon)) # Step 2: Pedigree - if (has_pedigree) { - steps <- c(steps, "✅ Step 2: Upload your pedigree file for kinship calculations
") - } else { - steps <- c(steps, "Step 2: Upload your pedigree file for kinship calculations
") - } + step2_icon <- get_step_icon(has_pedigree, pedigree_error) + steps <- c(steps, sprintf("%s Step 2: Upload your pedigree file for kinship calculations
", step2_icon)) # Step 3: Kinship threshold if (has_pedigree) { @@ -315,18 +505,12 @@ server <- function(input, output, session) { } # Step 4: Traits - if (has_traits) { - steps <- c(steps, "✅ Step 4: Add trait files and weights for breeding value analysis
") - } else { - steps <- c(steps, "Step 4: Add trait files and weights for breeding value analysis
") - } + step4_icon <- get_step_icon(has_traits, trait_error) + steps <- c(steps, sprintf("%s Step 4: Add trait files and weights for breeding value analysis
", step4_icon)) # Step 5: OCS - if (has_ocs_results) { - steps <- c(steps, "✅ Step 5: Configure OCS parameters and run analysis
") - } else { - steps <- c(steps, "Step 5: Configure OCS parameters and run analysis
") - } + step5_icon <- get_step_icon(has_ocs_results, ocs_error) + steps <- c(steps, sprintf("%s Step 5: Configure OCS parameters and run analysis
", step5_icon)) # Add completion message if all steps are done if (has_ocs_results) { @@ -340,6 +524,188 @@ server <- function(input, output, session) { HTML(paste(steps, collapse = "")) }) + # File status display + output$file_status_display <- renderUI({ + # Check what files/data are ready + has_candidates <- !is.null(input$candidate_file) + has_pedigree <- !is.null(input$pedigree_file) + has_ebv <- !is.null(ebv_results_reactive()) + has_ocs <- !is.null(ocs_results_reactive()) + + # Check for errors + current_error <- error_message() + has_error <- current_error != "" + + cs <- candidate_status() + candidate_ready <- isTRUE(cs$ok) + candidate_error_flag <- !is.null(cs$error) + + # Determine error type from error message + pedigree_error <- has_error && grepl("pedigree|kinship", current_error, ignore.case = TRUE) + ebv_error <- has_error && grepl("ebv|trait|weight", current_error, ignore.case = TRUE) + ocs_error <- has_error && grepl("ocs", current_error, ignore.case = TRUE) + + # Helper function to determine status icon and text + get_status <- function(has_data, uploaded, has_specific_error, ready_text = "Ready", pending_text = "Not uploaded", error_text = "Error") { + if (has_specific_error) { + list(icon = "❌", text = paste0("", error_text, "")) + } else if (has_data) { + list(icon = "✅", text = paste0("", ready_text, "")) + } else if (uploaded) { + list(icon = "⬜", text = paste0("Processing...")) + } else { + list(icon = "⬜", text = paste0("", pending_text, "")) + } + } + + # Candidate status with explicit tracking + candidate_status_ui <- if (candidate_error_flag) { + list(icon = "❌", text = "Error") + } else if (candidate_ready) { + list(icon = "✅", text = "Ready") + } else if (has_candidates) { + list(icon = "⬜", text = "Processing...") + } else { + list(icon = "⬜", text = "Not uploaded") + } + + # Pedigree status + pedigree_status <- get_status(has_pedigree, has_pedigree, pedigree_error, + "Ready", "Not uploaded", "Error") + + # EBV status - can error if uploaded but processing failed + ebv_status <- get_status(has_ebv, + has_candidates && has_pedigree, + ebv_error, + "Ready", "Pending", "Error") + + # OCS status + ocs_status <- get_status(has_ocs, FALSE, ocs_error, + "Ready", "Not run", "Error") + + # Create status lines with emojis + status_lines <- c( + paste0( + candidate_status_ui$icon, + " Candidate List: ", + candidate_status_ui$text + ), + paste0( + pedigree_status$icon, + " Pedigree Data: ", + pedigree_status$text + ), + paste0( + ebv_status$icon, + " EBV Matrix: ", + ebv_status$text + ), + paste0( + ocs_status$icon, + " OCS Results: ", + ocs_status$text + ) + ) + + # Check if all files are ready for download + all_ready <- candidate_ready && has_pedigree && has_ebv + + download_status <- if (has_error) { + "⚠️ Error detected. Check the startup guide above for details.
+✅ Download ready! All core data is available.
+Upload required files to enable download.
+⚠️ ", + format_count(stats$unknown_parent_count), + " individuals with unknown parent(s) (treated as founders)
")) + } + if (circular_count > 0) { + yellow_warnings <- c(yellow_warnings, + paste0("⚠️ ", + format_count(stats$circular_reference_count), + " circular references detected and broken at earliest generation
")) + } + if (missing_count > 0) { + yellow_warnings <- c(yellow_warnings, + paste0("⚠️ ", + format_count(stats$missing_candidates), + " selection candidates missing from pedigree
")) + } + + yellow_box <- if (length(yellow_warnings) > 0) { + paste0( + "\"\n in_code_block <- TRUE\n } else {\n html_lines[i] <- \"<\/code><\/pre>\"\n in_code_block <- FALSE\n }\n next\n }\n \n if (in_code_block) {\n html_lines[i] <- paste0(\"\", line, \"<\/span>\")\n next\n }\n \n # Handle headers\n if (grepl(\"^# \", line)) {\n level <- nchar(gsub(\"^(#+).*\", \"\\\\1\", line))\n content <- gsub(\"^#+ \", \"\", line)\n # Add emoji support for main headers\n if (level == 1) {\n content <- paste0(\"🧬 \", content)\n } else if (level == 2) {\n content <- paste0(\"🚀 \", content)\n } else if (level == 3) {\n content <- paste0(\"📁 \", content)\n } else if (level == 4) {\n content <- paste0(\"🛠️ \", content)\n } else if (level == 5) {\n content <- paste0(\"📊 \", content)\n } else if (level == 6) {\n content <- paste0(\"🔧 \", content)\n }\n # Create anchor ID for TOC linking\n anchor <- tolower(gsub(\"[^a-zA-Z0-9\\\\s]\", \"\", content))\n anchor <- gsub(\"\\\\s+\", \"-\", anchor)\n \n html_lines[i] <- paste0(\"\", content, \"<\/h\", level, \">\")\n next\n }\n \n # Handle bold and italic\n line <- gsub(\"\\\\*\\\\*(.+?)\\\\*\\\\*\", \"\\\\1<\/strong>\", line)\n line <- gsub(\"\\\\*(.+?)\\\\*\", \"\\\\1<\/em>\", line)\n \n # Handle inline code\n line <- gsub(\"`(.+?)`\", \"\\\\1<\/code>\", line)\n \n # Handle links\n line <- gsub(\"\\\\[(.+?)\\\\]\\\\((.+?)\\\\)\", \"\\\\1<\/a>\", line)\n \n # Handle lists\n if (grepl(\"^[*-] \", line)) {\n content <- gsub(\"^[*-] \", \"\", line)\n if (!in_list) {\n html_lines[i] <- paste0(\"- \", content, \"<\/li>\")\n in_list <- TRUE\n list_type <- \"ul\"\n } else {\n html_lines[i] <- paste0(\"
- \", content, \"<\/li>\")\n }\n next\n }\n \n # Handle numbered lists\n if (grepl(\"^\\\\d+\\\\. \", line)) {\n content <- gsub(\"^\\\\d+\\\\. \", \"\", line)\n if (!in_list) {\n html_lines[i] <- paste0(\"
- \", content, \"<\/li>\")\n in_list <- TRUE\n list_type <- \"ol\"\n } else {\n html_lines[i] <- paste0(\"
- \", content, \"<\/li>\")\n }\n next\n }\n \n # Close lists when we encounter a non-list line\n if (in_list && !grepl(\"^[*-] \", line) && !grepl(\"^\\\\d+\\\\. \", line) && nchar(trimws(line)) > 0) {\n html_lines[i-1] <- paste0(html_lines[i-1], paste0(\"<\/\", list_type, \">\"))\n in_list <- FALSE\n list_type <- \"\"\n }\n \n # Handle horizontal rules\n if (grepl(\"^---$\", line)) {\n html_lines[i] <- \"
\"\n next\n }\n \n # Handle empty lines (paragraph breaks)\n if (nchar(trimws(line)) == 0) {\n html_lines[i] <- \"<\/p>\"\n next\n }\n \n # Regular text\n if (i == 1 || (i > 1 && nchar(trimws(html_lines[i-1])) == 0)) {\n html_lines[i] <- paste0(\"
\", line)\n } else {\n html_lines[i] <- line\n }\n }\n \n # Close any open lists\n if (in_list) {\n html_lines[length(html_lines)] <- paste0(html_lines[length(html_lines)], paste0(\"<\/\", list_type, \">\"))\n }\n \n # Close any open paragraphs\n if (length(html_lines) > 0 && grepl(\"^
\", html_lines[1])) {\n html_lines[1] <- paste0(html_lines[1], \"<\/p>\")\n }\n \n # Combine and clean up\n html_content <- paste(html_lines, collapse = \"\\n\")\n html_content <- gsub(\"<\/p>
<\/p>
\", \"<\/p>
\", html_content)\n html_content <- gsub(\"^<\/p>\", \"\", html_content)\n html_content <- gsub(\"<\/p>$\", \"\", html_content)\n \n return(html_content)\n }\n \n # Generate table of contents function\n generate_toc <- function(markdown_text) {\n lines <- strsplit(markdown_text, \"\\n\")[[1]]\n toc_items <- character(0)\n \n for (line in lines) {\n if (grepl(\"^# \", line)) {\n level <- nchar(gsub(\"^(#+).*\", \"\\\\1\", line))\n content <- gsub(\"^#+ \", \"\", line)\n \n # Create anchor for linking\n anchor <- tolower(gsub(\"[^a-zA-Z0-9\\\\s]\", \"\", content))\n anchor <- gsub(\"\\\\s+\", \"-\", anchor)\n \n # Indent based on header level\n indent <- paste(rep(\" \", level - 1), collapse = \"\")\n \n # Add to TOC\n toc_items <- c(toc_items, \n paste0('
', \n indent, '• ', content, '<\/a><\/div>')\n )\n }\n }\n \n if (length(toc_items) > 0) {\n return(paste(toc_items, collapse = \"\"))\n } else {\n return(\"No headers found for table of contents.<\/p>\")\n }\n }\n \n # Help content (README)\n output$help_content <- renderUI({\n # Try multiple possible paths for README.md\n possible_paths <- c(\n \"../README.md\", # If running from app directory\n \"README.md\", # If running from project root\n \"../../README.md\" # If running from deeper subdirectory\n )\n \n readme_path <- NULL\n for (path in possible_paths) {\n if (file.exists(path)) {\n readme_path <- path\n break\n }\n }\n \n if (!is.null(readme_path)) {\n tryCatch({\n readme_content <- readLines(readme_path, warn = FALSE, encoding = \"UTF-8\")\n readme_text <- paste(readme_content, collapse = \"\\n\")\n \n # Enhanced markdown to HTML conversion\n html_content <- markdown_to_html(readme_text)\n \n # Generate table of contents\n toc <- generate_toc(readme_text)\n \n # Combine TOC and content\n full_content <- paste0(\n '
',\n '📋 Table of Contents<\/h3>',\n toc,\n '<\/div>',\n '
',\n html_content\n )\n \n # Wrap in div with CSS class for styling\n styled_html <- paste0('', full_content, '<\/div>')\n \n HTML(styled_html)\n }, error = function(e) {\n HTML(paste0(\n \"Help Documentation<\/h2>\",\n \"
Error reading README.md file: \", e$message, \"<\/p>\",\n \"
Please ensure the README.md file exists and is readable.<\/p>\"\n ))\n })\n } else {\n HTML(paste0(\n \"
Help Documentation<\/h2>\",\n \"
README.md file not found. Please ensure the documentation file exists in the project root.<\/p>\"\n ))\n }\n })\n \n trait_counter <- reactiveVal(1)\n ocs_results_reactive <- reactiveVal() # For OCS results\n ebv_results_reactive <- reactiveVal() # For EBV results\n error_message <- reactiveVal(\"\") # For tracking errors\n \n # Dynamic startup guide\n output$dynamic_guide <- renderUI({\n # Check for errors first\n current_error <- error_message()\n if (current_error != \"\") {\n return(HTML(paste0(\n \"
\",\n \"❌ Error occurred:<\/strong><\/p>\",\n \"\", current_error, \"<\/p>\",\n \"
💡 Need help? Check the Help tab for detailed documentation.<\/p>\",\n \"<\/div>\"\n )))\n }\n \n # Check current state\n has_candidates <- !is.null(input$candidate_file)\n has_pedigree <- !is.null(input$pedigree_file)\n has_kinship_threshold <- !is.null(input$thresh) && input$thresh < 1\n has_traits <- trait_counter() > 0 && any(sapply(1:trait_counter(), function(i) !is.null(input[[paste0(\"trait_file_\", i)]])))\n has_ocs_results <- !is.null(ocs_results_reactive())\n \n # Build step-by-step guide\n steps <- c()\n \n # Step 1: Candidates\n if (has_candidates) {\n steps <- c(steps, \"
✅ Step 1:<\/strong> Upload your candidate list to begin the analysis<\/p>\")\n } else {\n steps <- c(steps, \"Step 1:<\/strong> Upload your candidate list to begin the analysis<\/p>\")\n }\n \n # Step 2: Pedigree\n if (has_pedigree) {\n steps <- c(steps, \"✅ Step 2:<\/strong> Upload your pedigree file for kinship calculations<\/p>\")\n } else {\n steps <- c(steps, \"Step 2:<\/strong> Upload your pedigree file for kinship calculations<\/p>\")\n }\n \n # Step 3: Kinship threshold\n if (has_pedigree) {\n steps <- c(steps, \"⚙️ Step 3:<\/strong> Set your kinship threshold (optional)<\/p>\")\n } else {\n steps <- c(steps, \"Step 3:<\/strong> Set your kinship threshold (optional)<\/p>\")\n }\n \n # Step 4: Traits\n if (has_traits) {\n steps <- c(steps, \"✅ Step 4:<\/strong> Add trait files and weights for breeding value analysis<\/p>\")\n } else {\n steps <- c(steps, \"Step 4:<\/strong> Add trait files and weights for breeding value analysis<\/p>\")\n }\n \n # Step 5: OCS\n if (has_ocs_results) {\n steps <- c(steps, \"✅ Step 5:<\/strong> Configure OCS parameters and run analysis<\/p>\")\n } else {\n steps <- c(steps, \"Step 5:<\/strong> Configure OCS parameters and run analysis<\/p>\")\n }\n \n # Add completion message if all steps are done\n if (has_ocs_results) {\n steps <- c(steps, \n \"🎉 Analysis Complete!<\/strong><\/p>\",\n \"Final Step:<\/strong> Export your results using the download button below<\/p>\",\n \"Great job! Results are ready for review and export<\/p>\"\n )\n }\n \n HTML(paste(steps, collapse = \"\"))\n })\n \n observeEvent(input$add_trait, {\n trait_counter(trait_counter() + 1)\n })\n \n observeEvent(input$remove_trait, {\n if (trait_counter() > 1) {\n trait_counter(trait_counter() - 1)\n }\n })\n \n output$trait_inputs <- renderUI({\n create_trait_inputs(trait_counter())\n })\n \n # OCS trait inputs\n output$ocs_trait_inputs <- renderUI({\n req(input$ocs_trait_counter)\n create_ocs_trait_inputs(input$ocs_trait_counter)\n })\n \n candidates_data <- reactive({\n req(input$candidate_file)\n read_candidates(input$candidate_file)\n })\n \n pedigree_data <- reactiveVal(NULL)\n \n observeEvent(input$pedigree_file, {\n req(candidates_data())\n males <- candidates_data()$males\n females <- candidates_data()$females\n \n tryCatch({\n raw_ped <- readr::read_table(input$pedigree_file$datapath)\n final_ped <- clean_pedigree(raw_ped)\n kinship_res <- compute_kinship_matrix(final_ped, males, females)\n \n output$quadrants_table <- DT::renderDT({\n datatable(kinship_res$quads, options = list(ordering = FALSE, dom = \"t\"), rownames = TRUE) %>%\n formatStyle(colnames(kinship_res$quads), styleEqual(\n kinship_res$quads[1, ], c(\"lightgreen\", \"yellow\", \"orange\", \"coral\")\n ))\n })\n \n pedigree_data(list(results = kinship_res$results, quads = kinship_res$quads))\n \n error_message(\"\") # Clear any previous errors\n output$message1 <- renderText(\"✅ Kinship matrix generated successfully.\")\n }, error = function(e) {\n error_message(paste0(\"Error processing pedigree: \", e$message))\n output$message1 <- renderText(\n paste0(\"❌ Error processing pedigree: Make sure your pedigree is clean and valid.\\n\",\n \"Original error: \", e$message)\n )\n })\n })\n \n observe({\n req(candidates_data())\n ebv_res <- process_ebvs(trait_counter(), input)\n req(ebv_res)\n \n joint_ebvs <- ebv_res$joint_ebvs\n rel_weights <- ebv_res$rel_weights\n weight_total <- ebv_res$weight_total\n \n ebv_cols <- paste0(\"EBV.\", seq_along(rel_weights))\n # Ensure EBV columns are numeric for matrix multiplication\n joint_ebvs[ebv_cols] <- lapply(joint_ebvs[ebv_cols], as.numeric)\n joint_ebvs$index_val <- as.vector(as.matrix(joint_ebvs[ebv_cols]) %*% rel_weights)\n \n cands <- candidates_data()$candidates\n males <- candidates_data()$males\n females <- candidates_data()$females\n \n cand_ebv <- left_join(cands, joint_ebvs, by = c(\"id\" = \"ID\")) %>%\n select(id, sex, index_val)\n \n m_ebv <- filter(cand_ebv, id %in% males) %>% select(id, index_val)\n f_ebv <- filter(cand_ebv, id %in% females) %>% select(id, index_val)\n \n ebv_matrix <- outer(m_ebv$index_val, f_ebv$index_val, function(x, y) round((x + y) / 2, 2))\n rownames(ebv_matrix) <- m_ebv$id\n colnames(ebv_matrix) <- f_ebv$id\n \n ebv_quads <- tibble(\n Data = \"EBV\",\n Q25 = quantile(ebv_matrix, 0.25),\n Q50 = quantile(ebv_matrix, 0.50),\n Q75 = quantile(ebv_matrix, 0.75),\n Q100 = quantile(ebv_matrix, 1.00)\n ) %>% column_to_rownames(\"Data\")\n \n quads_combined <- if (!is.null(pedigree_data())) {\n bind_rows(pedigree_data()$quads, ebv_quads)\n } else {\n ebv_quads\n }\n \n output$quadrants_table <- DT::renderDT({\n datatable(quads_combined, options = list(ordering = FALSE, dom = \"t\"), rownames = TRUE) %>%\n formatStyle(\"Q25\", backgroundColor = \"coral\") %>%\n formatStyle(\"Q50\", backgroundColor = \"orange\") %>%\n formatStyle(\"Q75\", backgroundColor = \"yellow\") %>%\n formatStyle(\"Q100\", backgroundColor = \"lightgreen\")\n })\n \n ebv_results <- as_tibble(ebv_matrix, rownames = \"Male\") %>%\n pivot_longer(-Male, names_to = \"Female\", values_to = \"EBV\")\n \n full_results <- if (!is.null(pedigree_data())) {\n left_join(pedigree_data()$results, ebv_results, by = c(\"Female\", \"Male\"))\n } else {\n relocate(mutate(ebv_results, Kinship = NA), Kinship, .after = EBV)\n }\n \n # For table: filter out crosses with EBV <=0 or kinship >= threshold\n filt_results_table <- full_results %>%\n filter(EBV > 0, (is.na(Kinship) | Kinship < input$thresh))\n \n # For Excel: mask EBVs for invalid crosses as NA (blank in Excel)\n filt_results_matrix <- full_results %>%\n mutate(EBV = ifelse(EBV <= 0 | (!is.na(Kinship) & Kinship >= input$thresh), NA, EBV))\n \n # Store results for download handler\n ebv_results_reactive(list(\n filt_results_table = filt_results_table,\n filt_results_matrix = filt_results_matrix,\n full_results = full_results,\n ebv_quads = ebv_quads\n ))\n \n output$matrix <- DT::renderDT({\n datatable(filt_results_table, rownames = TRUE) %>%\n formatStyle(\"EBV\", styleInterval(\n unlist(ebv_quads[1, c(\"Q25\", \"Q50\", \"Q75\")]),\n c(\"coral\", \"orange\", \"yellow\", \"lightgreen\")\n ))\n })\n \n output$message2 <- renderText(\n if (abs(weight_total - 1) > 1e-6)\n paste(\"⚠️ Warning: Trait weights do not sum to 1 (total =\", round(weight_total, 4), \")\")\n else\n \"✅ EBV matrix generated successfully.\"\n )\n \n output$download_all_results <- downloadHandler(\n filename = function() {\n paste0(\"AlloMate_Complete_Results-\", Sys.Date(), \".xlsx\")\n },\n content = function(file) {\n wb <- openxlsx::createWorkbook()\n \n # Add comprehensive README worksheet\n openxlsx::addWorksheet(wb, \"README\")\n readme_text <- c(\n \"📊 AlloMate Complete Results Report\",\n \"\",\n \"This Excel file contains all results from your AlloMate analysis:\",\n \"\",\n \"📋 Worksheets included:\",\n \"1. README - This overview and explanation\",\n \"2. Filtered Results - Crosses meeting criteria (positive EBVs, kinship below threshold)\",\n \"3. EBV Matrix - Complete matrix view with masked values\",\n \"4. OCS Candidates - Selected candidates from Optimum Contribution Selection\",\n \"5. Mating Plan - Recommended mating pairs from OCS\",\n \"6. Parameters - Analysis parameters used\",\n \"\",\n \"🔍 Data Details:\",\n \"- Filtered Results: Only crosses with positive EBVs and kinship below threshold\",\n \"- EBV Matrix: All possible crosses with values masked for failed criteria\",\n \"- OCS Results: Available only after running Optimum Contribution Selection\",\n \"\",\n \"📅 Generated on:\", as.character(Sys.Date())\n )\n openxlsx::writeData(wb, \"README\", readme_text)\n \n # Add kinship/EBV results if available\n ebv_results <- ebv_results_reactive()\n if (!is.null(ebv_results)) {\n openxlsx::addWorksheet(wb, \"Filtered Results\")\n openxlsx::writeData(wb, \"Filtered Results\", ebv_results$filt_results_table, rowNames = TRUE)\n \n openxlsx::addWorksheet(wb, \"EBV Matrix\")\n m_ids <- unique(ebv_results$full_results$Male)\n f_ids <- unique(ebv_results$full_results$Female)\n mat_for_excel <- matrix(NA_real_, nrow = length(m_ids), ncol = length(f_ids),\n dimnames = list(m_ids, f_ids))\n \n for (i in seq_len(nrow(ebv_results$filt_results_matrix))) {\n m <- ebv_results$filt_results_matrix$Male[i]\n f <- ebv_results$filt_results_matrix$Female[i]\n val <- ebv_results$filt_results_matrix$EBV[i]\n mat_for_excel[m, f] <- val\n }\n openxlsx::writeData(wb, \"EBV Matrix\", mat_for_excel, rowNames = TRUE)\n }\n \n # Add OCS results if available\n if (exists(\"ocs_results_reactive\") && !is.null(ocs_results_reactive())) {\n results <- ocs_results_reactive()\n formatted_results <- format_ocs_results(results)\n \n openxlsx::addWorksheet(wb, \"OCS Candidates\")\n openxlsx::writeData(wb, \"OCS Candidates\", formatted_results$candidate_table, rowNames = FALSE)\n \n openxlsx::addWorksheet(wb, \"Mating Plan\")\n openxlsx::writeData(wb, \"Mating Plan\", formatted_results$mating_table, rowNames = FALSE)\n }\n \n # Add parameters worksheet\n openxlsx::addWorksheet(wb, \"Parameters\")\n params_data <- data.frame(\n Parameter = c(\"Kinship Threshold\", \"Desired Inbreeding Rate\", \"Number of Offspring\", \"Analysis Date\"),\n Value = c(\n as.character(input$thresh),\n as.character(input$inbreeding_rate),\n as.character(input$num_offspring),\n as.character(Sys.Date())\n )\n )\n openxlsx::writeData(wb, \"Parameters\", params_data, rowNames = FALSE)\n \n openxlsx::saveWorkbook(wb, file, overwrite = TRUE)\n }\n )\n })\n \n #### OCS Server Logic ####\n \n observeEvent(input$run_ocs_btn, {\n req(input$pedigree_file, input$candidate_file)\n \n # Check if any OCS implementation is available (optiSel or custom fallback)\n if ((!exists(\"optisel_available\") || !optisel_available) && \n (!exists(\"custom_ocs_available\") || !custom_ocs_available)) {\n showModal(modalDialog(\n title = \"OCS Functionality Not Available\",\n \"Neither optiSel nor the custom OCS fallback could be loaded. \n Please check that all required packages are installed and restart the app.\",\n easyClose = TRUE\n ))\n return(NULL)\n }\n \n tryCatch({\n ped_data <- read.table(input$pedigree_file$datapath, header = TRUE)\n candidates <- read.table(input$candidate_file$datapath, header = TRUE)\n \n final_ped <- clean_pedigree(ped_data)\n kinship_matrix <- if (exists(\"kinship2_available\") && kinship2_available) {\n kinship2::kinship(final_ped)\n } else {\n fallback_kinship(final_ped)\n }\n \n ebv_result <- process_ebvs(trait_counter(), input)\n if (is.null(ebv_result) || abs(ebv_result$weight_total - 1) > 1e-6) {\n showModal(modalDialog(\n title = \"Invalid Weights\",\n \"Weights must sum to 1.\",\n easyClose = TRUE\n ))\n return(NULL)\n }\n \n joint_ebvs <- calculate_index(ebv_result$joint_ebvs, ebv_result$rel_weights)\n candidates <- left_join(candidates, joint_ebvs, by = c(\"id\" = \"ID\"))\n \n results <- run_ocs(\n candidates_df = candidates,\n kinship_matrix = kinship_matrix,\n ebv_index = candidates$index_val,\n desired_inbreeding_rate = input$inbreeding_rate,\n num_offspring = input$num_offspring\n )\n \n ocs_results_reactive(results)\n \n error_message(\"\") # Clear any previous errors\n \n # Format results for display\n formatted_results <- format_ocs_results(results)\n \n output$ocs_candidate_table <- DT::renderDT({\n formatted_results$candidate_table\n })\n \n # Switch to OCS tab to show results\n updateTabsetPanel(session, \"main_tabs\", selected = \"Optimum Contribution Selection\")\n \n }, error = function(e) {\n error_message(paste0(\"Error running OCS: \", e$message))\n showModal(modalDialog(\n title = \"Error\",\n paste(\"❌ Error running OCS:\", e$message),\n easyClose = TRUE\n ))\n })\n })\n \n output$ocs_mating_table <- DT::renderDT({\n req(ocs_results_reactive())\n results <- ocs_results_reactive()\n formatted_results <- format_ocs_results(results)\n formatted_results$mating_table %>%\n datatable(\n options = list(pageLength = 10, autoWidth = TRUE),\n rownames = FALSE\n )\n })\n \n #### R Code Display and Download ####\n \n # HTML escape function for code display\n htmlEscape <- function(text) {\n text <- gsub(\"&\", \"&\", text)\n text <- gsub(\"<\", \"<\", text)\n text <- gsub(\">\", \">\", text)\n text <- gsub('\"', \""\", text)\n text <- gsub(\"'\", \"'\", text)\n return(text)\n }\n \n # Function to read and format R code files\n format_r_code_content <- function() {\n # Define the R files to include\n r_files <- c(\n \"global.R\" = \"Global Setup and Package Loading\",\n \"R/load_functions.R\" = \"Function Loading Logic\", \n \"R/utils.R\" = \"Data Processing Functions\",\n \"R/ocs_helpers.R\" = \"OCS Calculation Functions\",\n \"R/ui_helpers.R\" = \"UI Helper Functions\",\n \"R/optsel_fallback.R\" = \"Custom OCS Implementation\"\n )\n \n # Determine the base path\n base_path <- if (app_dir) \".\" else \"app\"\n \n # Read and format each file\n formatted_sections <- list()\n \n for (file_path in names(r_files)) {\n full_path <- file.path(base_path, file_path)\n \n if (file.exists(full_path)) {\n tryCatch({\n file_content <- readLines(full_path, warn = FALSE, encoding = \"UTF-8\")\n file_content <- paste(file_content, collapse = \"\\n\")\n \n # Create formatted section\n section_html <- paste0(\n '
',\n '📁 ', r_files[file_path], '<\/h4>',\n '',\n 'File:<\/strong> ', file_path, '
',\n 'Lines:<\/strong> ', length(strsplit(file_content, \"\\n\")[[1]]), '
',\n 'Description:<\/strong> ', r_files[file_path],\n '<\/div>',\n '', \n htmlEscape(file_content),\n '<\/code><\/pre>',\n '<\/div>'\n )\n \n formatted_sections[[file_path]] <- section_html\n }, error = function(e) {\n formatted_sections[[file_path]] <- paste0(\n '',\n '❌ Error reading file<\/h4>',\n '
Could not read file: ', file_path, '<\/p>',\n '
Error: ', e$message, '<\/p>',\n '<\/div>'\n )\n })\n } else {\n formatted_sections[[file_path]] <- paste0(\n '
',\n '❌ File not found<\/h4>',\n '
File not found: ', file_path, '<\/p>',\n '<\/div>'\n )\n }\n }\n \n # Create setup instructions\n setup_instructions <- paste0(\n '
',\n '🚀 Setup Instructions<\/h4>',\n '
To run this analysis independently in R:<\/strong><\/p>',\n '',\n '- Install required packages:<\/strong>
',\n 'install.packages(c(\"tidyverse\", \"shiny\", \"DT\", \"openxlsx\", \"quadprog\", \"kinship2\", \"optiSel\"))<\/code><\/li>',\n '- Load the code files:<\/strong> Copy the code sections above into separate .R files<\/li>',\n '
- Prepare your data:<\/strong> Ensure your input files match the expected format<\/li>',\n '
- Run the analysis:<\/strong> Execute the functions in the order shown above<\/li>',\n '<\/ol>',\n '
Note:<\/strong> The custom OCS fallback will be used if optiSel is not available.<\/p>',\n '<\/div>'\n )\n \n # Combine all sections\n full_content <- paste0(\n '',\n '🧬 AlloMate R Code Implementation<\/h1>',\n '
This page contains all the R code needed to implement the AlloMate analysis independently. ',\n 'The code is organized by function and includes all necessary data processing, kinship calculations, ',\n 'and optimum contribution selection algorithms.<\/p>',\n setup_instructions,\n paste(formatted_sections, collapse = \"\"),\n '<\/div>'\n )\n \n return(full_content)\n }\n \n # Render R code content\n output$r_code_content <- renderUI({\n HTML(format_r_code_content())\n })\n \n # Download R code functionality\n output$download_r_code <- downloadHandler(\n filename = function() {\n paste0(\"allomate_complete_script_\", format(Sys.Date(), \"%Y%m%d\"), \".R\")\n },\n content = function(file) {\n # Define the R files to include\n r_files <- c(\n \"global.R\" = \"# Global Setup and Package Loading\",\n \"R/load_functions.R\" = \"# Function Loading Logic\", \n \"R/utils.R\" = \"# Data Processing Functions\",\n \"R/ocs_helpers.R\" = \"# OCS Calculation Functions\",\n \"R/ui_helpers.R\" = \"# UI Helper Functions\",\n \"R/optsel_fallback.R\" = \"# Custom OCS Implementation\"\n )\n \n # Determine the base path\n base_path <- if (app_dir) \".\" else \"app\"\n \n # Create the complete script\n script_lines <- c(\n \"# AlloMate Complete R Script\",\n \"# Generated on:\", as.character(Sys.Date()),\n \"# This script contains all functions needed to run AlloMate analysis independently\",\n \"\",\n \"# =============================================================================\",\n \"# SETUP INSTRUCTIONS\",\n \"# =============================================================================\",\n \"# 1. Install required packages:\",\n \"# install.packages(c('tidyverse', 'shiny', 'DT', 'openxlsx', 'quadprog', 'kinship2', 'optiSel'))\",\n \"# 2. Load required libraries:\",\n \"# library(tidyverse)\",\n \"# library(openxlsx)\",\n \"# library(quadprog)\",\n \"# library(kinship2)\",\n \"# library(optiSel)\",\n \"# 3. Run this script to load all functions\",\n \"# 4. Use the functions as demonstrated in the comments\",\n \"\",\n \"# =============================================================================\",\n \"# FUNCTION DEFINITIONS\",\n \"# =============================================================================\",\n \"\"\n )\n \n for (file_path in names(r_files)) {\n full_path <- file.path(base_path, file_path)\n \n if (file.exists(full_path)) {\n tryCatch({\n file_content <- readLines(full_path, warn = FALSE, encoding = \"UTF-8\")\n \n # Add section header\n script_lines <- c(script_lines, \n paste0(\"# \", \"=\", strrep(\"=\", 70)),\n r_files[file_path],\n paste0(\"# \", \"=\", strrep(\"=\", 70)),\n \"\",\n file_content,\n \"\",\n \"\"\n )\n }, error = function(e) {\n script_lines <- c(script_lines,\n paste0(\"# Error reading file: \", file_path),\n paste0(\"# \", e$message),\n \"\",\n \"\"\n )\n })\n } else {\n script_lines <- c(script_lines,\n paste0(\"# File not found: \", file_path),\n \"\",\n \"\"\n )\n }\n }\n \n # Add usage example\n script_lines <- c(script_lines,\n \"# =============================================================================\",\n \"# USAGE EXAMPLE\",\n \"# =============================================================================\",\n \"# \",\n \"# # Load your data\",\n \"# candidates <- read.table('your_candidates.txt', header = TRUE)\",\n \"# pedigree <- read.table('your_pedigree.txt', header = TRUE)\",\n \"# \",\n \"# # Process data\",\n \"# candidates_data <- read_candidates(list(datapath = 'your_candidates.txt'))\",\n \"# final_ped <- clean_pedigree(pedigree)\",\n \"# kinship_matrix <- compute_kinship_matrix(final_ped, candidates_data$males, candidates_data$females)\",\n \"# \",\n \"# # Run OCS analysis\",\n \"# results <- run_ocs(candidates_df = candidates, kinship_matrix = kinship_matrix$results,\",\n \"# ebv_index = your_ebv_values, desired_inbreeding_rate = 0.05, num_offspring = 100)\",\n \"# \",\n \"# # View results\",\n \"# print(results)\",\n \"\"\n )\n \n # Write to file\n writeLines(script_lines, file)\n }\n )\n \n\n}","type":"text"},{"name":"ui.R","content":"library(shiny)\nlibrary(shinyjs)\nlibrary(DT)\n\nui <- function(request) {\n fluidPage(\n useShinyjs(), # enables shinyjs functions\n \n # Custom CSS for better help content styling\n tags$head(\n tags$style(HTML(\"\n .help-content h1 {\n color: #2c3e50;\n border-bottom: 3px solid #3498db;\n padding-bottom: 10px;\n margin-top: 30px;\n margin-bottom: 20px;\n }\n \n .help-content h2 {\n color: #34495e;\n border-left: 4px solid #3498db;\n padding-left: 15px;\n margin-top: 25px;\n margin-bottom: 15px;\n }\n \n .help-content h3 {\n color: #2c3e50;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n \n .help-content h4, .help-content h5, .help-content h6 {\n color: #34495e;\n margin-top: 15px;\n margin-bottom: 8px;\n }\n \n .help-content p {\n margin-bottom: 12px;\n text-align: justify;\n }\n \n .help-content ul, .help-content ol {\n margin-bottom: 15px;\n padding-left: 25px;\n }\n \n .help-content li {\n margin-bottom: 5px;\n }\n \n .help-content code {\n background-color: #f8f9fa;\n color: #e74c3c;\n padding: 2px 6px;\n border-radius: 3px;\n font-family: 'Courier New', monospace;\n font-size: 0.9em;\n }\n \n .help-content pre {\n background-color: #2c3e50;\n color: #ecf0f1;\n padding: 15px;\n border-radius: 5px;\n overflow-x: auto;\n margin: 15px 0;\n }\n \n .help-content pre code {\n background-color: transparent;\n color: inherit;\n padding: 0;\n }\n \n .help-content a {\n color: #3498db;\n text-decoration: none;\n border-bottom: 1px solid transparent;\n transition: border-bottom 0.3s ease;\n }\n \n .help-content a:hover {\n border-bottom: 1px solid #3498db;\n }\n \n .help-content hr {\n border: none;\n border-top: 2px solid #bdc3c7;\n margin: 25px 0;\n }\n \n .help-content blockquote {\n border-left: 4px solid #3498db;\n padding-left: 15px;\n margin: 15px 0;\n font-style: italic;\n color: #7f8c8d;\n }\n \n .help-content .emoji {\n font-size: 1.2em;\n margin-right: 5px;\n }\n \n .toc-container {\n background-color: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n padding: 20px;\n margin-bottom: 25px;\n }\n \n .toc-container h3 {\n margin-top: 0;\n color: #495057;\n border-bottom: 2px solid #007bff;\n padding-bottom: 10px;\n }\n \n .toc-link {\n color: #495057;\n text-decoration: none;\n display: block;\n padding: 3px 0;\n transition: color 0.3s ease;\n }\n \n .toc-link:hover {\n color: #007bff;\n text-decoration: underline;\n }\n \n .help-content {\n scroll-behavior: smooth;\n }\n \n .r-code-content h1 {\n color: #2c3e50;\n border-bottom: 3px solid #3498db;\n padding-bottom: 10px;\n margin-top: 30px;\n margin-bottom: 20px;\n }\n \n .r-code-content h2 {\n color: #34495e;\n border-left: 4px solid #3498db;\n padding-left: 15px;\n margin-top: 25px;\n margin-bottom: 15px;\n }\n \n .r-code-content h3 {\n color: #2c3e50;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n \n .r-code-content .code-section {\n background-color: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n padding: 20px;\n margin: 15px 0;\n }\n \n .r-code-content .code-section h4 {\n color: #495057;\n margin-top: 0;\n margin-bottom: 15px;\n border-bottom: 1px solid #dee2e6;\n padding-bottom: 8px;\n }\n \n .r-code-content pre {\n background-color: #2c3e50;\n color: #ecf0f1;\n padding: 15px;\n border-radius: 5px;\n overflow-x: auto;\n margin: 10px 0;\n font-size: 12px;\n line-height: 1.4;\n }\n \n .r-code-content pre code {\n background-color: transparent;\n color: inherit;\n padding: 0;\n }\n \n .r-code-content .file-info {\n background-color: #e3f2fd;\n border: 1px solid #2196f3;\n padding: 10px;\n border-radius: 5px;\n margin-bottom: 15px;\n font-size: 12px;\n }\n \n .r-code-content .setup-instructions {\n background-color: #fff3cd;\n border: 1px solid #ffeaa7;\n padding: 15px;\n border-radius: 5px;\n margin: 20px 0;\n }\n \n .r-code-content .setup-instructions h4 {\n color: #856404;\n margin-top: 0;\n }\n \n .r-code-content .setup-instructions ul {\n margin-bottom: 0;\n }\n \"))\n ),\n \n # JavaScript for smooth scrolling and TOC functionality\n tags$script(HTML(\"\n $(document).ready(function() {\n // Smooth scrolling for TOC links\n $('.toc-link').on('click', function(e) {\n e.preventDefault();\n var target = $(this).attr('href');\n var $target = $(target);\n if ($target.length) {\n $('.help-content').animate({\n scrollTop: $target.offset().top - 100\n }, 800);\n }\n });\n });\n \")),\n \n ## ─── Flex container with banner and AlloMate hex ───────────────────────────\n div(\n style = \"display: flex; align-items: center; justify-content: space-between; margin-bottom: 15px;\",\n \n # AlloMate hex (right)\n tags$img(\n src = \"allomate.png\",\n height = \"120px\",\n style = \"margin-left: 20px;\"\n ),\n \n # Logos banner (left)\n tags$img(\n src = \"logos.png\",\n style = \"width: 70%; height: auto;\"\n )\n ),\n \n sidebarLayout(\n sidebarPanel(\n \n # Dynamic startup guide and feedback\n div(\n id = \"startup_guide\",\n style = \"background-color: #ffffff; border: 1px solid #dee2e6; padding: 10px; margin-bottom: 15px; border-radius: 5px;\",\n h4(\"🚀 Getting Started\"),\n htmlOutput(\"dynamic_guide\"),\n verbatimTextOutput(\"package_status_text\"),\n conditionalPanel(\n condition = \"output.webr_detected\",\n div(\n style = \"background-color: #fff3cd; border: 1px solid #ffeaa7; padding: 8px; margin-top: 10px; border-radius: 3px;\",\n p(\"🌐 WebR environment detected. Custom OCS fallback will be used since optiSel is not available in WebR.\")\n )\n ),\n div(\n style = \"text-align: center; margin-top: 15px; padding-top: 10px; border-top: 1px solid #dee2e6;\",\n actionButton(\"help_btn\", \"❓ Help\", \n style = \"background-color: #007bff; color: white; border: none; padding: 8px 16px; border-radius: 5px;\")\n )\n ),\n \n wellPanel(\n style = \"background-color: #e3f2fd; border: 2px solid #2196f3; padding: 15px; margin-bottom: 20px; border-radius: 8px;\",\n h4(\"🧬 Core Data Inputs\", style = \"color: #1565c0; margin-bottom: 15px; border-bottom: 1px solid #2196f3; padding-bottom: 8px;\"),\n p(\"These inputs are used by both Index Generation and OCS calculations:\", style = \"color: #6c757d; font-size: 12px; margin-bottom: 15px;\"),\n \n h5(\"Estimate progeny genetic merit\"),\n \n fileInput(\"candidate_file\", \"Upload list of candidates\",\n accept = c(\".csv\", \".txt\")),\n \n h5(\"Calculate kinship matrix\"),\n fileInput(\"pedigree_file\", \"Upload pedigree file\", accept = \".txt\"),\n \n h5(\"Set kinship threshold\"),\n numericInput(\"thresh\", \"Max kinship allowed between mates:\",\n value = 1, min = 0, max = 1, step = 0.1),\n ),\n \n wellPanel(\n style = \"background-color: #ffebee; border: 2px solid #f44336; padding: 15px; margin-bottom: 20px; border-radius: 8px;\",\n h4(\"⚖️ Weighted EBVs\", style = \"color: #c62828; margin-bottom: 15px; border-bottom: 1px solid #f44336; padding-bottom: 8px;\"),\n p(\"Define traits and their relative importance for breeding decisions:\", style = \"color: #6c757d; font-size: 12px; margin-bottom: 15px;\"),\n \n h5(\"Traits (EBVs and weights)\"),\n uiOutput(\"trait_inputs\"),\n \n fluidRow(\n column(6, actionButton(\"add_trait\", \"➕ Add trait\")),\n column(6, actionButton(\"remove_trait\", \"➖ Remove trait\"))\n ),\n p(\"💡 Note: Adding or removing traits will require re-uploading files.\", \n style = \"color: #6c757d; font-size: 11px; font-style: italic; margin-top: 8px;\"),\n ),\n \n wellPanel(\n style = \"background-color: #fff3cd; border: 2px solid #ffeaa7; padding: 15px; margin-bottom: 20px; border-radius: 8px;\",\n h4(\"🎯 Optimum Contribution Selection\", style = \"color: #856404; margin-bottom: 15px; border-bottom: 1px solid #ffeaa7; padding-bottom: 8px;\"),\n p(\"Configure breeding objectives and constraints:\", style = \"color: #6c757d; font-size: 12px; margin-bottom: 15px;\"),\n \n h5(\"Breeding Objectives\"),\n numericInput(\"inbreeding_rate\", \"Desired Inbreeding Rate\", \n value = 0.05, min = 0.01, max = 0.2, step = 0.01),\n numericInput(\"num_offspring\", \"Number of Offspring\", \n value = 100, min = 10, step = 1),\n \n actionButton(\"run_ocs_btn\", \"Run OCS\", \n style = \"margin-top: 15px; width: 100%; background-color: #856404; color: white; border: none; padding: 10px; border-radius: 5px;\")\n ),\n \n wellPanel(\n style = \"background-color: #d4edda; border: 2px solid #c3e6cb; padding: 15px; margin-bottom: 20px; border-radius: 8px;\",\n h4(\"📊 Export Results\", style = \"color: #155724; margin-bottom: 15px; border-bottom: 1px solid #c3e6cb; padding-bottom: 8px;\"),\n p(\"Download all results in a single Excel file with multiple tabs:\", style = \"color: #6c757d; font-size: 12px; margin-bottom: 15px;\"),\n downloadButton(\"download_all_results\", \"📥 Export All Results\", \n style = \"width: 100%; background-color: #28a745; color: white; border: none; padding: 10px; border-radius: 5px; margin-bottom: 10px;\"),\n actionButton(\"view_r_code_btn\", \"📝 View R Code\", \n style = \"width: 100%; background-color: #17a2b8; color: white; border: none; padding: 10px; border-radius: 5px;\")\n )\n ),\n mainPanel(\n tabsetPanel(\n id = \"main_tabs\",\n tabPanel(\"Kinship and EBV\",\n verbatimTextOutput(\"message1\"),\n \n verbatimTextOutput(\"message2\"),\n \n DTOutput(\"quadrants_table\"),\n DTOutput(\"matrix\")\n ),\n tabPanel(\"Optimum Contribution Selection\",\n DTOutput(\"ocs_candidate_table\"),\n br(),\n DTOutput(\"ocs_mating_table\")\n ),\n tabPanel(\"R Code\",\n div(\n style = \"padding: 20px; background-color: #f8f9fa; border-radius: 8px; margin: 10px 0; max-height: 80vh; overflow-y: auto; position: relative;\",\n div(\n style = \"background-color: white; padding: 25px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\",\n div(\n style = \"text-align: center; margin-bottom: 25px; padding-bottom: 15px; border-bottom: 2px solid #007bff;\",\n h2(\"📝 R Code Implementation\", style = \"color: #007bff; margin-bottom: 10px;\"),\n p(\"Complete R code for implementing AlloMate analysis independently\", style = \"color: #666; font-size: 16px;\")\n ),\n div(\n style = \"text-align: center; margin-bottom: 20px;\",\n downloadButton(\"download_r_code\", \"📥 Download Complete R Script\", \n style = \"background-color: #28a745; color: white; border: none; padding: 12px 24px; border-radius: 5px; font-size: 14px;\")\n ),\n div(\n style = \"line-height: 1.6; font-size: 14px;\",\n htmlOutput(\"r_code_content\")\n )\n )\n )\n ),\n tabPanel(\"Help\",\n div(\n style = \"padding: 20px; background-color: #f8f9fa; border-radius: 8px; margin: 10px 0; max-height: 80vh; overflow-y: auto; position: relative;\",\n div(\n style = \"background-color: white; padding: 25px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\",\n div(\n style = \"text-align: center; margin-bottom: 25px; padding-bottom: 15px; border-bottom: 2px solid #007bff;\",\n h2(\"📚 AlloMate Documentation\", style = \"color: #007bff; margin-bottom: 10px;\"),\n p(\"Complete user guide and technical documentation\", style = \"color: #666; font-size: 16px;\")\n ),\n div(\n style = \"line-height: 1.6; font-size: 14px;\",\n htmlOutput(\"help_content\")\n ),\n div(\n style = \"text-align: center; margin-top: 30px; padding-top: 20px; border-top: 1px solid #dee2e6;\",\n actionButton(\"back_to_top\", \"⬆️ Back to Top\", \n style = \"background-color: #6c757d; color: white; border: none; padding: 8px 16px; border-radius: 5px;\")\n )\n )\n )\n )\n )\n )\n )\n )\n}","type":"text"},{"name":"R/load_functions.R","content":"# Load All Functions\n# This file sources all function files in the correct order\n\n# Initialize variables if they don't exist (for standalone usage)\nif (!exists(\"optisel_available\")) {\n optisel_available <<- FALSE\n}\nif (!exists(\"kinship2_available\")) {\n kinship2_available <<- FALSE\n}\n\n# Use the global app_dir variable set in global.R, or determine it if not available\nif (exists(\"app_dir\")) {\n # Use existing app_dir variable\n} else {\n # Check if we're in the app directory or project root\n if (dir.exists(\"R\") && dir.exists(\"www\")) {\n app_dir <- TRUE\n } else if (dir.exists(\"app\") && dir.exists(\"scripts\")) {\n app_dir <- FALSE\n } else {\n app_dir <- FALSE\n }\n}\n\n# Check if we're in a Shiny server environment\nis_shiny_server <- grepl(\"^/home/web_user/\", getwd()) || grepl(\"^/tmp/\", getwd()) || grepl(\"^/var/folders/\", getwd())\n\n# Load utility functions (data processing, file handling)\nif (app_dir) {\n source(\"R/utils.R\")\n} else {\n source(\"app/R/utils.R\")\n}\n\n# Load OCS helper functions\nif (app_dir) {\n source(\"R/ocs_helpers.R\")\n} else {\n source(\"app/R/ocs_helpers.R\")\n}\n\n# Load UI helper functions\nif (app_dir) {\n source(\"R/ui_helpers.R\")\n} else {\n source(\"app/R/ui_helpers.R\")\n}\n\n# Load custom OCS fallback (if not already loaded)\nif (!exists(\"custom_candes\")) {\n if (is_shiny_server) {\n # In Shiny server environment, look for fallback in R directory\n fallback_path <- \"R/optsel_fallback.R\"\n } else {\n # Normal environment\n if (app_dir) {\n fallback_path <- \"R/optsel_fallback.R\"\n } else {\n fallback_path <- \"scripts/optsel_fallback.R\"\n }\n }\n \n if (file.exists(fallback_path)) {\n source(fallback_path)\n \n # Verify that the fallback functions were loaded\n if (exists(\"custom_candes\") && exists(\"custom_opticont\") && exists(\"custom_noffspring\") && exists(\"custom_matings\")) {\n # Set the flag to indicate fallback is available\n custom_ocs_available <<- TRUE\n \n # Only create function aliases if optiSel is not available\n # (optiSel functions are locked bindings and cannot be overwritten)\n if (!exists(\"optisel_available\") || !optisel_available) {\n candes <<- custom_candes\n opticont <<- custom_opticont\n noffspring <<- custom_noffspring\n matings <<- custom_matings\n }\n }\n }\n} else {\n # If functions already exist, make sure the flag is set and create aliases\n if (exists(\"custom_candes\") && exists(\"custom_opticont\") && exists(\"custom_noffspring\") && exists(\"custom_matings\")) {\n custom_ocs_available <<- TRUE\n \n # Only create function aliases if optiSel is not available\n # (optiSel functions are locked bindings and cannot be overwritten)\n if (!exists(\"optisel_available\") || !optisel_available) {\n candes <<- custom_candes\n opticont <<- custom_opticont\n noffspring <<- custom_noffspring\n matings <<- custom_matings\n }\n }\n}\n\n\n","type":"text"},{"name":"R/ocs_helpers.R","content":"# OCS (Optimum Contribution Selection) Functions\n# Functions for running OCS analysis with either optiSel or custom fallback\n\n#' Run OCS analysis with unified interface\n#' @param candidates_df Candidates data frame with id, sex, and index_val columns\n#' @param kinship_matrix Kinship matrix for all individuals\n#' @param ebv_index Vector of breeding value indices\n#' @param desired_inbreeding_rate Target inbreeding rate constraint\n#' @param num_offspring Number of offspring to allocate\n#' @return List with Candidate and Mating results\nrun_ocs <- function(candidates_df, kinship_matrix, ebv_index, desired_inbreeding_rate, num_offspring) {\n # Check if OCS functions are available (either optiSel or custom fallback)\n if (!exists(\"candes\") || !exists(\"opticont\") || !exists(\"noffspring\") || !exists(\"matings\")) {\n stop(\"❌ OCS functions are not available. Neither optiSel nor custom fallback could be loaded.\")\n }\n \n # Check if we're using custom fallback\n using_fallback <- exists(\"custom_ocs_available\") && custom_ocs_available && !optisel_available\n \n phen <- data.frame(\n Indiv = candidates_df$id,\n Sex = ifelse(candidates_df$sex == \"M\", \"male\", \"female\"),\n BV = ebv_index,\n isCandidate = TRUE,\n stringsAsFactors = FALSE\n )\n candidate_ids <- candidates_df$id\n sKin <- kinship_matrix[candidate_ids, candidate_ids]\n rownames(sKin) <- candidate_ids\n colnames(sKin) <- candidate_ids\n \n cand <- candes(phen = phen, pKin = sKin)\n con <- list(ub.pKin = desired_inbreeding_rate)\n Offspring <- opticont(method = \"max.BV\", cand = cand, con = con)\n \n # Check if solution is valid (only needed for real optiSel package)\n if (exists(\"optisel_available\") && optisel_available && \"summary\" %in% names(Offspring)) {\n # Check if any constraints failed (OK = FALSE)\n failed_constraints <- Offspring$summary[Offspring$summary$OK == FALSE & !is.na(Offspring$summary$OK), ]\n if (nrow(failed_constraints) > 0) {\n constraint_names <- paste(failed_constraints$Name, collapse = \", \")\n stop(paste(\"❌ OCS optimization failed: Constraints not met:\", constraint_names,\n \"Try increasing the inbreeding rate threshold or check your kinship matrix.\"))\n }\n }\n \n # Guard against empty or invalid solution (infeasible constraint)\n # Check BEFORE extracting columns to catch all edge cases\n if (is.null(Offspring$parent) || nrow(Offspring$parent) == 0) {\n stop(paste0(\"❌ No feasible OCS solution found under the current inbreeding constraint (ub.pKin = \", \n desired_inbreeding_rate, \"). \",\n \"This typically means your candidate population is too closely related to meet this target. \",\n \"Try increasing the inbreeding rate threshold (e.g., 0.10 or higher) or reducing the number of offspring.\"))\n }\n \n Candidate <- Offspring$parent[, c(\"Indiv\", \"Sex\", \"oc\")]\n \n # Additional check: verify non-zero contributions\n if (nrow(Candidate) == 0 || all(Candidate$oc == 0)) {\n stop(paste0(\"❌ No feasible OCS solution found under the current inbreeding constraint (ub.pKin = \", \n desired_inbreeding_rate, \"). \",\n \"This typically means your candidate population is too closely related to meet this target. \",\n \"Try increasing the inbreeding rate threshold (e.g., 0.10 or higher) or reducing the number of offspring.\"))\n }\n \n # Safe to call noffspring now that Candidate has valid data\n Candidate$n <- noffspring(Candidate, num_offspring)$nOff\n Candidate <- filter(Candidate, n > 0)\n if (length(unique(Candidate$Sex)) < 2) {\n stop(\"❌ OCS resulted in only one sex being selected. Cannot generate mating pairs.\")\n }\n \n # For real optiSel package, subset kinship matrix to match selected candidates\n if (exists(\"optisel_available\") && optisel_available) {\n selected_ids <- Candidate$Indiv\n sKin_subset <- sKin[selected_ids, selected_ids]\n # optiSel matings function expects the Candidate data frame, not phenotype data\n Mating <- matings(Candidate, Kin = sKin_subset)\n \n # optiSel doesn't include kinship values in mating results, so add them manually\n if (nrow(Mating) > 0 && !\"Kin\" %in% names(Mating)) {\n kinship_values <- numeric(nrow(Mating))\n for (i in seq_len(nrow(Mating))) {\n sire <- Mating$Sire[i]\n dam <- Mating$Dam[i]\n # Use the full kinship matrix since we have original IDs\n kinship_values[i] <- sKin[sire, dam]\n }\n Mating$Kin <- kinship_values\n }\n } else {\n # Custom fallback already handles this correctly\n Mating <- matings(Candidate, Kin = sKin)\n }\n list(Candidate = Candidate, Mating = Mating)\n}\n\n#' Validate OCS inputs before running analysis\n#' @param candidates_df Candidates data frame\n#' @param kinship_matrix Kinship matrix\n#' @param ebv_index Breeding value indices\n#' @param desired_inbreeding_rate Target inbreeding rate\n#' @param num_offspring Number of offspring\n#' @return TRUE if valid, throws error if invalid\nvalidate_ocs_inputs <- function(candidates_df, kinship_matrix, ebv_index, \n desired_inbreeding_rate, num_offspring) {\n # Check candidates data\n if (is.null(candidates_df) || nrow(candidates_df) == 0) {\n stop(\"❌ No candidates provided\")\n }\n \n required_cols <- c(\"id\", \"sex\")\n missing_cols <- setdiff(required_cols, names(candidates_df))\n if (length(missing_cols) > 0) {\n stop(paste(\"❌ Missing required columns in candidates:\", paste(missing_cols, collapse = \", \")))\n }\n \n # Check sex balance\n n_males <- sum(candidates_df$sex == \"M\")\n n_females <- sum(candidates_df$sex == \"F\")\n if (n_males == 0 || n_females == 0) {\n stop(\"❌ Need both males and females for OCS analysis\")\n }\n \n # Check kinship matrix\n if (is.null(kinship_matrix) || nrow(kinship_matrix) == 0) {\n stop(\"❌ Kinship matrix is empty or invalid\")\n }\n \n # Check EBV indices\n if (is.null(ebv_index) || length(ebv_index) != nrow(candidates_df)) {\n stop(\"❌ EBV indices must match number of candidates\")\n }\n \n # Check parameters\n if (desired_inbreeding_rate <= 0 || desired_inbreeding_rate > 1) {\n stop(\"❌ Desired inbreeding rate must be between 0 and 1\")\n }\n \n if (num_offspring <= 0 || num_offspring %% 1 != 0) {\n stop(\"❌ Number of offspring must be a positive integer\")\n }\n \n TRUE\n}\n\n#' Format OCS results for display\n#' @param results OCS results list\n#' @return Formatted results for UI display\nformat_ocs_results <- function(results) {\n # Format candidate table\n candidate_table <- results$Candidate %>%\n select(Indiv, Sex, oc, n) %>%\n mutate(`Optimal Contribution (%)` = round(oc * 100, 1)) %>%\n rename(`ID` = Indiv, `# of offspring` = n) %>%\n select(ID, Sex, `Optimal Contribution (%)`, `# of offspring`)\n \n # Format mating table - handle different column naming schemes\n mating_df <- results$Mating\n \n # Check and standardize column names (optiSel vs custom implementation)\n if (\"Sire\" %in% names(mating_df)) {\n mating_df <- mating_df %>% rename(Male = Sire)\n }\n if (\"Dam\" %in% names(mating_df)) {\n mating_df <- mating_df %>% rename(Female = Dam)\n }\n if (\"Kin\" %in% names(mating_df)) {\n mating_df <- mating_df %>% rename(Kinship = Kin)\n } else if (\"kinship\" %in% names(mating_df)) {\n mating_df <- mating_df %>% rename(Kinship = kinship)\n } else if (\"coeff\" %in% names(mating_df)) {\n mating_df <- mating_df %>% rename(Kinship = coeff)\n } else {\n # If no kinship column found, add a placeholder\n mating_df$Kinship <- NA\n }\n \n mating_table <- mating_df %>% mutate_all(as.character)\n \n # Calculate summary statistics - handle different kinship column names\n kinship_values <- NA\n if (\"Kin\" %in% names(results$Mating)) {\n kinship_values <- results$Mating$Kin\n } else if (\"kinship\" %in% names(results$Mating)) {\n kinship_values <- results$Mating$kinship\n } else if (\"coeff\" %in% names(results$Mating)) {\n kinship_values <- results$Mating$coeff\n } else if (\"Kinship\" %in% names(mating_df)) {\n kinship_values <- mating_df$Kinship\n }\n \n summary_stats <- list(\n n_candidates = nrow(results$Candidate),\n n_males = sum(results$Candidate$Sex == \"male\"),\n n_females = sum(results$Candidate$Sex == \"female\"),\n n_matings = nrow(results$Mating),\n total_offspring = sum(results$Candidate$n),\n mean_kinship = if (all(is.na(kinship_values))) NA else mean(kinship_values, na.rm = TRUE),\n mean_contribution = mean(results$Candidate$oc)\n )\n \n list(\n candidate_table = candidate_table,\n mating_table = mating_table,\n summary_stats = summary_stats\n )\n}\n\n#' Create Excel workbook with OCS results\n#' @param results OCS results list\n#' @param params OCS parameters used\n#' @return Workbook object ready for saving\ncreate_ocs_workbook <- function(results, params = NULL) {\n wb <- openxlsx::createWorkbook()\n \n # Add README sheet\n openxlsx::addWorksheet(wb, \"README\")\n readme_text <- c(\n \"Optimum Contribution Selection Results\",\n \"\",\n paste(\"Generated:\", Sys.Date()),\n \"\",\n \"Parameters used:\",\n if (!is.null(params)) {\n c(\n paste(\"- Target inbreeding rate:\", params$inbreeding_rate),\n paste(\"- Number of offspring:\", params$num_offspring),\n paste(\"- Implementation:\", if (exists(\"custom_ocs_available\") && custom_ocs_available) \"Custom fallback\" else \"optiSel\")\n )\n } else {\n \"Parameters not recorded\"\n },\n \"\",\n \"Sheets included:\",\n \"1. Optimal Contributions - Selected candidates and their contributions\",\n \"2. Mating Plan - Optimal mate pairings to minimize inbreeding\",\n \"\",\n \"The patterns in your genetic data have been thoroughly analyzed.\"\n )\n openxlsx::writeData(wb, \"README\", readme_text)\n \n # Add optimal contributions\n openxlsx::addWorksheet(wb, \"Optimal Contributions\")\n contrib_df <- results$Candidate %>%\n select(Indiv, Sex, oc, n) %>%\n mutate(`Contribution (%)` = round(oc * 100, 2)) %>%\n rename(`ID` = Indiv, `# Offspring` = n)\n openxlsx::writeData(wb, \"Optimal Contributions\", contrib_df)\n \n # Add mating plan\n openxlsx::addWorksheet(wb, \"Mating Plan\")\n \n # Handle different column naming schemes for mating results\n mating_export <- results$Mating\n \n # Standardize kinship column name\n if (\"Kin\" %in% names(mating_export)) {\n mating_export <- mating_export %>% mutate(Kinship = round(Kin, 4))\n } else if (\"kinship\" %in% names(mating_export)) {\n mating_export <- mating_export %>% mutate(Kinship = round(kinship, 4))\n } else if (\"coeff\" %in% names(mating_export)) {\n mating_export <- mating_export %>% mutate(Kinship = round(coeff, 4))\n } else {\n mating_export$Kinship <- NA\n }\n \n # Select and rename columns based on what's available\n if (all(c(\"Sire\", \"Dam\") %in% names(mating_export))) {\n mating_df <- mating_export %>%\n select(Sire, Dam, Kinship, n) %>%\n rename(`# Matings` = n)\n } else if (all(c(\"Male\", \"Female\") %in% names(mating_export))) {\n mating_df <- mating_export %>%\n select(Male, Female, Kinship, n) %>%\n rename(`# Matings` = n)\n } else {\n # Fallback if column names are different\n mating_df <- mating_export %>%\n rename(`# Matings` = n)\n }\n openxlsx::writeData(wb, \"Mating Plan\", mating_df)\n \n wb\n}\n","type":"text"},{"name":"R/optsel_fallback.R","content":"# Custom OCS Implementation Functions\n# Note: All required packages are loaded in global.R\n\n#### Custom OCS Implementation Functions ####\n\n#' Fallback optimization when quadprog is not available\n#' Uses a simple gradient-based approach to find optimal contributions\nfallback_optimization <- function(bv_vec, K, male_idx, female_idx, target_kinship, lambda) {\n n <- length(bv_vec)\n \n # Initialize with equal contributions\n oc <- rep(1/n, n)\n \n # Ensure sex balance constraints\n oc[male_idx] <- oc[male_idx] * 0.5 / sum(oc[male_idx])\n oc[female_idx] <- oc[female_idx] * 0.5 / sum(oc[female_idx])\n \n # Simple gradient descent optimization\n max_iter <- 1000\n learning_rate <- 0.01\n tolerance <- 1e-6\n \n for (iter in 1:max_iter) {\n # Calculate gradient: -BV + lambda * 2 * K * oc\n grad <- -bv_vec + 2 * lambda * K %*% oc\n \n # Project gradient to maintain constraints\n # Remove component that would violate sex balance\n male_grad_mean <- mean(grad[male_idx])\n female_grad_mean <- mean(grad[female_idx])\n \n grad[male_idx] <- grad[male_idx] - male_grad_mean\n grad[female_idx] <- grad[female_idx] - female_grad_mean\n \n # Update contributions\n oc_new <- oc - learning_rate * grad\n \n # Ensure non-negativity\n oc_new <- pmax(oc_new, 0)\n \n # Re-normalize to maintain sex balance\n if (sum(oc_new[male_idx]) > 0) {\n oc_new[male_idx] <- oc_new[male_idx] * 0.5 / sum(oc_new[male_idx])\n }\n if (sum(oc_new[female_idx]) > 0) {\n oc_new[female_idx] <- oc_new[female_idx] * 0.5 / sum(oc_new[female_idx])\n }\n \n # Check convergence\n if (max(abs(oc_new - oc)) < tolerance) {\n break\n }\n \n oc <- oc_new\n }\n \n return(oc)\n}\n\n#' Create candidate object similar to optiSel::candes\n#' This structures data for optimization algorithms\ncustom_candes <- function(phen, pKin, quiet = FALSE) {\n # Validate inputs with Shadow Broker precision\n if(!all(c(\"Indiv\", \"Sex\", \"BV\", \"isCandidate\") %in% names(phen))) {\n stop(\"❌ phen must contain columns: Indiv, Sex, BV, isCandidate\")\n }\n \n # Extract candidates only\n candidates <- phen %>% filter(isCandidate == TRUE)\n \n # Calculate current population parameters\n mean_bv <- mean(candidates$BV, na.rm = TRUE)\n var_bv <- var(candidates$BV, na.rm = TRUE)\n \n # Structure the data as the Shadow Broker would organize her archives\n cand_obj <- list(\n phen = phen,\n candidates = candidates,\n n_candidates = nrow(candidates),\n n_males = sum(candidates$Sex == \"male\"),\n n_females = sum(candidates$Sex == \"female\"),\n kinship = pKin,\n current = data.frame(\n Name = \"BV\",\n Type = \"trait\",\n Val = mean_bv,\n Var = var_bv\n )\n )\n \n if(!quiet) {\n\n }\n \n class(cand_obj) <- \"custom_candes\"\n return(cand_obj)\n}\n\n#' Custom implementation of optiSel::opticont\n#' Uses quadratic programming to solve OCS problem\ncustom_opticont <- function(method, cand, con, quiet = FALSE) {\n # Extract method components (e.g., \"max.BV\" -> maximize BV)\n optimize_direction <- substr(method, 1, 3)\n target_trait <- substr(method, 5, nchar(method))\n \n if(target_trait != \"BV\") {\n stop(\"❌ Currently only BV optimization is supported\")\n }\n \n candidates <- cand$candidates\n n <- nrow(candidates)\n \n # Separate males and females for proper contribution allocation\n male_idx <- which(candidates$Sex == \"male\")\n female_idx <- which(candidates$Sex == \"female\")\n n_males <- length(male_idx)\n n_females <- length(female_idx)\n \n # Extract kinship matrix for candidates\n candidate_ids <- candidates$Indiv\n K <- cand$kinship[candidate_ids, candidate_ids]\n \n # Set up optimization problem\n # We need to maximize BV while constraining average kinship\n # Decision variables: contributions (c) for each candidate\n \n # Objective: maximize sum(c_i * BV_i)\n # For quadprog, we minimize -sum(c_i * BV_i)\n bv_vec <- candidates$BV\n \n # Quadratic term: minimize c'Kc (average kinship in next generation)\n # Linear term: -2 * BV' (to maximize BV)\n \n # Build constraint matrix for quadprog\n # Constraints:\n # 1. sum(c_males) = 0.5\n # 2. sum(c_females) = 0.5\n # 3. c_i >= 0 for all i\n # 4. Average kinship <= threshold\n \n # For quadprog: min(-d'b + 1/2 b'Db) s.t. A'b >= b0\n \n # Scale the problem for numerical stability\n lambda <- 100 # Weight for kinship penalty\n \n if(!is.null(con$ub.pKin)) {\n target_kinship <- con$ub.pKin\n } else {\n target_kinship <- mean(K[upper.tri(K)]) # Current mean kinship\n }\n \n # Use penalty method for constrained optimization\n # Minimize: -BV + lambda * Kinship\n Dmat <- 2 * lambda * K\n dvec <- bv_vec\n \n # Constraint matrix\n # Each row of Amat represents a constraint\n Amat <- matrix(0, n, n + 2)\n \n # Sum of male contributions = 0.5\n Amat[male_idx, 1] <- 1\n # Sum of female contributions = 0.5 \n Amat[female_idx, 2] <- 1\n # Non-negativity constraints\n diag(Amat[, 3:(n+2)]) <- 1\n \n # Right-hand side\n bvec <- c(0.5, 0.5, rep(0, n))\n \n # Try to use quadprog if available, otherwise use fallback optimization\n tryCatch({\n if (requireNamespace(\"quadprog\", quietly = TRUE)) {\n # Use quadprog if available\n # Make Dmat positive definite if needed\n eigen_decomp <- eigen(Dmat)\n if(any(eigen_decomp$values < 1e-8)) {\n Dmat <- Dmat + diag(1e-6, n)\n }\n \n sol <- quadprog::solve.QP(Dmat, dvec, Amat, bvec, meq = 2)\n oc <- sol$solution\n } else {\n # Fallback: Simple gradient-based optimization\n oc <- fallback_optimization(bv_vec, K, male_idx, female_idx, target_kinship, lambda)\n }\n \n # Normalize to ensure sum = 1\n oc <- oc / sum(oc)\n \n # Create output similar to optiSel\n parent_df <- candidates %>%\n mutate(oc = oc) %>%\n select(Indiv, Sex, oc)\n \n # Calculate expected kinship in next generation\n mean_kinship_next <- as.numeric(t(oc) %*% K %*% oc)\n \n if(!quiet) {\n \n }\n \n result <- list(\n parent = parent_df,\n mean.kin = mean_kinship_next,\n mean.bv = sum(oc * bv_vec),\n info = \"Optimization successful\"\n )\n \n class(result) <- \"custom_opticont\"\n return(result)\n \n }, error = function(e) {\n stop(paste(\"❌ Optimization failed:\", e$message))\n })\n}\n\n#' Calculate number of offspring from optimum contributions\n#' Replicates optiSel::noffspring functionality\ncustom_noffspring <- function(Candidate, N) {\n # Validate input\n if(!all(c(\"Indiv\", \"Sex\", \"oc\") %in% names(Candidate))) {\n stop(\"❌ Candidate must contain columns: Indiv, Sex, oc\")\n }\n \n # Calculate raw offspring numbers\n # Each individual contributes to N * oc offspring\n raw_offspring <- N * Candidate$oc\n \n # Round while maintaining sum constraints\n males <- Candidate$Sex == \"male\"\n females <- Candidate$Sex == \"female\"\n \n nOff <- numeric(nrow(Candidate))\n \n # Smart rounding to maintain exact totals\n if(sum(males) > 0) {\n male_raw <- raw_offspring[males]\n male_int <- floor(male_raw)\n male_frac <- male_raw - male_int\n \n # Add extra offspring to males with highest fractional parts\n n_extra_males <- N/2 - sum(male_int)\n if(n_extra_males > 0) {\n top_males <- order(male_frac, decreasing = TRUE)[1:min(n_extra_males, length(male_frac))]\n male_int[top_males] <- male_int[top_males] + 1\n }\n nOff[males] <- male_int\n }\n \n if(sum(females) > 0) {\n female_raw <- raw_offspring[females]\n female_int <- floor(female_raw)\n female_frac <- female_raw - female_int\n \n # Add extra offspring to females with highest fractional parts\n n_extra_females <- N/2 - sum(female_int)\n if(n_extra_females > 0) {\n top_females <- order(female_frac, decreasing = TRUE)[1:min(n_extra_females, length(female_frac))]\n female_int[top_females] <- female_int[top_females] + 1\n }\n nOff[females] <- female_int\n }\n \n result <- data.frame(\n Indiv = Candidate$Indiv,\n nOff = nOff\n )\n \n return(result)\n}\n\n#' Mate allocation algorithm\n#' Replicates optiSel::matings functionality\ncustom_matings <- function(Candidate, Kin, quiet = FALSE) {\n # Extract candidates with offspring\n active_candidates <- Candidate %>% filter(n > 0)\n \n males <- active_candidates %>% filter(Sex == \"male\")\n females <- active_candidates %>% filter(Sex == \"female\")\n \n if(nrow(males) == 0 || nrow(females) == 0) {\n stop(\"❌ Need at least one male and one female with n > 0\")\n }\n \n # Get kinship submatrix for active candidates\n male_ids <- males$Indiv\n female_ids <- females$Indiv\n \n K_mf <- Kin[male_ids, female_ids, drop = FALSE]\n \n # Initialize mating list\n matings_list <- list()\n \n # Track remaining matings needed\n males_remaining <- males$n\n females_remaining <- females$n\n \n # Minimum kinship mating algorithm\n # Iteratively select minimum kinship pairs\n iter <- 0\n total_matings <- sum(males$n)\n \n while(sum(males_remaining) > 0 && sum(females_remaining) > 0) {\n iter <- iter + 1\n \n # Find available pairs (those with remaining matings)\n avail_m <- which(males_remaining > 0)\n avail_f <- which(females_remaining > 0)\n \n if(length(avail_m) == 0 || length(avail_f) == 0) break\n \n # Get kinships for available pairs\n K_avail <- K_mf[avail_m, avail_f, drop = FALSE]\n \n # Add small penalty for repeated matings to encourage diversity\n # This mimics the alpha parameter in optiSel\n penalty_matrix <- matrix(0, length(avail_m), length(avail_f))\n for(i in seq_along(matings_list)) {\n m_idx <- which(male_ids[avail_m] == matings_list[[i]]$Sire)\n f_idx <- which(female_ids[avail_f] == matings_list[[i]]$Dam)\n if(length(m_idx) > 0 && length(f_idx) > 0) {\n penalty_matrix[m_idx, f_idx] <- penalty_matrix[m_idx, f_idx] + 0.001\n }\n }\n \n K_adjusted <- K_avail + penalty_matrix\n \n # Find minimum kinship pair\n min_idx <- which.min(K_adjusted)\n min_coords <- arrayInd(min_idx, dim(K_adjusted))\n \n sel_male_idx <- avail_m[min_coords[1]]\n sel_female_idx <- avail_f[min_coords[2]]\n \n # Record mating\n matings_list[[iter]] <- data.frame(\n Sire = male_ids[sel_male_idx],\n Dam = female_ids[sel_female_idx],\n Kin = K_mf[sel_male_idx, sel_female_idx],\n n = 1,\n stringsAsFactors = FALSE\n )\n \n # Update remaining counts\n males_remaining[sel_male_idx] <- males_remaining[sel_male_idx] - 1\n females_remaining[sel_female_idx] <- females_remaining[sel_female_idx] - 1\n }\n \n # Combine matings (aggregate multiple matings of same pair)\n matings_df <- bind_rows(matings_list) %>%\n group_by(Sire, Dam) %>%\n summarise(\n n = sum(n),\n Kin = first(Kin),\n .groups = \"drop\"\n ) %>%\n arrange(Kin)\n \n # Calculate mean inbreeding coefficient of offspring\n mean_inbreeding <- sum(matings_df$Kin * matings_df$n) / sum(matings_df$n)\n \n if(!quiet) {\n\n }\n \n # Add attributes similar to optiSel\n attr(matings_df, \"objval\") <- mean_inbreeding\n attr(matings_df, \"info\") <- \"Minimum kinship mating\"\n \n return(matings_df)\n}\n\n#' Main OCS function combining all steps\nrun_custom_ocs <- function(candidates_df, kinship_matrix, ebv_index, \n desired_inbreeding_rate, num_offspring) {\n \n # Prepare phenotype data in required format\n phen <- data.frame(\n Indiv = candidates_df$id,\n Sex = ifelse(candidates_df$sex == \"M\", \"male\", \"female\"),\n BV = ebv_index,\n isCandidate = TRUE,\n stringsAsFactors = FALSE\n )\n \n # Ensure kinship matrix has correct dimensions and names\n candidate_ids <- candidates_df$id\n sKin <- kinship_matrix[candidate_ids, candidate_ids]\n rownames(sKin) <- candidate_ids\n colnames(sKin) <- candidate_ids\n \n # Step 1: Create candidate object\n cand <- custom_candes(phen = phen, pKin = sKin)\n \n # Step 2: Run optimization\n con <- list(ub.pKin = desired_inbreeding_rate)\n offspring_result <- custom_opticont(method = \"max.BV\", cand = cand, con = con)\n \n # Step 3: Calculate number of offspring\n Candidate <- offspring_result$parent\n offspring_counts <- custom_noffspring(Candidate, num_offspring)\n Candidate$n <- offspring_counts$nOff\n \n # Filter candidates with offspring\n Candidate <- filter(Candidate, n > 0)\n \n # Validate we have both sexes\n if(length(unique(Candidate$Sex)) < 2) {\n stop(\"❌ OCS resulted in only one sex being selected. Adjust parameters.\")\n }\n \n # Step 4: Mate allocation\n Mating <- custom_matings(Candidate, Kin = sKin)\n \n list(Candidate = Candidate, Mating = Mating)\n}\n","type":"text"},{"name":"R/ui_helpers.R","content":"# UI Helper Functions\n# Functions for UI elements, reactive values, and display formatting\n\n#' Create dynamic trait input UI\n#' @param n Number of traits\n#' @return UI elements for trait inputs\ncreate_trait_inputs <- function(n) {\n tagList(\n lapply(seq_len(n), function(i) {\n wellPanel(\n fileInput(paste0(\"trait_file_\", i), paste(\"EBVs for trait\", i)),\n numericInput(paste0(\"trait_weight_\", i), paste(\"Relative weight for Trait\", i),\n value = round(1 / n, 3), min = 0, max = 1, step = 0.01)\n )\n })\n )\n}\n\n#' Create OCS trait input UI\n#' @param n Number of traits\n#' @return UI elements for OCS trait inputs\ncreate_ocs_trait_inputs <- function(n) {\n lapply(1:n, function(i) {\n fluidRow(\n column(6, fileInput(paste0(\"ocs_trait_file_\", i), paste(\"Upload EBV File\", i))),\n column(6, numericInput(paste0(\"ocs_trait_weight_\", i), paste(\"Weight for Trait\", i),\n value = round(1 / n, 2), min = 0, max = 1, step = 0.01))\n )\n })\n}\n\n#' Generate package status text\n#' @return Formatted status text for display\ngenerate_package_status <- function() {\n status_text <- \"\"\n \n if (exists(\"is_webr\") && is_webr) {\n status_text <- paste(status_text, \"🌐 WebR environment detected\\n\", sep = \"\")\n }\n \n if (exists(\"optisel_available\") && optisel_available) {\n status_text <- paste(status_text, \"✅ optiSel package is available - OCS functionality enabled\", sep = \"\")\n } else if (exists(\"custom_ocs_available\") && custom_ocs_available) {\n status_text <- paste(status_text, \"✅ Custom OCS fallback is available - OCS functionality enabled\", sep = \"\")\n if (exists(\"is_webr\") && is_webr) {\n status_text <- paste(status_text, \"\\n📦 Using custom implementation (optiSel not available in WebR)\", sep = \"\")\n } else {\n status_text <- paste(status_text, \"\\n📦 Using custom implementation (optiSel not installed)\", sep = \"\")\n }\n } else {\n status_text <- paste(status_text, \"❌ OCS functionality not available - Neither optiSel nor fallback could be loaded\", sep = \"\")\n }\n \n status_text\n}\n\n#' Check if WebR is detected\n#' @return TRUE if WebR environment detected\nis_webr_environment <- function() {\n exists(\"is_webr\") && is_webr\n}\n\n#' Format kinship and EBV results for display\n#' @param kinship_results Kinship analysis results\n#' @param ebv_results EBV analysis results\n#' @param thresh Kinship threshold\n#' @return Formatted results for display\nformat_kinship_ebv_results <- function(kinship_results, ebv_results, thresh) {\n # Combine kinship and EBV results\n if (!is.null(kinship_results) && !is.null(ebv_results)) {\n full_results <- left_join(kinship_results$results, ebv_results$results, \n by = c(\"Female\", \"Male\"))\n } else if (!is.null(ebv_results)) {\n full_results <- relocate(mutate(ebv_results$results, Kinship = NA), Kinship, .after = EBV)\n } else {\n return(NULL)\n }\n \n # Filter results for table display\n filt_results_table <- full_results %>%\n filter(EBV > 0, (is.na(Kinship) | Kinship < thresh))\n \n # Filter results for matrix display (mask invalid crosses as NA)\n filt_results_matrix <- full_results %>%\n mutate(EBV = ifelse(EBV <= 0 | (!is.na(Kinship) & Kinship >= thresh), NA, EBV))\n \n list(\n table_results = filt_results_table,\n matrix_results = filt_results_matrix,\n full_results = full_results\n )\n}\n\n#' Create Excel workbook for kinship and EBV results\n#' @param table_results Filtered table results\n#' @param matrix_results Matrix results with masked values\n#' @param full_results Complete results\n#' @return Workbook object ready for saving\ncreate_kinship_ebv_workbook <- function(table_results, matrix_results, full_results) {\n wb <- openxlsx::createWorkbook()\n \n # Add README worksheet\n openxlsx::addWorksheet(wb, \"README\")\n readme_text <- c(\n \"This Excel file contains two data sheets generated by the app:\",\n \"\",\n \"1. Filtered Results - Table:\",\n \" - Only crosses with positive EBVs and kinship below the selected threshold are included.\",\n \" - Crosses failing these criteria are completely removed from this table.\",\n \"\",\n \"2. EBV Matrix - Masked:\",\n \" - Shows all possible male-female crosses with EBV values.\",\n \" - EBVs for crosses with negative values or kinship above the threshold are blank (hidden) in the matrix.\",\n \"\",\n \"This distinction allows detailed matrix views while keeping the filtered table clean for analysis.\"\n )\n openxlsx::writeData(wb, \"README\", readme_text)\n \n # Add filtered results\n openxlsx::addWorksheet(wb, \"Filtered Results\")\n openxlsx::writeData(wb, \"Filtered Results\", table_results, rowNames = TRUE)\n \n # Add EBV matrix\n openxlsx::addWorksheet(wb, \"EBV Matrix\")\n \n # Convert to matrix format for Excel\n m_ids <- unique(full_results$Male)\n f_ids <- unique(full_results$Female)\n mat_for_excel <- matrix(NA_real_, nrow = length(m_ids), ncol = length(f_ids),\n dimnames = list(m_ids, f_ids))\n \n for (i in seq_len(nrow(matrix_results))) {\n m <- matrix_results$Male[i]\n f <- matrix_results$Female[i]\n val <- matrix_results$EBV[i]\n mat_for_excel[m, f] <- val\n }\n \n openxlsx::writeData(wb, \"EBV Matrix\", mat_for_excel, rowNames = TRUE)\n \n wb\n}\n\n#' Validate file uploads\n#' @param file Uploaded file object\n#' @param required_cols Required column names\n#' @param file_type Type of file for error messages\n#' @return TRUE if valid, throws error if invalid\nvalidate_file_upload <- function(file, required_cols = NULL, file_type = \"file\") {\n if (is.null(file)) {\n stop(paste(\"❌ No\", file_type, \"uploaded\"))\n }\n \n if (file$size == 0) {\n stop(paste(\"❌\", file_type, \"file is empty\"))\n }\n \n # Try to read the file\n tryCatch({\n df <- readr::read_table(file$datapath)\n if (nrow(df) == 0) {\n stop(paste(\"❌\", file_type, \"file contains no data\"))\n }\n \n # Check required columns if specified\n if (!is.null(required_cols)) {\n missing_cols <- setdiff(required_cols, names(df))\n if (length(missing_cols) > 0) {\n stop(paste(\"❌\", file_type, \"missing required columns:\", paste(missing_cols, collapse = \", \")))\n }\n }\n \n TRUE\n }, error = function(e) {\n stop(paste(\"❌ Error reading\", file_type, \":\", e$message))\n })\n}\n\n#' Generate user feedback messages\n#' @param success Whether operation was successful\n#' @param message Success or error message\n#' @param operation Type of operation performed\n#' @return Formatted feedback message\ngenerate_feedback <- function(success, message, operation) {\n if (success) {\n paste0(\"✅ \", operation, \" completed successfully: \", message)\n } else {\n paste0(\"❌ \", operation, \" failed: \", message)\n }\n}\n","type":"text"},{"name":"R/utils.R","content":"# Data Processing Functions\n# Functions for reading, cleaning, and processing input data\n\n# Fallback functions for when kinship2 is not available\nfallback_fixParents <- function(id, sire, dam, sex, missid = \"0\") {\n # Simple fallback - just return the data as is\n data.frame(id = id, dadid = sire, momid = dam, sex = sex, stringsAsFactors = FALSE)\n}\n\nfallback_pedigree <- function(id, dadid, momid, sex, missid = \"0\") {\n # Simple fallback - return a list with the pedigree data\n list(id = id, dadid = dadid, momid = momid, sex = sex)\n}\n\nfallback_kinship <- function(ped) {\n # Simple fallback - return identity matrix\n # This is a very basic approximation\n n <- length(ped$id)\n matrix(0.5, n, n, dimnames = list(ped$id, ped$id))\n}\n\n#' Read and process candidate files\n#' @param file Uploaded file object\n#' @return List with candidates data frame and male/female ID vectors\nread_candidates <- function(file) {\n df <- readr::read_table(file$datapath)\n list(\n candidates = df,\n males = filter(df, sex == \"M\") %>% pull(id),\n females = filter(df, sex == \"F\") %>% pull(id)\n )\n}\n\n#' Clean and validate pedigree data\n#' @param ped Raw pedigree data frame\n#' @return Cleaned pedigree object for kinship calculation\nclean_pedigree <- function(ped) {\n final_ped <- ped %>%\n mutate(across(c(id, sire, dam), as.factor)) %>%\n mutate(sex = case_when(id %in% sire ~ 0, id %in% dam ~ 1, TRUE ~ 2)) %>%\n {\n # Fix messy parents (same logic as original)\n messy_parents <- setdiff(intersect(.$sire, .$dam), 0) %>% as.data.frame() %>% rename(id = 1)\n parents_fixed <- .\n parents_fixed$sire[parents_fixed$sire %in% messy_parents$id] <- 0\n parents_fixed$dam[parents_fixed$dam %in% messy_parents$id] <- 0\n parents_fixed\n } %>%\n {\n # Remove duplicates (same as original)\n doubled <- table(.$id)[table(.$id) > 1] %>% names()\n .[!.$id %in% doubled, ]\n } %>%\n {\n # Remove circular dependencies (same as original)\n circdep <- .\n circdep$id <- as.character(circdep$id)\n circdep$sire <- as.character(circdep$sire)\n circdep$dam <- as.character(circdep$dam)\n circdep <- circdep[circdep$id == circdep$sire | circdep$id == circdep$dam, ]\n .[!.$id %in% circdep$id, ]\n } %>%\n with(., if (exists(\"kinship2_available\") && kinship2_available) {\n kinship2::fixParents(id, sire, dam, sex, missid = \"0\")\n } else {\n fallback_fixParents(id, sire, dam, sex, missid = \"0\")\n }) %>%\n with(., if (exists(\"kinship2_available\") && kinship2_available) {\n kinship2::pedigree(id, dadid, momid, sex, missid = \"0\")\n } else {\n fallback_pedigree(id, dadid, momid, sex, missid = \"0\")\n })\n \n return(final_ped)\n}\n\n#' Compute kinship matrix and statistics\n#' @param ped Pedigree object\n#' @param males Vector of male IDs\n#' @param females Vector of female IDs\n#' @return List with kinship results, quartiles, and matrix\ncompute_kinship_matrix <- function(ped, males, females) {\n kinship_matrix <- if (exists(\"kinship2_available\") && kinship2_available) {\n kinship2::kinship(ped)\n } else {\n fallback_kinship(ped)\n }\n kin_mat_sel <- kinship_matrix[males, females]\n \n kin_quads <- tibble(\n Data = \"Kinship\",\n Q25 = quantile(kin_mat_sel, 0.25),\n Q50 = quantile(kin_mat_sel, 0.50),\n Q75 = quantile(kin_mat_sel, 0.75),\n Q100 = quantile(kin_mat_sel, 1.00)\n ) %>% column_to_rownames(\"Data\")\n \n kinship_results <- as_tibble(kin_mat_sel, rownames = \"Male\") %>%\n pivot_longer(-Male, names_to = \"Female\", values_to = \"Kinship\")\n \n list(results = kinship_results, quads = kin_quads, matrix = kin_mat_sel)\n}\n\n#' Process EBV files and combine with weights\n#' @param trait_counter Number of traits\n#' @param input Shiny input object\n#' @param prefix Prefix for input names (for OCS-specific inputs)\n#' @return List with combined EBVs, weights, and total\nprocess_ebvs <- function(trait_counter, input, prefix = \"\") {\n ebv_inputs <- list()\n for (i in seq_len(trait_counter)) {\n file_i <- input[[paste0(prefix, \"trait_file_\", i)]]\n weight_i <- input[[paste0(prefix, \"trait_weight_\", i)]]\n if (!is.null(file_i) && !is.null(weight_i)) {\n df_raw <- readr::read_table(file_i$datapath)\n if (!\"ID\" %in% names(df_raw)) names(df_raw)[1] <- \"ID\"\n if (!\"EBV\" %in% names(df_raw)) names(df_raw)[2] <- \"EBV\"\n # Ensure EBV column is numeric\n df_raw$EBV <- as.numeric(df_raw$EBV)\n ebv_inputs <- append(ebv_inputs, list(select(df_raw, ID, EBV), weight_i))\n }\n }\n \n if (length(ebv_inputs) >= 2 && length(ebv_inputs) %% 2 == 0) {\n rel_weights <- unlist(ebv_inputs[seq(2, length(ebv_inputs), by = 2)])\n weight_total <- sum(rel_weights)\n ebv_dfs <- ebv_inputs[seq(1, length(ebv_inputs), by = 2)]\n ebv_dfs <- purrr::imap(ebv_dfs, ~ rename(.x, !!paste0(\"EBV.\", .y) := EBV))\n \n joint_ebvs <- purrr::reduce(ebv_dfs, full_join, by = \"ID\") %>%\n mutate(across(starts_with(\"EBV.\"), ~ replace_na(.x, 0)))\n \n list(joint_ebvs = joint_ebvs, rel_weights = rel_weights, weight_total = weight_total)\n } else {\n NULL\n }\n}\n\n#' Calculate breeding value index from multiple traits\n#' @param joint_ebvs Combined EBV data frame\n#' @param rel_weights Vector of trait weights\n#' @return Data frame with calculated index values\ncalculate_index <- function(joint_ebvs, rel_weights) {\n ebv_cols <- grep(\"^EBV\\\\.\", names(joint_ebvs))\n # Ensure EBV columns are numeric\n joint_ebvs[ebv_cols] <- lapply(joint_ebvs[ebv_cols], as.numeric)\n joint_ebvs$index_val <- as.vector(as.matrix(joint_ebvs[ebv_cols]) %*% rel_weights)\n joint_ebvs\n}\n","type":"text"},{"name":"README.md","content":"# AlloMate - Genetic Breeding Optimization App\n\n## 🧬 Overview\n\nAlloMate is a Shiny web application for genetic breeding optimization using Optimum Contribution Selection (OCS). The app helps breeders make informed decisions about mate selection and breeding strategies by analyzing kinship relationships and breeding values.\n\n## 🚀 Features\n\n### Core Functionality\n- **Kinship Analysis**: Calculate and visualize kinship relationships between potential mates\n- **EBV Processing**: Combine multiple breeding value traits with user-defined weights\n- **Optimum Contribution Selection**: Optimize breeding contributions while controlling inbreeding\n- **Mating Plan Generation**: Create optimal mating pairs to minimize inbreeding\n- **Excel Export**: Download comprehensive results in Excel format\n\n### Technical Features\n- **Dual Implementation**: Works with both optiSel package and custom fallback\n- **WebR Compatible**: Runs in web browsers without server installation\n- **Modular Design**: Clean, organized codebase for easy maintenance\n- **Robust Error Handling**: Comprehensive validation and user feedback\n\n## 📁 Project Structure\n\n```\nAlloMate/\n├── app/ # Shiny application\n│ ├── global.R # Shared code (packages, global variables)\n│ ├── ui.R # User interface code\n│ ├── server.R # Server logic and reactivity\n│ ├── R/ # Helper functions and modules\n│ │ ├── utils.R # Data processing and utility functions\n│ │ ├── ocs_helpers.R # OCS analysis functions\n│ │ ├── ui_helpers.R # UI helper functions\n│ │ └── load_functions.R # Function loader\n│ └── www/ # Static resources\n│ ├── allomate.png\n│ └── logos.png\n├── scripts/ # Custom implementations and utilities\n│ ├── optsel_fallback.R # Custom OCS fallback implementation\n│ ├── validate_ocs_logic.R # OCS logic validation\n│ ├── compare_ocs_results.R # Results comparison\n│ └── ... # Other utility scripts\n├── data/ # Sample data files\n│ ├── candidates_2024_10_29.txt\n│ ├── pedigree_with_family.txt\n│ ├── weight_ebvs_for_app_with_family.txt\n│ └── length_ebvs_for_app_with_family.txt\n└── README.md\n```\n\n## 🛠️ Installation\n\n### Prerequisites\n- R (version 4.0 or higher)\n- Required R packages (automatically installed):\n - shiny, readr, dplyr, tidyr, purrr, kinship2, DT, tibble, openxlsx, quadprog\n\n### Local Installation\n1. Clone or download the repository\n2. Open R or RStudio\n3. Set working directory to the AlloMate folder\n4. Run the app:\n ```r\n shiny::runApp(\"app\")\n ```\n\n### Package Installation\nThe app automatically handles package installation when it starts up:\n\n#### How it Works\n1. **global.R** runs once when the Shiny app starts\n2. It checks for all required packages and installs missing ones\n3. For `optiSel` specifically, it tries CRAN first, then Bioconductor if needed\n4. Installation status is displayed in the app interface\n\n#### Troubleshooting Package Installation\n\n**If optiSel Installation Fails:**\n\n**Option 1: Manual Installation (Recommended)**\n```r\n# Try CRAN first\ninstall.packages(\"optiSel\")\n\n# If that fails, try Bioconductor\nif (!require(BiocManager, quietly = TRUE)) {\n install.packages(\"BiocManager\")\n}\nBiocManager::install(\"optiSel\")\n```\n\n**Option 2: Check System Requirements**\n- Ensure you have write permissions to your R library directory\n- Check that you have sufficient disk space\n- Verify your internet connection\n\n**Option 3: Update R and Packages**\n```r\n# Update R to latest version\n# Then update all packages\nupdate.packages(ask = FALSE)\n```\n\n### WebR Deployment\nThe app is compatible with WebR environments and will automatically use the custom OCS fallback when optiSel is not available.\n\n## 📊 Usage\n\n### 1. Upload Data\n- **Candidates File**: Upload a text file with columns `id` and `sex` (M/F)\n- **Pedigree File**: Upload a text file with columns `id`, `sire`, and `dam`\n- **EBV Files**: Upload breeding value files with columns `ID` and `EBV`\n\n### 2. Configure Analysis\n- **Traits**: Add multiple EBV traits with relative weights (must sum to 1)\n- **Kinship Threshold**: Set maximum allowed kinship between mates\n- **OCS Parameters**: Set desired inbreeding rate and number of offspring\n\n### 3. View Results\n- **Kinship Matrix**: Visualize kinship relationships with color coding\n- **EBV Matrix**: View combined breeding values for potential crosses\n- **OCS Results**: See optimal candidate contributions and mating plan\n\n### 4. Export Results\n- Download comprehensive Excel files with all results\n- Includes README sheets explaining the analysis\n\n## 🔧 Technical Details\n\n### OCS Implementation\nThe app uses a dual implementation approach:\n\n#### Local Environment (optiSel Available)\n1. App tries to install and load optiSel\n2. If successful, uses native optiSel functions\n3. Status shows: \"✅ optiSel package is available - OCS functionality enabled\"\n\n#### WebR Environment (optiSel Not Available)\n1. App detects optiSel installation failure\n2. Automatically loads custom OCS fallback from `scripts/optsel_fallback.R`\n3. Creates function aliases: `candes`, `opticont`, `noffspring`, `matings`\n4. Status shows: \"✅ Custom OCS fallback is available - OCS functionality enabled\"\n\n#### Complete Failure (Neither Available)\n1. Shows error message: \"❌ OCS functionality not available\"\n2. OCS button shows modal explaining the issue\n3. User can still use EBV matrix functionality\n\n### Data Processing\n- Automatic pedigree cleaning and validation\n- Kinship matrix calculation using kinship2\n- Multi-trait EBV combination with weights\n- Comprehensive error handling and validation\n\n### Performance\n- **Small datasets** (<100 candidates): Fast, comparable to optiSel\n- **Medium datasets** (100-500 candidates): Reasonable performance\n- **Large datasets** (>500 candidates): May be slower than optiSel\n\n\n\n## 📈 Sample Results\n\nWith the provided sample data:\n- **84 candidates** (63 males, 21 females)\n- **66 candidates selected** for breeding\n- **97 optimal mating pairs** generated\n- **Mean offspring inbreeding**: 0.0053\n- **Expected genetic gain**: +0.0557 (improved from -0.0290 baseline)\n\n## 🔍 Troubleshooting\n\n### Common Issues\n\n1. **\"Package not available\" error**\n - The app will automatically use the custom fallback\n - Check console messages for details\n\n2. **\"No valid EBV files\" error**\n - Ensure EBV files have correct column names (ID, EBV)\n - Check that trait weights sum to 1.0\n\n3. **\"Only one sex selected\" error**\n - Adjust EBV scaling or kinship constraints\n - Check candidate file sex coding (M/F)\n\n4. **\"Optimization failed\" error**\n - Check kinship matrix condition\n - Consider data scaling or constraint adjustment\n\n5. **\"Requested package not found in webR binary repo\"**\n - This indicates the app is trying to use WebR installation methods\n - The app has been updated to handle this automatically\n\n6. **\"Permission denied\"**\n - You don't have write access to the R library directory\n - Run R as administrator or change library location\n\n### Debug Mode\nEnable verbose output by checking the R console for detailed messages during analysis.\n\n## 🏗️ Code Organization\n\n### Function Structure\nThe app uses an organized functions structure to improve code maintainability, reusability, and clarity:\n\n#### Function Categories\n1. **Data Processing Functions** (`app/R/utils.R`)\n - Handle all data input, cleaning, and processing operations\n - Functions: `read_candidates()`, `clean_pedigree()`, `compute_kinship_matrix()`, `process_ebvs()`, `calculate_index()`\n\n2. **OCS Functions** (`app/R/ocs_helpers.R`)\n - Handle all Optimum Contribution Selection operations\n - Functions: `run_ocs()`, `validate_ocs_inputs()`, `format_ocs_results()`, `create_ocs_workbook()`\n\n3. **UI Helper Functions** (`app/R/ui_helpers.R`)\n - Handle UI elements, reactive values, and display formatting\n - Functions: `create_trait_inputs()`, `generate_package_status()`, `format_kinship_ebv_results()`, `validate_file_upload()`\n\n4. **Function Loader** (`app/R/load_functions.R`)\n - Centralized loading of all function files in the correct order\n\n### Benefits of Organization\n- **Maintainability**: Functions grouped by purpose, easy to locate and modify\n- **Reusability**: Functions can be used across different parts of the app\n- **Testing**: Individual function files can be tested separately\n- **Documentation**: Each function file has clear documentation\n- **Collaboration**: Multiple developers can work on different function files\n\n## 🤝 Contributing\n\n### Code Organization\n- Follow the established project structure\n- Add new functions to appropriate R/ files\n- Update documentation for new features\n- Test thoroughly before submitting\n\n### Development Guidelines\n- Use Roxygen2 comments for all functions\n- Follow R naming conventions\n- Include error handling and validation\n- Test with both optiSel and fallback implementations\n\n### Function Documentation\nAll functions include Roxygen2 documentation with:\n- Parameter descriptions\n- Return value details\n- Usage examples\n- Error handling information\n\n## 📄 License\n\nThis project is developed for genetic breeding optimization research and applications.\n\n## 🙏 Acknowledgments\n\n- Built with R and Shiny\n- Uses kinship2 for pedigree analysis\n- Custom OCS implementation for WebR compatibility\n- Sample data provided for testing and demonstration\n\n## 📞 Support\n\nFor questions or issues:\n1. Check the troubleshooting section\n2. Examine the console output for error details\n3. Review the app documentation and help section\n\n---\n\n**AlloMate** - Making genetic breeding optimization accessible and efficient! 🧬✨","type":"text"},{"name":"global.R","content":"# Global.R - Simple package setup\n# This file runs once when the Shiny app starts\n\n# Check if we're in the app directory or project root\nif (dir.exists(\"R\") && dir.exists(\"www\")) {\n app_dir <<- TRUE # Make it global so other functions can access it\n} else if (dir.exists(\"app\") && dir.exists(\"scripts\")) {\n app_dir <<- FALSE # Make it global so other functions can access it\n} else {\n app_dir <<- FALSE # Make it global so other functions can access it\n}\n\n# Check if we're in a Shiny server environment (temporary directory)\nis_shiny_server <- grepl(\"^/home/web_user/\", getwd()) || grepl(\"^/tmp/\", getwd()) || grepl(\"^/var/folders/\", getwd())\n\n# Load required packages (skip if not available)\n# Load non-tidyverse packages first\nrequired_packages <- c(\"shiny\", \"shinyjs\", \"DT\", \"openxlsx\")\n\n# Try to load quadprog (optional - we have fallback)\nquadprog_available <- FALSE\ntryCatch({\n if (!require(quadprog, quietly = TRUE)) {\n install.packages(\"quadprog\", repos = \"https://cran.rstudio.com/\", quiet = TRUE)\n }\n library(quadprog, quietly = TRUE)\n quadprog_available <- TRUE\n}, error = function(e) {\n warning(paste(\"Package quadprog not available (will use fallback optimization):\", e$message))\n})\n\n# Try to load kinship2 (optional - we have fallback)\nkinship2_available <- FALSE\ntryCatch({\n if (!require(kinship2, quietly = TRUE)) {\n install.packages(\"kinship2\", repos = \"https://cran.rstudio.com/\", quiet = TRUE)\n }\n library(kinship2, quietly = TRUE)\n kinship2_available <- TRUE\n}, error = function(e) {\n warning(paste(\"Package kinship2 not available (will use fallback):\", e$message))\n})\n\n# Load non-tidyverse packages first\nfor (pkg in required_packages) {\n tryCatch({\n library(pkg, character.only = TRUE)\n message(paste(\"✅ Loaded package:\", pkg))\n }, error = function(e) {\n warning(paste(\"Package\", pkg, \"not available:\", e$message))\n })\n}\n\n# Load tidyverse last to avoid masking issues\ntryCatch({\n library(tidyverse)\n message(\"✅ Loaded tidyverse package\")\n}, error = function(e) {\n warning(paste(\"Package tidyverse not available:\", e$message))\n})\n\n# Detect WebR environment\nis_webr <- exists(\"webr\") && !is.null(webr)\n\n# Try to install and load optiSel - with custom fallback\noptisel_available <- FALSE\ncustom_ocs_available <- FALSE\n\ntryCatch({\n if (!require(optiSel, quietly = TRUE)) {\n install.packages(\"optiSel\", repos = \"https://cran.rstudio.com/\", quiet = TRUE)\n }\n library(optiSel)\n optisel_available <- TRUE\n message(\"✅ optiSel loaded successfully\")\n}, error = function(e) {\n message(\"⚠️ optiSel not available - loading custom OCS fallback\")\n \n # Load all organized functions (which includes the fallback)\n tryCatch({\n # Determine correct path based on current directory\n if (app_dir) {\n functions_path <- \"R/load_functions.R\"\n } else {\n functions_path <- \"app/R/load_functions.R\"\n }\n \n # Check if the functions file exists before sourcing\n if (!file.exists(functions_path)) {\n stop(paste(\"Functions file not found at:\", functions_path))\n }\n \n source(functions_path)\n \n # Check if the fallback functions were loaded and flag was set\n if (exists(\"custom_ocs_available\") && custom_ocs_available) {\n message(\"✅ Custom OCS fallback loaded successfully\")\n message(\"📦 OCS functionality enabled via custom fallback\")\n } else {\n message(\"⚠️ Custom OCS fallback not available after loading functions\")\n }\n }, error = function(func_error) {\n message(\"❌ Could not load organized functions:\", func_error$message)\n })\n})\n\n# Set global flags for app behavior\nocs_available <- optisel_available || custom_ocs_available\n\nmessage(\"🚀 AlloMate app startup complete!\")\n","type":"text"},{"name":"www/allomate.png","content":"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\nqfD111/P+6dFh2giz+9973vx5X16mt8xLZB4KDMBQn5m1PnekT6s9mPilauvvroj2CuvvNIN\nDw93tGySC+l2gprUKcsyYbe4K5dTHHZsaXpyym57Nz3eVbMU8tOc6VMhv6qz+AkEHU0wpyCg\ng1ehD0vuqpO6XFiXM8hJt9rKQ9E9wdeuXZtJUxTyN27cmNi+NFQ/y2vLL7zwwsTqnuWGdAeC\n73znOy5PI1Cy9Lvuuus48JkluGf70mUumqNG8y/xt7F152gSal2fr/l8MGptxKPZCBDys3HO\n/V70i18zFWdZNJNpp/eZ7tfke/og+dOf/jQzlmpt2inkp3UWf6YhdTdZtZBv++m4TE25+j6b\nkb/jFZa4oB1Uab613hK34nTP3xtuuCFenSPxCyvusgkVP/axjzn9G3pRX2cVXrWvJCff0+9g\nHXTJquiuJSGWr3/96+7FF18Msepe1Fmvs9tuu82LulCJbAX22d9wncFv3EaWv43t/e+///54\ngtr2S/AMAukLEPLTN879HjSDfD9mkb/ssss6Pjs/ODjozjnnHDvDne1LXhOw6LZWWZ01mrR7\n2mt2fRskltrrTgcQ6qWancnvPOQreKc56Z4aqxYP2EGVeo9n8vXHWff9pXQuoPf/Rz/60c5X\n8HjJ8847L7Pa6cCoziwnUbIM+atXr3aa6yS0oktwdIkJE2MtvecU7DTTPqVYAup3hXsmoe2s\n3zVSSycKOCDWmRdLpSOQbeJJpw1stc8C+oCv22plXTRUv5vQriH7lYTvn95Jm3fs2HHoyHcn\ny/eyzHRtyibdS/tMvnPlSqmr4foK+TU7C5DeoYeZkD9oeBoxsNSiyyt0Hf7/Z+884OQ4y/v/\n7l6XZFnFRXI9WXLvvSIXjI0NGBtiMMXE4IQSWogDIeFPJ4WS5AMkhPBJIIFASIjBYEKo7r3b\nkqtcZFvNRbKsdrqyu//nO6e5m9vbMrM7874zs89jr3Zvd+Ytv2nv76kuSkG2OuY07AdpwmU/\nD94PJPO0JcRvxuGyD/42w6UOOOAAJ/fSdo4LOSTIfk2eFJX2EECh5OKZ396ode92ECC58je/\n+c3Yy362M6a070v1mauuukpLT6b9QOV4fEryc3xwbU2NRart0nnM7fjjj49E8knSh0XfttiM\nyx8dGzEjWNiTZNMAKKXGto+gTAjZkbgRl2NKiNfo+JGJwFMmhB1XVWPUzVbNexUoIf9EmUWs\n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\ndt5557kTly1bZldddZX98ccfxWfE3pwWIMjP6cfHzSOQOwLxQb4P7GfOnBkN7nOnNNwpAggg\ngAACCCBQPgIPPfSQaQag//znP8Ve8J133nEBvQ56+OGH7bDDDrPq1atbtWrV7LLLLrOjjz7a\nna+gf8yYMcXmxc7cFiDIz+3nx90jkFMCBPY59bi4WQQQQAABBBDIAgG1dFQN/H//+1/75Zdf\n3B1NnjzZrr76alu+fHn0DtUcX2mPPfawFi1aRLf//vvv9swzz9iUKVOi21auXBldZyV8AvTJ\nD98zpUQIZKVAGKb/y0pYbgoBBBBAAAEEQi2gpvaRSMRWrFhhN9xwg/3www/RGnsF86effror\n/5o1a9xyk002ccv169fb6NGjbdiwYbZgwQK3rWnTpm7Gos6dO7vv/AinAEF+OJ8rpUIAAQQQ\nQAABBBBAAIEQCPTo0cOGDBliS5YssZdeeilaoo4dO9qBBx4Y/e772X/66aeu5n748OE2f/58\nt3+nnXYyVbh069bNKlWqFD2HlXAKEOSH87lSKgQQQAABBBBAAAEEEMhxAdXAX3vttS7A90Vp\n2LCh3Xnnnbb77rv7TW65//7728iRI001+tddd53b1qRJE+vTp491797dKlcu3FP7119/tU03\n3bRQHnwJh0DhJx2OMlEKBBBAAAEEEEAAAQQQQCDnBb799lt7//33XTmqVv2rfnbp0qXWuHHj\njcrWoUMHq1mzZnT7oEGDXM3/EUccsVGAP336dGvfvr29+uqr0eNZCY8AQX54niUlQQABBBBA\nAAEEEEAAgRwWUJP7P//8M1qCtm3buinvnnzySVPQrrRq1SrTiPvxSX3x/Qj62jdr1qyNgntt\n17R6Z555pmnwPY20TwqfAB0yEj/TN4PNHRPvyuzWfv36uQzVR4aEAAIIIIAAAggggAAC+SWw\nevVqN0DeuHHjXNCtYP3www93wf0WW2wRxdAo+V27djXV7teqVctef/11q1OnTnS/VhS4H3XU\nUbZw4UK3vXfv3jZgwAA3ld7XX39telmgJv16kaCm/E888YTVrVu3UB6pftF0yb169Ur19FTO\nOzg4qSCVE8N+DkF+4idcbkG+vzzBvpdgiQACCCCAAAIIIIBAfghoWrurrrrKvv/++40K3LJl\nS3v66afNN9PXAS+88IINHDjQHatR9y+77LKNzlOwreBeLwWUqlWr5l4G/Pjjj9FjDzroIBs8\n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\n16m5T5swbzNgCr30H30kyEItIhTwhz4x9V7oHzEFRAABBBBAAAEEckrAzxKlm9ZI+bFJTeX9\n6Pf6OzY26QWB0pdffmnffvtt7K5C6xqh36fYKe/Uj18vCJSmTJniD0l7qeA+z6bCKwjQDt7w\n0TopTQFq8tMEjDm9IFinZj8GhFUEEEAAAQQQQAABBNIR8MG3as6LSpq/XiPpf/PNNy5YP+CA\nA9x89Tpete4aYV+D7GkwPA2Cp6nvlKpVq2bjxo1z63oR0L59e7ce/0P5anA9pbPPPts233xz\nt657UssAXS/2ZYLbmcIPau5TQOOUhAKVEm5lYyYEIkEm9NnPhCR5IIAAAggggAACCOSVgIJ7\nzU2vPvOavu6RRx7ZaOC8WBANsHfUUUe5TW3btnXH+/1qst+lSxfTKPm77babPffcc26X+tsr\nsNfgeQry1Xy/efPm/rTosm/fvvbqq6/a1ltvbW+88YZVr149ui8TK/S5z4QiecQKUJMfq5HZ\n9YIgO2r2M2tKbggggAACCCCAAAI5LqAB8W666SY3h7yC7kRJze7Hjh3rdmle+gkTJriAfKut\ntkp0uKk2XzXus2bNcv3sFeirn7zSFlts4frVa5C+H3/80fWd33HHHV1gr5H1Fbj/+eefVlBQ\n4Pr0161b152npvkagd+/FLjssstsr732cvsy8YOa+0wokkciAWryE6mUzbZIkC01+2VjS64I\nIIAAAggggAACOSKgpu2vvfaam2v+3nvvTXjX9913n911112F9qnp/X//+1/X5L7Qjg1fvv76\nazvyyCNdwN66dWsbMWJE9LCFCxe62nxNhafp7l544YXovgsuuMDefPNN911N8NX8XteaPHmy\nezmgHRphf9iwYRmpxafmPkrPShkJUJNfRrAJsi0ItlGznwCGTQgggAACCCCAAAL5I6DgWX3k\nFVAXNaq9+tGriXyNGjXshBNOsM8//9zWrl1r48ePd7XpasIfn1TLr9p8BfsK6hXoa3o7JdXm\nq0++8lm8eLFrlu/nrteI/GpdoBH61aR/zpw5bjC+lStXWqVKleySSy6xQYMGpT1FHjX38U+M\n72UlQJBfVrJF51sQ7CLYL9qHPQgggAACCCCAAAIhFtCUdxqNXrXqmqs+UVKArT7yajKvWn2l\nqVOnunMU6Ks23g+gF3t+06ZNbeTIkW6T+vX36NEjulv97Z944gn7448/3MsAvWBQEK+XDd27\nd3f5Va781+RjzZo1szPOOMMikYgdcsgh7rhoRqVcIbgvJRiHpy1AkJ82YcoZFARnEuynzMeJ\nCCCAAAIIIIAAArkooFp2NddXzbxGq9co9/FJwbcG21M67LDD7MQTT3S17JqXXoG/RrtXv3oF\n9bFJ/elVK6/R9tUaYJ999rFGjRq5QzQq/k8//WSfffaZGw9gl112sZ133jl6ugL7bt262amn\nnmrHHHOM7bHHHq4FQPSAUq4Q3JcSjMMzJvDXq6qMZUdGKQhEgnM0NoIC/tAnzU+qz9ChQ90n\n9AWmgAgggAACCCCAAAKFBLbddtvodwXiiZLmsPfz2/tp9C699FLTR0nN6gcMGGDPPvvsRqer\nz7+vkdffnbHp/PPPj/ar19+jGnAv00nBPfPcZ1qV/EojQE1+abTK9tiCIHtq9svWmNwRQAAB\nBBBAAAEEKlhAgfVjjz3m7uLggw92c83H35KCdI1qr5H11cy+TZs27pB9993XzVP/zjvvuO8a\nGV819HvuuWc0C42YP3/+fNO0et9//73tvffe0en3NttsM1uyZIlNmzbN1eYrP1/TH80gxRVq\n7lOE47SMCxDkZ5w07QwLghwI9tNmJAMEEEAAAQQQQACBbBTYdNNN7f7773e3piC7qGn0NPCe\navq32WYb69y5c7QoCug1Z72mvFNSwK/m/Rpozyc1xVfffL1QmDdvnhu8z+/TSwMN/qcuAEcf\nfXS0xYDfX9olwX1pxTi+rAWqlvUFyD9lgUhwpv+Efuq9+KZUffv2TRmOExFAAAEEEEAAAQSy\nV6B69eouSNec9UU119fdawT9Dz74wNXKx5ZGI+hr4L7YpL8lNVjfwIED3ebGjRu7AF6D92nA\nvkmTJrlp8LRTXQHGjBkTe3pK6wrudV0t8yQVBOVUZaSWpCwWIMjP4oez4dYiwdJ/CPY3oLBA\nAAEEEEAAAQQQyF0B9ctXkK/m9EUlP02emt4raWo7zVU/bty4aF96Db6ngfZUY//www+7QP/G\nG290ffIvuugiGz16tBuoT0G95rrPRCK4z4QieZSlAEF+WepmNu9IkJ3/EOxn1pbcEEAAAQQQ\nQAABBNIQePvtt+3jjz+2fv36RQe9Ky47BfCffvqpm8++qOO22247t0t96DXg3oQJE9z0d9qo\nkfB1rUMPPdQ0pd4VV1zhgvlnnnnGVq1aZbfddpvra3/xxRe7wP+ss84q6jJJbye4T5qKAytY\ngCC/gh9ACpePBOf4D8F+CoCcggACCCCAAAIIIJA5gYkTJ1r//v1dhpqS7vDDD3frP//8sxsF\nv379+htdzI+wX1xNvg/ydbICeSVNmafgXn301Q9fSderUaOGXXLJJfbbb7+5Y1u2bGnnnHOO\naTT9dBPBfbqCnF/eAgT55S2euetFgqz8h2A/c67khAACCCCAAAIIIFAKAc1FryBb895rWjoN\ngPfggw+6ge80aN4rr7yyUW4+gF+0aJGrgffT5cUe2LBhw+hX9bFXEK957H1wH90ZrKhG/777\n7rNBgwZZhw4drEePHrG7U1onuE+JjZOyQIAgPwseQpq3EAnO9x+C/TQxOR0BBBBAAAEEEECg\ndAL16tWzU045xfWJnz17trVv3z6agQL/NWvW2CabbBLdphUf5K9fv971zfc1+7EH6QWBTwru\nu3fv7r8mXB544IH22muvJdxXmo0E96XR4thsFCDIz8ankto9RYLT/IdgPzVDzkIAAQQQQAAB\nBPJaQCPXb7HFFm70+2Qhli5d6vrBxx6vEezVVF7T1Gk0/fjkg3xtX7hwoSUK8nWe8tEAfX7w\nvfh8Mvmd4D6TmuRVkQIE+RWpXzbXjgTZ+g/BftkYkysCCCCAAAIIIBA6geuuu840cJ1q4tXc\nPtmkZvTvv/9+ocPVR/+EE04otC32S2yQX1K//LIO8gnuY58M62EQqByGQlCGhAKRYKtGI9Fc\nlqFPmqNUH/UD04eEAAIIIIAAAgggUDqBFStWuBPeeecdN1J+smerGb1q3BXs16xZ0502fPhw\n19e+qDzUWqBWrVpu93fffVfUYean0Zs3b16Rx6S6Q8F9r1693EfreZAKgjIevOGjdVJIBajJ\nD+mDjSlWJFj3H2r2Y2BYRQABBBBAAAEEEPifQJ8+fUwj5SsNGTLEHnnkEbfuf8yYMcMmTZrk\nms63atXKunTpYltuuaWddNJJ7qPjVq9ebQrw1bxec9Qfd9xx/vSNlqrN//rrry2ZIF999/VJ\nNEDfRhmXsIGa+xKA2J3zAlVyvgQUIFmBguBA1epXCj4dg0+ok/7x1kejr2qpUV5JCCCAAAII\nIIAAAkULaAC9WbNmuc+CBQusbdu2boC8P/74w2655RYbOHCgvffeezZ9+nR788037eWXX7Y2\nbdqYzvOpRYsW9uSTT7qp7GbOnGmnnnqqVa6cuPGw8lANfd26de2oo47yWRRaql/+pptu6q5f\np06dQvtK+0V/E6oMavWpcQDyIBUEZewdfBQDzA0+pDwRIMjPkwcdU8yCYJ1gPwaEVQQQQAAB\nBBBAAIG/BDTPvYJ0JQXCxx57rP373/+O9tHfbLPN7M8//zQF/r/88our2dfgetWqVXPnKCBX\nbf6HH35oav6v2nrNWZ8offzxx/b555+7c/UyIFHS+ZoSTy0GUk0E96nKcV6uCiR+rZarpeG+\nSyMQCQ5Wrb4C/tAn+uyH/hFTQAQQQAABBBDIgEDTpk3dXPTKasqUKfbqq6/a448/7nIeMGCA\nffDBB642v2PHjm6bmtqraX9sOuuss6L97TV3/W+//Ra7O7ruR9QvbuC96MEprCi4p899CnCc\nkvMC1OTn/CNMuwAFQQ7U7KfNSAYIIIAAAggggEA4BBTojxw50hVm/PjxLkjv0aOHXXXVVa4r\nZI0aNezQQw+1cePGudp61cYfc8wxbuo9nbTJJpvY2rVr3QsB1fb//vvv1q5dO5ffJ598Ypqm\nb/vttzcF96+88orL//TTT3fnuYPS/EHNfZqAnJ7zAgT5Of8IM1aAgiAngv2McZIRAggggAAC\nCCCQGwIKyEeNGmWa736HHXZwfeTnzp1rX331VbQAN9xwQ6G57NU8v2HDhvbSSy+5pvtqon/I\nIYdEj1fffE3Ht2bNGvvoo49cAK/m+Zqm791337XevXvbypUr7bnnnnPnHHHEEYX69kczKsUK\nwX0psDg01AKVQl06CpeOQCQ4OfSj8Xugfv36udW+ffv6TSwRQAABBBBAAIFQC6xbt86eeuop\nNxq+5qLXNHhvv/22K/Ps2bPt8MMPdwG8prpToK4BjePT8ccfb5999plVrVrVJkyYYI0aNYoe\n8uKLL7ra/+iGDSvNmzd3I++rJt83+7/33nutU6dO8Ycm9V3BvbpmapknqSAopyrntCQhsJEA\nNfkbkbBhg0BBsNQ/HvrXvGPwCXXS/xT0YTT+UD9mCocAAggggEBoBRYvXmz333+/GyyvqIHu\nfOHVXF796K+//no3Zd6qVats8803t/POO8/22msvd5hGstc0eBohX33q9957b9fE3ufhl/Xr\n17exY8e6lwHKJzZQVzCv4F9/Y2mwPr0sULP/22+/3dTkv2bNmu6etW+fffax3Xff3Web1FL5\nMlp+UlQclGcCG7+OyzMAipu0QCQ4kpr9pLk4EAEEEEAAAQQQKD8BX6OuK44ZM8aaNWuW8OKP\nPPKIDR48eKPB8DQNnqaW80G+Ttb0dl27dnUB/J577ulq/RNlesIJJ9i0adPcHPaqzVd/+9ik\nbgAaoE99/TUlXmzSSwH129cLCr1ISCYpuKfmPhkpjslXAWry8/XJl77cBcEp1OyX3o0zEEAA\nAQQQQACBMhcoKCiwOXPmuOuof7umnotPTz/9tN14440uaFf/+QsuuMBNbzd16tTodHiayk61\n70qatm7BggU2Y8YM++GHH2yPPfawxo0bx2fr+urrxYJq5BWwH3bYYYWO0bR66gpQpcrGoYcG\n8Lvooos2ejFQKIMNX6i5T6TCNgQ2FqAmf2MTtiQnEAkOo2Y/OSuOQgABBBBAAAEEylTg559/\ntgceeMANfte6deuNrqUm9/vvv78b7O6MM86wa665JnrMs88+a9dee637Pnz4cDcvvd/57bff\nWpcuXWz9+vXWqlUr07GJUs+ePU0j51euXNneeecd22qrrRIdltI2au5TYuOkPBbY+HVaHmNQ\n9FIJFARHU7NfKjIORgABBBBAAAEEykZA/dvbt29vDRo0cE3xly9fbqpB90n96x966CH39eab\nb3Yj6Pt9atr/+OOPu2nvNHe9n+5O+2vXru2a2k+fPt00OJ8CfY3AH5800v6HH35oZ599th1w\nwAEJB+mLP6ek79TclyTEfgQSC/zVFifxPrYikIxAJDjIf0Jfs6/+X7GJ0fhjNVhHAAEEEEAA\ngYoWmDx5sl155ZUu0H/jjTfcYHe6J02T55Nq53faaSf/1S19U3r1zY9PF154oWmkfM13r7+F\n/Ij4sceplcDrr78euynldWruU6bjRAScADX5/CJkSqAgyIia/Uxpkg8CCCCAAAIIIJCCgJrK\njx8/3s1Pr9r9fffd1+Wi5vNPPvmk/frrr6Y++OqTr1p6JQ24N2nSJNfU/rLLLttovvotttjC\n9cn/4osvXG2+Ru/fcccd3bmZ/EHNfSY1ySufBSrlc+Epe5kKRILcQ1+z7wX79evnVqnZ9yIs\nEUAAAQQQQKAiBNatW2cazG7RokUuiFdt/mabbeZuZdiwYW7qPH3RQHga2f6jjz6yr776yu3X\nFHoK8hMljY7fuXNn10JAA/vdcccdiQ5LaRs19ymxcRICRQpQk18kDTvSFCgIzqdmP01ETkcA\nAQQQQAABBOIFNNK9ms3/61//csH27NmzoyPaq9m9pql76623XBP9TTbZxPxAfJqLfu7cufb1\n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\nrBGgJj9rHgU3kiGBSJAPNfsZwiQbBBBAAAEEEEhPQKPeq2++avVVu67a/C233DKaqUawHzly\npPt+zz33JBzNXs311WxfSdPhqRuAkkbY//nnn61BgwaFWgi4nSn8UHCve9AyT1JBUE5VFmlJ\nQiA0AtTkh+ZRUpANAgXBkpp9fh0QQAABBBBAICsEVJuvfvdqdq8p7ypXruym1/M316JFC1ON\nvOa5L6o2f7vttrOPPvrIFixY4Kba06j5muteXQC23npr22STTXx2KS2puU+JjZMQyFoBgvys\nfTTcWJoCBcH5BPtpInI6AggggAACCKQvoEBefe81Ld6XX37pRtHXvPRKCtRVG6/56rVs2rSp\n7bzzzhtddPvtt7fnnnvO9fHXSPvpBva6AMH9RsxsQCAUAjTXD8VjpBBJCESCY2jGnwQUhyCA\nAAIIIIBA0QJff/21aX55zWFfmnT//fdHB80799xz7fLLL4+ermb3GnRP/fYV4I8dO9bV+EcP\n2LCyZs2ajAX3NMuP1+U7AuERIMgPz7OkJMkJRILDCPaTs+IoBBBAAAEEENggoGnqhg4dai+/\n/LL9+eefNm7cOFfrXhTQW2+95UbVV9N6pVWrVrm++cuWLTPV4qtvfuyUeTfddJM9+uij7th/\n//vf5s9zGzL0gz73GYIkGwSyXIAgP8sfELdXZgKRIGeC/TLjJWMEEEAAAQRyX0B96CdOnOgC\n+oKCAhfcq1Rt2rSxO+64w/WHjy/l22+/bUOGDHHN79X/fvLkya7/vI4bPny4O0/rZ511ll11\n1VVadWnx4sXWqVMn16R/n332iQ7G5/ensyS4T0ePcxHIPQGC/Nx7ZtxxZgUiQXYE+5k1JTcE\nEEAAAQRyXmDu3Lk2YMAA++KLLwqVRYH77bffvlFzfQXzCu4/+eST6PFqgn/rrbe6fvfauHr1\nalebv3TpUtfs/vXXX7d69epFj7/33ntt6tSp1q9fP2vVqlV0e6orBPepynEeArktQJCf28+P\nu8+cQCTIimA/c57khAACCCCAQM4KLFmyxLp162ZqWq856dX/vnbt2vbYY4+5bVWqVLFnn33W\ndt11V1fGUaNG2Q03/O/PCE2Zp0Dd74+FePDBB+22225zm84880w3t33s/kysE9xnQpE8EMhd\nAYL83H123HnZCESCbP/3f+myuUbW5Ko/QJT69u2bNffEjSCAAAIIIFDRAtddd50988wzbv55\njYqvaeqUNOBejx493FR4vXr1Mh2nNGPGDLf9gAMOsP79+9tuu+3mtif68euvv7pm+RpJv1at\nWvbxxx8nOiylbQT3KbFxEgKhE6gauhJRIATSE4gEp/tP6IN9jawbmwj2YzVYRwABBBDIVwFN\nZ6ekgN4H+PrerFkzNwq+Bt97//33tcml5s2b2wcffGA1a9b0m4pcatC9Sy+91F555RXTKPuZ\nSAT3mVAkDwTCI0CQH55nSUkyKxAJsvMfgv3M2pIbAggggAACFS6g6eh+//33aH/52Btavny5\n+6pm+/GpTp06btMWW2xRaFcyAb4/4YQTTjB90k0E9+kKcj4C4RQgyA/nc6VUmROIBFn5D8F+\n5lzJCQEEEEAAgYwJrF271mrUqJFUfgqM77vvPvvwww9ds/umTZvaNddcY23bto2er9HzR48e\nbS+88ILrm7/vvvu6fXPmzHFz2OvLnnvuGT2+vFcI7stbnOshkFsC9MnPrefF3Va8QCS4hdAH\n+56ZPvtegiUCCCCAQDYKqKb98ssvd9PUaRT7o48+utjbfOmll9y0dZoaLzZpxPw777zTunbt\n6jarKf4ZZ5zh1vXy4LzzzrMffvjBxo8f7+a733bbbd20eptttllsNmW+TnBf5sRcAIFQCBDk\nh+IxUogKEIgE1yTYrwB4LokAAgggkL8CGu1ezeQVlCu99dZbLgDXesuWLe3555/XaqH07bff\nmqas22GHHeyggw4yDXynWngF9J9++qmpf72SmuEriK9bt677PmzYMDclnvsS80M1/nqhUL9+\n/ZitZbtKcF+2vuSOQNgEqoStQJQHgXISKAiuMyj46EVZx+AT6qQ/LvSpVKmSW7Zu3TrU5aVw\nCCCAAALZJaCa9yuuuMKuvPJKN5Wdbyqv6e0mTpzoatdPPvlk22+//Qrd+KRJk6xnz56u1l15\nTJkyxfT/sIceesgdq0D/zz//dIPmqY/+ihUr3Dz2ykTH/fHHH26fXiAce+yxdskll9hFF13k\nztHo+7fccov961//sscff9y9SNA5/gVEoRtJ8Yv+3ztw4EAbOnSoLVy4MMVccuq0guBuewcf\n/Y01N/iQEEAgBQEFKCQEEEhfIBJkQc1++o7kgAACCCCAwEYC6nOvWnjV5NerV89ef/1122ST\nTdxxCswVWCdqOq8+9N27d3fBus903Lhxpn74PmnwveOOO85Nj1elShX30qBRo0ZutwL4xx57\nzI466ii7/fbb7fvvv7dHH33Unn76afdiwefhl6effrpde+21/mvKS2ruU6bjRAQQCASoyefX\nAIHMCBQE2eits16cdQw+oU7U7If68VI4BBBAIOsEqlat6gL19957z1avXu1q8/faay93n+oz\nX716dddn/uGHH3bN7lXDr6Qm+PPnz3cBvL43adLEzWOvdZ/0gqBBgwZuQD3V6q9cudJNk6f9\n3333nRUUFLjzVXOvJvxTp051A/Y1bNjQTjzxROvcubPbtm7dOvv666/tnHPOSbk2n5p7/1RY\nIoBAOgLU5Kejx7kIFC0QCXZRs1+0D3sQQAABBBAolcCqVausU6dOrlm8+s2/8cYbpjnnldav\nX++a1ytAP/DAA+2///1vNO958+a5EfJ1TFH99nWwAnb10VdtvvrpN27c2DSwn6a6W7BgQTS/\nFi1auPnt1dRfxyppQL8BAwa49QkTJtiOO+7o1pP9Qc19slIchwACyQhQk5+MEscgUHqBguAU\navZL78YZCCCAAAIIJBRQbb3S5MmT3eB5m2++ue29995um2rjp02bZrNnz3Y19+3btzeNgK+0\n5ZZbuiD9yy+/tMWLF9vuu+/uBuFzO2N+6PgxY8a4/vbqAnDYYYe5lwjqi68m/arB32mnnVyN\n/y677FKotl773nzzTdeiQGMH+OA/JvuEq9TcJ2RhIwIIpCnw19CkaWbC6QggUKRAJNijFjMK\n+EOf7rnnHtNHAwTpQ0IAAQQQQCCTAqecckp09HvV1qt23yc/7au+DxkyxG92Sw2W5wNv/X8q\nUdKLAf/SYOzYsab+/EoazV8tBJTiB/bTtlmzZtkdd9yhVdf/v1q1am69uB8K7nv16uU+Ws+D\nVBCU8eANH62TEECgDAWoyS9DXLJGIEagIFinZj8GhFUEEEAAAQRKK6AAWrX27777rmk0/Fq1\natm+++7rstGAfOoT/80335imzdNUd9ttt53bV7t2bTdo3vTp0+3HH3+0Vq1aJazN1/GjR492\ntfnLly93/e2VwbPPPuuCfo3Qf8ghh7hB/nSNESNGuFH/9bJB/f3VZ9+3OHAXjvtBzX0cCF8R\nQKBMBFTDSEIAgfIXiASXpM9++btzRQQQQACBHBNQ0D58+PDoNHcKpj/44ANXCjXF10j7fmT9\nr776yo488ki3b//993cj4fviql99ly5dXNP74vrmn3rqqfbhhx+6Zv0abE/prrvusvvuu8+t\n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\nkwa6O++881w/fL8tdo779u3bu+b4fp/OP/roo12/fG174oknTDX+iZKa5vvr6hxNfeen0lNz\nfI2mP3HiRHfqqaeean//+98TZVPqbQruNV2qlnmSCoJyKrDXkoQAAggUK8DAe8XysBMBBDYI\nRIKl/4Q+2NcfjrFJ0zyREEAAgWwUqF27trstBdQKzlUTr49q699++22375BDDikU4Gvjbrvt\n5kbK1/R2S5cudcf5Hzpfwbv/t0+19UUF+YMGDXL9/DWl3ujRo936AQcc4F4QTJ061WfpXjKo\nFUG6ieA+XUHORwCBfBDIXHupfNCijAggEAkI1AJItQmhTwr29dG8zfqQEEAAgWwTaNCggbsl\nTV+nQNun/v37+1X371j0S8xKrVq13Ledd945Zutfqxo4TyPkK2laPD9q/l97//dTA+WpT79e\nGigtWLDAnnrqKfMBftOmTe3RRx819d/Xy4NUk4J7tUjQJ09q7wsCq4M3fLROQgABBJIWoE9+\n0lQciAACMQIFwboCff3F1jH4hDrpD0p99AeqlvTZD/XjpnAI5JSA5qtX/3ulbt26uenttK7p\n7jS13bx580y1/JqSbvvtt9culzR6/uDBg13tv4L8uXPnuu1+znv9e6dp9l566SX7448/XL/z\nj73jAAAojUlEQVR+tQhIlBTo9+jRw7bddls3Or6ufcQRR5imytPLBg3Kl2rSv7n0uU9Vj/MQ\nQCBfBVJ/pZqvYpQbAQQSCUSCjaFvxu8LztR7XoIlAghUtMBPP/1kah6vdPfdd1vXrl2jt6Qg\n//jjj3ff99hjD3v66adNNf6jRo2yO+64wzT6fnzSNHba52v5Fbyr/37VqlVd3/p0Avb4axX3\nXcE9fe6LE2IfAgggULQANflF27AHAQSSFygIDqVmP3kvjkQAAQQyIrDpppva8OHDbf369aZA\nXjX2PqlGXTX2c+bMsUWLFrm+9xoYb/z48fb777+7wzSv/TbbbGOLFy9231Wjr5r/zp07u+/a\npz75qs1Xq4FOnTr57MtkSc19mbCSKQII5JkANfl59sApLgLlJBAJrkPNfjlhcxkEEMhvAQXk\napav/urXXXddIQwF+ccee2yhbdWrV7eTTz7ZevbsaU2aNHH7pkyZYueee66tXbvWfVdg76fN\nU2sAtQrQ9HgaKb9Ro0aF8svEF2ruM6FIHggggMBfAtTk85uAAAJlIVAQZErNflnIkicCCCAQ\n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","type":"binary"},{"name":"www/logos.png","content":"iVBORw0KGgoAAAANSUhEUgAABbYAAADVCAYAAACLx6ayAAAATmVYSWZNTQAqAAAACAAEARoA\nBQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAAAhMAAwAAAAEAAQAAAAAAAAAAAGAA\nAAABAAAAYAAAAAF3Bd/nAABAAElEQVR4AeydBWAU1xaG/xD34AQSCO7u7tpSpNS9UKUGdXlt\nqRvUvdSpQEuN4u7uJHhCiLt7yDvnbmbZ3axGSFLOfW+zM3eufjOzZf85+1+nEkqQJASEgBAQ\nAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQqCWEKhTS8YpwxQCQkAICAEhIASEgBAQAkJA\nCAgBISAEhIAQEAJCQAgIASGgCIiwLReCEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJC\nQAjUKgIibNeq0yWDFQJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBEbblGhACQkAI\nCAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIgVpFQITtWnW6ZLBCQAgIASEgBISAEBACQkAI\nCAEhIASEgBAQAkJACAgBISDCtlwDQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASFQ\nqwiIsF2rTpcMVggIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAERNiWa0AICAEhIASE\ngBAQAkJACAgBISAEhIAQEAJCQAgIASEgBGoVARG2a9XpksEKASEgBISAEBACQkAICAEhIASE\ngBAQAkJACAgBISAEhIAI23INCAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBIRArSIg\nwnatOl0yWCEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEGFbrgEhIASEgBAQAkJA\nCAgBISAEhIAQEAJCQAgIASEgBISAEKhVBETYrlWnSwYrBISAEBACQkAICAEhIASEgBAQAkJA\nCAgBISAEhIAQEAIibMs1IASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACtYqACNu1\n6nTJYIWAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQIRtuQaEgBAQAkJACAgBISAE\nhIAQEAJCQAgIASEgBISAEBACQqBWEXCpVaOVwQoBISAEhIAQEAJCwITAhfwC5MYmoCAlFXnx\n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","type":"binary"}]
+[{"name":"server.R","content":"# All packages are loaded in global.R\n# optiSel availability is checked in global.R\n\n# All functions are now loaded from the organized functions folder\n# See functions/load_all_functions.R for details\n\n#### Server Function ####\n\nserver <- function(input, output, session) {\n \n # Package status output\n output$package_status_text <- renderText({\n generate_package_status()\n })\n \n # WebR detection output\n output$webr_detected <- renderText({\n if (is_webr_environment()) {\n \"WebR detected\"\n } else {\n \"\"\n }\n })\n outputOptions(output, \"webr_detected\", suspendWhenHidden = FALSE)\n \n # Help button functionality\n observeEvent(input$help_btn, {\n updateTabsetPanel(session, \"main_tabs\", selected = \"Help\")\n })\n \n # View R Code button functionality\n observeEvent(input$view_r_code_btn, {\n updateTabsetPanel(session, \"main_tabs\", selected = \"R Code\")\n })\n \n # Back to top functionality\n observeEvent(input$back_to_top, {\n runjs(\"document.querySelector('.help-content').scrollTop = 0;\")\n })\n \n # Enhanced markdown to HTML conversion function\n markdown_to_html <- function(markdown_text) {\n # Split into lines for processing\n lines <- strsplit(markdown_text, \"\\n\")[[1]]\n html_lines <- character(length(lines))\n in_code_block <- FALSE\n in_list <- FALSE\n list_type <- \"\"\n \n for (i in seq_along(lines)) {\n line <- lines[i]\n \n # Handle code blocks\n if (grepl(\"^```\", line)) {\n if (!in_code_block) {\n html_lines[i] <- \"
\"\n in_code_block <- TRUE\n } else {\n html_lines[i] <- \"<\/code><\/pre>\"\n in_code_block <- FALSE\n }\n next\n }\n \n if (in_code_block) {\n html_lines[i] <- paste0(\"\", line, \"<\/span>\")\n next\n }\n \n # Handle headers\n if (grepl(\"^# \", line)) {\n level <- nchar(gsub(\"^(#+).*\", \"\\\\1\", line))\n content <- gsub(\"^#+ \", \"\", line)\n # Add emoji support for main headers\n if (level == 1) {\n content <- paste0(\"🧬 \", content)\n } else if (level == 2) {\n content <- paste0(\"🚀 \", content)\n } else if (level == 3) {\n content <- paste0(\"📁 \", content)\n } else if (level == 4) {\n content <- paste0(\"🛠️ \", content)\n } else if (level == 5) {\n content <- paste0(\"📊 \", content)\n } else if (level == 6) {\n content <- paste0(\"🔧 \", content)\n }\n # Create anchor ID for TOC linking\n anchor <- tolower(gsub(\"[^a-zA-Z0-9\\\\s]\", \"\", content))\n anchor <- gsub(\"\\\\s+\", \"-\", anchor)\n \n html_lines[i] <- paste0(\"\", content, \"<\/h\", level, \">\")\n next\n }\n \n # Handle bold and italic\n line <- gsub(\"\\\\*\\\\*(.+?)\\\\*\\\\*\", \"\\\\1<\/strong>\", line)\n line <- gsub(\"\\\\*(.+?)\\\\*\", \"\\\\1<\/em>\", line)\n \n # Handle inline code\n line <- gsub(\"`(.+?)`\", \"\\\\1<\/code>\", line)\n \n # Handle links\n line <- gsub(\"\\\\[(.+?)\\\\]\\\\((.+?)\\\\)\", \"\\\\1<\/a>\", line)\n \n # Handle lists\n if (grepl(\"^[*-] \", line)) {\n content <- gsub(\"^[*-] \", \"\", line)\n if (!in_list) {\n html_lines[i] <- paste0(\"- \", content, \"<\/li>\")\n in_list <- TRUE\n list_type <- \"ul\"\n } else {\n html_lines[i] <- paste0(\"
- \", content, \"<\/li>\")\n }\n next\n }\n \n # Handle numbered lists\n if (grepl(\"^\\\\d+\\\\. \", line)) {\n content <- gsub(\"^\\\\d+\\\\. \", \"\", line)\n if (!in_list) {\n html_lines[i] <- paste0(\"
- \", content, \"<\/li>\")\n in_list <- TRUE\n list_type <- \"ol\"\n } else {\n html_lines[i] <- paste0(\"
- \", content, \"<\/li>\")\n }\n next\n }\n \n # Close lists when we encounter a non-list line\n if (in_list && !grepl(\"^[*-] \", line) && !grepl(\"^\\\\d+\\\\. \", line) && nchar(trimws(line)) > 0) {\n html_lines[i-1] <- paste0(html_lines[i-1], paste0(\"<\/\", list_type, \">\"))\n in_list <- FALSE\n list_type <- \"\"\n }\n \n # Handle horizontal rules\n if (grepl(\"^---$\", line)) {\n html_lines[i] <- \"
\"\n next\n }\n \n # Handle empty lines (paragraph breaks)\n if (nchar(trimws(line)) == 0) {\n html_lines[i] <- \"<\/p>\"\n next\n }\n \n # Regular text\n if (i == 1 || (i > 1 && nchar(trimws(html_lines[i-1])) == 0)) {\n html_lines[i] <- paste0(\"
\", line)\n } else {\n html_lines[i] <- line\n }\n }\n \n # Close any open lists\n if (in_list) {\n html_lines[length(html_lines)] <- paste0(html_lines[length(html_lines)], paste0(\"<\/\", list_type, \">\"))\n }\n \n # Close any open paragraphs\n if (length(html_lines) > 0 && grepl(\"^
\", html_lines[1])) {\n html_lines[1] <- paste0(html_lines[1], \"<\/p>\")\n }\n \n # Combine and clean up\n html_content <- paste(html_lines, collapse = \"\\n\")\n html_content <- gsub(\"<\/p>
<\/p>
\", \"<\/p>
\", html_content)\n html_content <- gsub(\"^<\/p>\", \"\", html_content)\n html_content <- gsub(\"<\/p>$\", \"\", html_content)\n \n return(html_content)\n }\n \n # Generate table of contents function\n generate_toc <- function(markdown_text) {\n lines <- strsplit(markdown_text, \"\\n\")[[1]]\n toc_items <- character(0)\n \n for (line in lines) {\n if (grepl(\"^# \", line)) {\n level <- nchar(gsub(\"^(#+).*\", \"\\\\1\", line))\n content <- gsub(\"^#+ \", \"\", line)\n \n # Create anchor for linking\n anchor <- tolower(gsub(\"[^a-zA-Z0-9\\\\s]\", \"\", content))\n anchor <- gsub(\"\\\\s+\", \"-\", anchor)\n \n # Indent based on header level\n indent <- paste(rep(\" \", level - 1), collapse = \"\")\n \n # Add to TOC\n toc_items <- c(toc_items, \n paste0('
', \n indent, '• ', content, '<\/a><\/div>')\n )\n }\n }\n \n if (length(toc_items) > 0) {\n return(paste(toc_items, collapse = \"\"))\n } else {\n return(\"No headers found for table of contents.<\/p>\")\n }\n }\n \n # Help content (README)\n output$help_content <- renderUI({\n # Try multiple possible paths for README.md\n possible_paths <- c(\n \"../README.md\", # If running from app directory\n \"README.md\", # If running from project root\n \"../../README.md\" # If running from deeper subdirectory\n )\n \n readme_path <- NULL\n for (path in possible_paths) {\n if (file.exists(path)) {\n readme_path <- path\n break\n }\n }\n \n if (!is.null(readme_path)) {\n tryCatch({\n readme_content <- readLines(readme_path, warn = FALSE, encoding = \"UTF-8\")\n readme_text <- paste(readme_content, collapse = \"\\n\")\n \n # Enhanced markdown to HTML conversion\n html_content <- markdown_to_html(readme_text)\n \n # Generate table of contents\n toc <- generate_toc(readme_text)\n \n # Combine TOC and content\n full_content <- paste0(\n '
',\n '📋 Table of Contents<\/h3>',\n toc,\n '<\/div>',\n '
',\n html_content\n )\n \n # Wrap in div with CSS class for styling\n styled_html <- paste0('', full_content, '<\/div>')\n \n HTML(styled_html)\n }, error = function(e) {\n HTML(paste0(\n \"Help Documentation<\/h2>\",\n \"
Error reading README.md file: \", e$message, \"<\/p>\",\n \"
Please ensure the README.md file exists and is readable.<\/p>\"\n ))\n })\n } else {\n HTML(paste0(\n \"
Help Documentation<\/h2>\",\n \"
README.md file not found. Please ensure the documentation file exists in the project root.<\/p>\"\n ))\n }\n })\n \n trait_counter <- reactiveVal(1)\n candidate_status <- reactiveVal(list(ok = FALSE, error = NULL))\n ocs_results_reactive <- reactiveVal() # For OCS results\n ebv_results_reactive <- reactiveVal() # For EBV results\n error_message <- reactiveVal(\"\") # For tracking errors\n pedigree_validation_stats <- reactiveVal(NULL)\n \n # Export: Prebuild workbook so Chrome downloads reliably\n export_cache <- reactiveVal(NULL)\n\n generate_export_xlsx <- function(dest_file) {\n use_openxlsx <- exists(\"openxlsx_available\") && isTRUE(openxlsx_available)\n safe_char <- function(x) if (is.null(x) || length(x) == 0) NA_character_ else as.character(x)\n\n readme_text <- c(\n \"📊 AlloMate Complete Results Report\",\n \"\",\n \"This Excel file contains all results from your AlloMate analysis:\",\n \"\",\n \"📋 Worksheets included:\",\n \"1. README - This overview and explanation\",\n \"2. Filtered Results - Crosses meeting criteria (positive EBVs, kinship below threshold)\",\n \"3. EBV Matrix - Complete matrix view with masked values\",\n \"4. OCS Candidates - Selected candidates from Optimum Contribution Selection\",\n \"5. Mating Plan - Recommended mating pairs from OCS\",\n \"6. Parameters - Analysis parameters used\",\n \"\",\n \"🔍 Data Details:\",\n \"- Filtered Results: Only crosses with positive EBVs and kinship below threshold\",\n \"- EBV Matrix: All possible crosses with values masked for failed criteria\",\n \"- OCS Results: Available only after running Optimum Contribution Selection\",\n \"\",\n \"📅 Generated on:\", as.character(Sys.Date())\n )\n\n ebv_results <- ebv_results_reactive()\n mat_for_excel <- NULL\n filtered_results_df <- NULL\n ebv_matrix_df <- NULL\n\n if (!is.null(ebv_results)) {\n m_ids <- unique(ebv_results$full_results$Male)\n f_ids <- unique(ebv_results$full_results$Female)\n mat_for_excel <- matrix(NA_real_, nrow = length(m_ids), ncol = length(f_ids),\n dimnames = list(m_ids, f_ids))\n\n if (nrow(ebv_results$filt_results_matrix) > 0) {\n for (i in seq_len(nrow(ebv_results$filt_results_matrix))) {\n m <- ebv_results$filt_results_matrix$Male[i]\n f <- ebv_results$filt_results_matrix$Female[i]\n val <- ebv_results$filt_results_matrix$EBV[i]\n if (!is.na(m) && !is.na(f) &&\n m %in% rownames(mat_for_excel) && f %in% colnames(mat_for_excel)) {\n mat_for_excel[m, f] <- val\n }\n }\n }\n\n filtered_results_df <- as.data.frame(ebv_results$filt_results_table)\n\n row_labels <- rownames(mat_for_excel)\n if (is.null(row_labels)) row_labels <- seq_len(nrow(mat_for_excel))\n ebv_matrix_df <- data.frame(\n Male = row_labels,\n mat_for_excel,\n check.names = FALSE,\n stringsAsFactors = FALSE\n )\n }\n\n formatted_results <- NULL\n if (!is.null(ocs_results_reactive())) {\n formatted_results <- tryCatch(\n format_ocs_results(ocs_results_reactive()),\n error = function(e) {\n message(\"format_ocs_results error: \", e$message)\n NULL\n }\n )\n }\n\n params_data <- data.frame(\n Parameter = c(\"Kinship Threshold\", \"Desired Inbreeding Rate\", \"Number of Offspring\", \"Analysis Date\"),\n Value = c(\n safe_char(input$thresh),\n safe_char(input$inbreeding_rate),\n safe_char(input$num_offspring),\n as.character(Sys.Date())\n ),\n stringsAsFactors = FALSE\n )\n\n ok <- FALSE\n tryCatch({\n if (use_openxlsx) {\n wb <- openxlsx::createWorkbook()\n\n openxlsx::addWorksheet(wb, \"README\")\n openxlsx::writeData(wb, \"README\", readme_text)\n\n if (!is.null(ebv_results)) {\n openxlsx::addWorksheet(wb, \"Filtered Results\")\n openxlsx::writeData(wb, \"Filtered Results\", filtered_results_df, rowNames = TRUE)\n\n openxlsx::addWorksheet(wb, \"EBV Matrix\")\n openxlsx::writeData(wb, \"EBV Matrix\", ebv_matrix_df, rowNames = FALSE)\n }\n\n if (!is.null(formatted_results)) {\n openxlsx::addWorksheet(wb, \"OCS Candidates\")\n openxlsx::writeData(wb, \"OCS Candidates\", formatted_results$candidate_table, rowNames = FALSE)\n\n openxlsx::addWorksheet(wb, \"Mating Plan\")\n openxlsx::writeData(wb, \"Mating Plan\", formatted_results$mating_table, rowNames = FALSE)\n }\n\n openxlsx::addWorksheet(wb, \"Parameters\")\n openxlsx::writeData(wb, \"Parameters\", params_data, rowNames = FALSE)\n\n openxlsx::saveWorkbook(wb, dest_file, overwrite = TRUE)\n } else {\n sheets <- list(\n README = data.frame(Text = readme_text, stringsAsFactors = FALSE),\n Parameters = params_data\n )\n if (!is.null(filtered_results_df)) sheets$`Filtered Results` <- filtered_results_df\n if (!is.null(ebv_matrix_df)) sheets$`EBV Matrix` <- ebv_matrix_df\n if (!is.null(formatted_results)) {\n sheets$`OCS Candidates` <- as.data.frame(formatted_results$candidate_table)\n sheets$`Mating Plan` <- as.data.frame(formatted_results$mating_table)\n }\n write_xlsx_pure(dest_file, sheets)\n }\n ok <- TRUE\n }, error = function(e) {\n message(\"Export error: \", e$message)\n writeLines(paste(\"Export failed:\", e$message), dest_file, useBytes = TRUE)\n })\n ok\n }\n\n observeEvent({\n list(\n ebv_results_reactive(),\n ocs_results_reactive(),\n input$thresh,\n input$inbreeding_rate,\n input$num_offspring\n )\n }, {\n tmp <- tempfile(pattern = \"allomate_export_\", fileext = \".xlsx\")\n if (generate_export_xlsx(tmp) && file.exists(tmp) && file.info(tmp)$size > 0) {\n old <- export_cache()\n export_cache(tmp)\n if (!is.null(old) && file.exists(old)) unlink(old, force = TRUE)\n } else if (file.exists(tmp)) {\n unlink(tmp, force = TRUE)\n }\n }, ignoreNULL = FALSE)\n\n session$onSessionEnded(function() {\n cache <- export_cache()\n if (!is.null(cache) && file.exists(cache)) unlink(cache, force = TRUE)\n })\n\n output$download_all_results <- downloadHandler(\n filename = function() {\n paste0(\"AlloMate_Complete_Results-\", Sys.Date(), \".xlsx\")\n },\n content = function(file) {\n cache <- export_cache()\n if (!is.null(cache) && file.exists(cache)) {\n file.copy(cache, file, overwrite = TRUE)\n } else {\n generate_export_xlsx(file)\n }\n },\n contentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\n )\n outputOptions(output, \"download_all_results\", suspendWhenHidden = FALSE)\n\n # Dynamic startup guide\n output$dynamic_guide <- renderUI({\n # Check for errors first\n current_error <- error_message()\n if (current_error != \"\") {\n return(HTML(paste0(\n \"
\",\n \"❌ Error occurred:<\/strong><\/p>\",\n \"\", current_error, \"<\/p>\",\n \"
💡 Need help? Check the Help tab for detailed documentation.<\/p>\",\n \"<\/div>\"\n )))\n }\n \n # Check current state\n has_candidates <- !is.null(input$candidate_file)\n has_pedigree <- !is.null(input$pedigree_file)\n has_kinship_threshold <- !is.null(input$thresh) && input$thresh < 1\n has_traits <- trait_counter() > 0 && any(sapply(1:trait_counter(), function(i) !is.null(input[[paste0(\"trait_file_\", i)]])))\n has_ocs_results <- !is.null(ocs_results_reactive())\n\n # Determine error type from error message, if not working properly, update the grep logic\n pedigree_error <- current_error != \"\" && grepl(\"error|pedigree|kinship\", current_error, ignore.case = TRUE)\n trait_error <- current_error != \"\" && grepl(\"error|ebv|trait|weight\", current_error, ignore.case = TRUE)\n ocs_error <- current_error != \"\" && grepl(\"error|ocs\", current_error, ignore.case = TRUE)\n\n cs <- candidate_status()\n candidate_ready <- isTRUE(cs$ok)\n candidate_error_flag <- !is.null(cs$error)\n\n # Helper to decide icon per step\n get_step_icon <- function(has_item, error_flag) {\n if (error_flag) {\n \"❌\"\n } else if (has_item) {\n \"✅\"\n } else {\n \"⬜\"\n }\n }\n \n # Build step-by-step guide\n steps <- c()\n \n # Step 1: Candidates\n step1_icon <- get_step_icon(candidate_ready, candidate_error_flag)\n steps <- c(steps, sprintf(\"
%s Step 1:<\/strong> Upload your candidate list to begin the analysis<\/p>\", step1_icon))\n \n # Step 2: Pedigree\n step2_icon <- get_step_icon(has_pedigree, pedigree_error)\n steps <- c(steps, sprintf(\"%s Step 2:<\/strong> Upload your pedigree file for kinship calculations<\/p>\", step2_icon))\n \n # Step 3: Kinship threshold\n if (has_pedigree) {\n steps <- c(steps, \"⚙️ Step 3:<\/strong> Set your kinship threshold (optional)<\/p>\")\n } else {\n steps <- c(steps, \"Step 3:<\/strong> Set your kinship threshold (optional)<\/p>\")\n }\n \n # Step 4: Traits\n step4_icon <- get_step_icon(has_traits, trait_error)\n steps <- c(steps, sprintf(\"%s Step 4:<\/strong> Add trait files and weights for breeding value analysis<\/p>\", step4_icon))\n \n # Step 5: OCS\n step5_icon <- get_step_icon(has_ocs_results, ocs_error)\n steps <- c(steps, sprintf(\"%s Step 5:<\/strong> Configure OCS parameters and run analysis<\/p>\", step5_icon))\n \n # Add completion message if all steps are done\n if (has_ocs_results) {\n steps <- c(steps, \n \"🎉 Analysis Complete!<\/strong><\/p>\",\n \"Final Step:<\/strong> Export your results using the download button below<\/p>\",\n \"Great job! Results are ready for review and export<\/p>\"\n )\n }\n \n HTML(paste(steps, collapse = \"\"))\n })\n \n # File status display\n output$file_status_display <- renderUI({\n # Check what files/data are ready\n has_candidates <- !is.null(input$candidate_file)\n has_pedigree <- !is.null(input$pedigree_file)\n has_ebv <- !is.null(ebv_results_reactive())\n has_ocs <- !is.null(ocs_results_reactive())\n \n # Check for errors\n current_error <- error_message()\n has_error <- current_error != \"\"\n \n cs <- candidate_status()\n candidate_ready <- isTRUE(cs$ok)\n candidate_error_flag <- !is.null(cs$error)\n\n # Determine error type from error message\n pedigree_error <- has_error && grepl(\"pedigree|kinship\", current_error, ignore.case = TRUE)\n ebv_error <- has_error && grepl(\"ebv|trait|weight\", current_error, ignore.case = TRUE)\n ocs_error <- has_error && grepl(\"ocs\", current_error, ignore.case = TRUE)\n \n # Helper function to determine status icon and text\n get_status <- function(has_data, uploaded, has_specific_error, ready_text = \"Ready\", pending_text = \"Not uploaded\", error_text = \"Error\") {\n if (has_specific_error) {\n list(icon = \"❌\", text = paste0(\"\", error_text, \"<\/span>\"))\n } else if (has_data) {\n list(icon = \"✅\", text = paste0(\"\", ready_text, \"<\/span>\"))\n } else if (uploaded) {\n list(icon = \"⬜\", text = paste0(\"Processing...<\/span>\"))\n } else {\n list(icon = \"⬜\", text = paste0(\"\", pending_text, \"<\/span>\"))\n }\n }\n \n # Candidate status with explicit tracking\n candidate_status_ui <- if (candidate_error_flag) {\n list(icon = \"❌\", text = \"Error<\/span>\")\n } else if (candidate_ready) {\n list(icon = \"✅\", text = \"Ready<\/span>\")\n } else if (has_candidates) {\n list(icon = \"⬜\", text = \"Processing...<\/span>\")\n } else {\n list(icon = \"⬜\", text = \"Not uploaded<\/span>\")\n }\n \n # Pedigree status\n pedigree_status <- get_status(has_pedigree, has_pedigree, pedigree_error, \n \"Ready\", \"Not uploaded\", \"Error\")\n \n # EBV status - can error if uploaded but processing failed\n ebv_status <- get_status(has_ebv, \n has_candidates && has_pedigree, \n ebv_error, \n \"Ready\", \"Pending\", \"Error\")\n \n # OCS status\n ocs_status <- get_status(has_ocs, FALSE, ocs_error, \n \"Ready\", \"Not run\", \"Error\")\n \n # Create status lines with emojis\n status_lines <- c(\n paste0(\n candidate_status_ui$icon,\n \" Candidate List:<\/strong> \",\n candidate_status_ui$text\n ),\n paste0(\n pedigree_status$icon,\n \" Pedigree Data:<\/strong> \",\n pedigree_status$text\n ),\n paste0(\n ebv_status$icon,\n \" EBV Matrix:<\/strong> \",\n ebv_status$text\n ),\n paste0(\n ocs_status$icon,\n \" OCS Results:<\/strong> \",\n ocs_status$text\n )\n )\n \n # Check if all files are ready for download\n all_ready <- candidate_ready && has_pedigree && has_ebv\n \n download_status <- if (has_error) {\n \"\n ⚠️ Error detected.<\/strong> Check the startup guide above for details.<\/p>\n <\/div>\"\n } else if (all_ready) {\n \"\n ✅ Download ready!<\/strong> All core data is available.<\/p>\n <\/div>\"\n } else {\n \"\n Upload required files to enable download.<\/p>\n <\/div>\"\n }\n \n HTML(paste0(\n \"
\",\n paste(status_lines, collapse = \"
\"),\n \"<\/div>\",\n download_status\n ))\n })\n \n output$pedigree_status_display <- renderUI({\n stats <- pedigree_validation_stats()\n if (is.null(stats)) {\n return(NULL)\n }\n\n get_count <- function(val) {\n if (is.null(val) || is.na(val)) {\n 0L\n } else {\n as.integer(val)\n }\n }\n\n format_count <- function(val) {\n format(get_count(val), big.mark = \",\", scientific = FALSE)\n }\n\n records <- format_count(stats$records_loaded)\n unknown_count <- get_count(stats$unknown_parent_count)\n circular_count <- get_count(stats$circular_reference_count)\n missing_count <- get_count(stats$missing_candidates)\n duplicates <- get_count(stats$duplicates_removed)\n\n green_box <- paste0(\n \"\",\n \"✅ \", records, \" records loaded\",\n \"<\/div>\"\n )\n\n # Build yellow box warnings only for non-zero counts\n yellow_warnings <- c()\n if (unknown_count > 0) {\n yellow_warnings <- c(yellow_warnings, \n paste0(\"⚠️ \", \n format_count(stats$unknown_parent_count), \n \" individuals with unknown parent(s) (treated as founders)<\/p>\"))\n }\n if (circular_count > 0) {\n yellow_warnings <- c(yellow_warnings,\n paste0(\"
⚠️ \", \n format_count(stats$circular_reference_count),\n \" circular references detected and broken at earliest generation<\/p>\"))\n }\n if (missing_count > 0) {\n yellow_warnings <- c(yellow_warnings,\n paste0(\"
⚠️ \", \n format_count(stats$missing_candidates),\n \" selection candidates missing from pedigree<\/p>\"))\n }\n \n yellow_box <- if (length(yellow_warnings) > 0) {\n paste0(\n \"
\",\n paste(yellow_warnings, collapse = \"\"),\n \"<\/div>\"\n )\n } else {\n \"\"\n }\n\n red_box <- if (duplicates > 0) {\n paste0(\n \"\",\n \"❌ \", format(duplicates, big.mark = \",\", scientific = FALSE), \" duplicates removed\",\n \"<\/div>\"\n )\n } else {\n \"\"\n }\n\n HTML(paste0(green_box, yellow_box, red_box))\n })\n \n observeEvent(input$add_trait, {\n trait_counter(trait_counter() + 1)\n })\n \n observeEvent(input$remove_trait, {\n if (trait_counter() > 1) {\n trait_counter(trait_counter() - 1)\n }\n })\n \n output$trait_inputs <- renderUI({\n create_trait_inputs(trait_counter())\n })\n \n # OCS trait inputs\n output$ocs_trait_inputs <- renderUI({\n req(input$ocs_trait_counter)\n create_ocs_trait_inputs(input$ocs_trait_counter)\n })\n \n candidates_data <- reactive({\n req(input$candidate_file)\n\n tryCatch({\n res <- read_candidates(input$candidate_file)\n candidate_status(list(ok = TRUE, error = NULL))\n\n current_err <- error_message()\n if (current_err != \"\" && grepl(\"^Error processing candidates\", current_err)) {\n error_message(\"\")\n }\n\n res\n }, error = function(e) {\n candidate_status(list(ok = FALSE, error = e$message))\n error_message(paste0(\"Error processing candidates: \", e$message))\n validate(need(FALSE, e$message))\n NULL\n })\n })\n \n pedigree_data <- reactiveVal(NULL)\n \n observeEvent(input$pedigree_file, {\n req(candidates_data())\n males <- candidates_data()$males\n females <- candidates_data()$females\n \n tryCatch({\n raw_ped <- readr::read_table(input$pedigree_file$datapath)\n cleaned_ped <- clean_pedigree(raw_ped, return_stats = TRUE)\n final_ped <- cleaned_ped$pedigree\n \n # Check for candidates missing from pedigree\n candidate_ids <- candidates_data()$candidates$id\n pedigree_ids <- as.character(raw_ped$id)\n missing_candidates <- sum(!candidate_ids %in% pedigree_ids)\n \n # Add missing candidates count to stats\n cleaned_ped$stats$missing_candidates <- missing_candidates\n \n kinship_res <- compute_kinship_matrix(final_ped, males, females)\n \n output$quadrants_table <- DT::renderDT({\n datatable(kinship_res$quads, options = list(ordering = FALSE, dom = \"t\"), rownames = TRUE) %>%\n formatStyle(colnames(kinship_res$quads), styleEqual(\n kinship_res$quads[1, ], c(\"lightgreen\", \"yellow\", \"orange\", \"coral\")\n ))\n })\n \n pedigree_data(list(results = kinship_res$results, quads = kinship_res$quads))\n pedigree_validation_stats(cleaned_ped$stats)\n \n error_message(\"\") # Clear any previous errors\n output$message1 <- renderText(\"✅ Kinship matrix generated successfully.\")\n }, error = function(e) {\n error_message(paste0(\"Error processing pedigree: \", e$message))\n pedigree_validation_stats(NULL)\n output$message1 <- renderText(\n paste0(\"❌ Error processing pedigree: Make sure your pedigree is clean and valid.\\n\",\n \"Original error: \", e$message)\n )\n })\n })\n \n observe({\n req(candidates_data())\n ebv_res <- process_ebvs(trait_counter(), input)\n req(ebv_res)\n \n joint_ebvs <- ebv_res$joint_ebvs\n rel_weights <- ebv_res$rel_weights\n weight_total <- ebv_res$weight_total\n \n ebv_cols <- paste0(\"EBV.\", seq_along(rel_weights))\n # Ensure EBV columns are numeric for matrix multiplication\n joint_ebvs[ebv_cols] <- lapply(joint_ebvs[ebv_cols], as.numeric)\n joint_ebvs$index_val <- as.vector(as.matrix(joint_ebvs[ebv_cols]) %*% rel_weights)\n \n cands <- candidates_data()$candidates\n males <- candidates_data()$males\n females <- candidates_data()$females\n \n cand_ebv <- left_join(cands, joint_ebvs, by = c(\"id\" = \"ID\")) %>%\n select(id, sex, index_val)\n \n m_ebv <- filter(cand_ebv, id %in% males) %>% select(id, index_val)\n f_ebv <- filter(cand_ebv, id %in% females) %>% select(id, index_val)\n \n ebv_matrix <- outer(m_ebv$index_val, f_ebv$index_val, function(x, y) round((x + y) / 2, 2))\n rownames(ebv_matrix) <- m_ebv$id\n colnames(ebv_matrix) <- f_ebv$id\n \n ebv_quads <- tibble(\n Data = \"EBV\",\n Q25 = quantile(ebv_matrix, 0.25),\n Q50 = quantile(ebv_matrix, 0.50),\n Q75 = quantile(ebv_matrix, 0.75),\n Q100 = quantile(ebv_matrix, 1.00)\n ) %>% column_to_rownames(\"Data\")\n \n quads_combined <- if (!is.null(pedigree_data())) {\n bind_rows(pedigree_data()$quads, ebv_quads)\n } else {\n ebv_quads\n }\n \n output$quadrants_table <- DT::renderDT({\n datatable(quads_combined, options = list(ordering = FALSE, dom = \"t\"), rownames = TRUE) %>%\n formatStyle(\"Q25\", backgroundColor = \"coral\") %>%\n formatStyle(\"Q50\", backgroundColor = \"orange\") %>%\n formatStyle(\"Q75\", backgroundColor = \"yellow\") %>%\n formatStyle(\"Q100\", backgroundColor = \"lightgreen\")\n })\n \n ebv_results <- as_tibble(ebv_matrix, rownames = \"Male\") %>%\n pivot_longer(-Male, names_to = \"Female\", values_to = \"EBV\")\n \n full_results <- if (!is.null(pedigree_data())) {\n left_join(pedigree_data()$results, ebv_results, by = c(\"Female\", \"Male\"))\n } else {\n relocate(mutate(ebv_results, Kinship = NA), Kinship, .after = EBV)\n }\n \n # For table: filter out crosses with EBV <=0 or kinship >= threshold\n filt_results_table <- full_results %>%\n filter(EBV > 0, (is.na(Kinship) | Kinship < input$thresh))\n \n # For Excel: mask EBVs for invalid crosses as NA (blank in Excel)\n filt_results_matrix <- full_results %>%\n mutate(EBV = ifelse(EBV <= 0 | (!is.na(Kinship) & Kinship >= input$thresh), NA, EBV))\n \n # Store results for download handler\n ebv_results_reactive(list(\n filt_results_table = filt_results_table,\n filt_results_matrix = filt_results_matrix,\n full_results = full_results,\n ebv_quads = ebv_quads\n ))\n \n output$matrix <- DT::renderDT({\n datatable(filt_results_table, rownames = TRUE) %>%\n formatStyle(\"EBV\", styleInterval(\n unlist(ebv_quads[1, c(\"Q25\", \"Q50\", \"Q75\")]),\n c(\"coral\", \"orange\", \"yellow\", \"lightgreen\")\n ))\n })\n \n output$message2 <- renderText(\n if (abs(weight_total - 1) > 1e-6)\n paste(\"⚠️ Warning: Trait weights do not sum to 1 (total =\", round(weight_total, 4), \")\")\n else\n \"✅ EBV matrix generated successfully.\"\n )\n \n # download handler defined at top-level above\n })\n \n #### OCS Server Logic ####\n \n observeEvent(input$force_greedy_mating, {\n options(allomate.force_greedy_mating = isTRUE(input$force_greedy_mating))\n }, ignoreNULL = FALSE)\n \n observeEvent(input$force_qp_greedy, {\n options(allomate.force_qp_greedy = isTRUE(input$force_qp_greedy))\n }, ignoreNULL = FALSE)\n \n observeEvent(input$run_ocs_btn, {\n req(input$pedigree_file, input$candidate_file)\n \n # Check if any OCS implementation is available (optiSel or custom fallback)\n if ((!exists(\"optisel_available\") || !optisel_available) && \n (!exists(\"custom_ocs_available\") || !custom_ocs_available)) {\n showModal(modalDialog(\n title = \"OCS Functionality Not Available\",\n \"Neither optiSel nor the custom OCS fallback could be loaded. \n Please check that all required packages are installed and restart the app.\",\n easyClose = TRUE\n ))\n return(NULL)\n }\n \n options(allomate.force_greedy_mating = isTRUE(input$force_greedy_mating))\n options(allomate.force_qp_greedy = isTRUE(input$force_qp_greedy))\n \n tryCatch({\n ped_data <- read.table(input$pedigree_file$datapath, header = TRUE)\n candidates <- read.table(input$candidate_file$datapath, header = TRUE)\n \n final_ped <- clean_pedigree(ped_data)\n kinship_matrix <- if (exists(\"kinship2_available\") && kinship2_available) {\n kinship2::kinship(final_ped)\n } else {\n fallback_kinship(final_ped)\n }\n \n ebv_result <- process_ebvs(trait_counter(), input)\n if (is.null(ebv_result) || abs(ebv_result$weight_total - 1) > 1e-6) {\n showModal(modalDialog(\n title = \"Invalid Weights\",\n \"Weights must sum to 1.\",\n easyClose = TRUE\n ))\n return(NULL)\n }\n \n joint_ebvs <- calculate_index(ebv_result$joint_ebvs, ebv_result$rel_weights)\n candidates <- left_join(candidates, joint_ebvs, by = c(\"id\" = \"ID\"))\n \n # Set seed for reproducibility when testing optiSel vs fallback\n set.seed(42)\n \n results <- run_ocs(\n candidates_df = candidates,\n kinship_matrix = kinship_matrix,\n ebv_index = candidates$index_val,\n desired_inbreeding_rate = input$inbreeding_rate,\n num_offspring = input$num_offspring\n )\n \n ocs_results_reactive(results)\n \n error_message(\"\") # Clear any previous errors\n \n # Format results for display\n formatted_results <- format_ocs_results(results)\n \n output$ocs_candidate_table <- DT::renderDT({\n formatted_results$candidate_table\n })\n \n # Switch to OCS tab to show results\n updateTabsetPanel(session, \"main_tabs\", selected = \"Optimum Contribution Selection\")\n \n }, error = function(e) {\n error_message(paste0(\"Error running OCS: \", e$message))\n showModal(modalDialog(\n title = \"Error\",\n paste(\"❌ Error running OCS:\", e$message),\n easyClose = TRUE\n ))\n })\n })\n \n output$ocs_mating_table <- DT::renderDT({\n req(ocs_results_reactive())\n results <- ocs_results_reactive()\n formatted_results <- format_ocs_results(results)\n formatted_results$mating_table %>%\n datatable(\n options = list(pageLength = 10, autoWidth = TRUE),\n rownames = FALSE\n )\n })\n \n output$ocs_solver_note <- renderUI({\n req(ocs_results_reactive())\n formatted_results <- format_ocs_results(ocs_results_reactive())\n info <- formatted_results$summary_stats$mating_info\n if (is.null(info) || is.na(info) || info == \"\") {\n return(NULL)\n }\n div(\n style = \"margin: 10px 0; padding: 10px; background-color: #fff8e1; border-left: 4px solid #ffb300; font-size: 13px;\",\n tags$strong(\"Solver note: \"), info\n )\n })\n \n #### R Code Display and Download ####\n \n # HTML escape function for code display\n htmlEscape <- function(text) {\n text <- gsub(\"&\", \"&\", text)\n text <- gsub(\"<\", \"<\", text)\n text <- gsub(\">\", \">\", text)\n text <- gsub('\"', \""\", text)\n text <- gsub(\"'\", \"'\", text)\n return(text)\n }\n \n # Function to read and format R code files\n format_r_code_content <- function() {\n # Define the R files to include\n r_files <- c(\n \"global.R\" = \"Global Setup and Package Loading\",\n \"R/load_functions.R\" = \"Function Loading Logic\", \n \"R/utils.R\" = \"Data Processing Functions\",\n \"R/ocs_helpers.R\" = \"OCS Calculation Functions\",\n \"R/ui_helpers.R\" = \"UI Helper Functions\",\n \"R/optsel_fallback.R\" = \"Custom OCS Implementation\"\n )\n \n # Determine the base path\n base_path <- if (app_dir) \".\" else \"app\"\n \n # Read and format each file\n formatted_sections <- list()\n \n for (file_path in names(r_files)) {\n full_path <- file.path(base_path, file_path)\n \n if (file.exists(full_path)) {\n tryCatch({\n file_content <- readLines(full_path, warn = FALSE, encoding = \"UTF-8\")\n file_content <- paste(file_content, collapse = \"\\n\")\n \n # Create formatted section\n section_html <- paste0(\n '',\n '📁 ', r_files[file_path], '<\/h4>',\n '',\n 'File:<\/strong> ', file_path, '
',\n 'Lines:<\/strong> ', length(strsplit(file_content, \"\\n\")[[1]]), '
',\n 'Description:<\/strong> ', r_files[file_path],\n '<\/div>',\n '', \n htmlEscape(file_content),\n '<\/code><\/pre>',\n '<\/div>'\n )\n \n formatted_sections[[file_path]] <- section_html\n }, error = function(e) {\n formatted_sections[[file_path]] <- paste0(\n '',\n '❌ Error reading file<\/h4>',\n '
Could not read file: ', file_path, '<\/p>',\n '
Error: ', e$message, '<\/p>',\n '<\/div>'\n )\n })\n } else {\n formatted_sections[[file_path]] <- paste0(\n '
',\n '❌ File not found<\/h4>',\n '
File not found: ', file_path, '<\/p>',\n '<\/div>'\n )\n }\n }\n \n # Create setup instructions\n setup_instructions <- paste0(\n '
',\n '🚀 Setup Instructions<\/h4>',\n '
To run this analysis independently in R:<\/strong><\/p>',\n '',\n '- Install required packages:<\/strong>
',\n 'install.packages(c(\"tidyverse\", \"shiny\", \"DT\", \"openxlsx\", \"quadprog\", \"kinship2\", \"optiSel\"))<\/code><\/li>',\n '- Load the code files:<\/strong> Copy the code sections above into separate .R files<\/li>',\n '
- Prepare your data:<\/strong> Ensure your input files match the expected format<\/li>',\n '
- Run the analysis:<\/strong> Execute the functions in the order shown above<\/li>',\n '<\/ol>',\n '
Note:<\/strong> The custom OCS fallback will be used if optiSel is not available.<\/p>',\n '<\/div>'\n )\n \n # Combine all sections\n full_content <- paste0(\n '',\n '🧬 AlloMate R Code Implementation<\/h1>',\n '
This page contains all the R code needed to implement the AlloMate analysis independently. ',\n 'The code is organized by function and includes all necessary data processing, kinship calculations, ',\n 'and optimum contribution selection algorithms.<\/p>',\n setup_instructions,\n paste(formatted_sections, collapse = \"\"),\n '<\/div>'\n )\n \n return(full_content)\n }\n \n # Render R code content\n output$r_code_content <- renderUI({\n HTML(format_r_code_content())\n })\n \n # Download R code functionality\n output$download_r_code <- downloadHandler(\n filename = function() {\n paste0(\"allomate_complete_script_\", format(Sys.Date(), \"%Y%m%d\"), \".R\")\n },\n content = function(file) {\n # Define the R files to include\n r_files <- c(\n \"global.R\" = \"# Global Setup and Package Loading\",\n \"R/load_functions.R\" = \"# Function Loading Logic\", \n \"R/utils.R\" = \"# Data Processing Functions\",\n \"R/ocs_helpers.R\" = \"# OCS Calculation Functions\",\n \"R/ui_helpers.R\" = \"# UI Helper Functions\",\n \"R/optsel_fallback.R\" = \"# Custom OCS Implementation\"\n )\n \n # Determine the base path\n base_path <- if (app_dir) \".\" else \"app\"\n \n # Create the complete script\n script_lines <- c(\n \"# AlloMate Complete R Script\",\n \"# Generated on:\", as.character(Sys.Date()),\n \"# This script contains all functions needed to run AlloMate analysis independently\",\n \"\",\n \"# =============================================================================\",\n \"# SETUP INSTRUCTIONS\",\n \"# =============================================================================\",\n \"# 1. Install required packages:\",\n \"# install.packages(c('tidyverse', 'shiny', 'DT', 'openxlsx', 'quadprog', 'kinship2', 'optiSel'))\",\n \"# 2. Load required libraries:\",\n \"# library(tidyverse)\",\n \"# library(openxlsx)\",\n \"# library(quadprog)\",\n \"# library(kinship2)\",\n \"# library(optiSel)\",\n \"# 3. Run this script to load all functions\",\n \"# 4. Use the functions as demonstrated in the comments\",\n \"\",\n \"# =============================================================================\",\n \"# FUNCTION DEFINITIONS\",\n \"# =============================================================================\",\n \"\"\n )\n \n for (file_path in names(r_files)) {\n full_path <- file.path(base_path, file_path)\n \n if (file.exists(full_path)) {\n tryCatch({\n file_content <- readLines(full_path, warn = FALSE, encoding = \"UTF-8\")\n \n # Add section header\n script_lines <- c(script_lines, \n paste0(\"# \", \"=\", strrep(\"=\", 70)),\n r_files[file_path],\n paste0(\"# \", \"=\", strrep(\"=\", 70)),\n \"\",\n file_content,\n \"\",\n \"\"\n )\n }, error = function(e) {\n script_lines <- c(script_lines,\n paste0(\"# Error reading file: \", file_path),\n paste0(\"# \", e$message),\n \"\",\n \"\"\n )\n })\n } else {\n script_lines <- c(script_lines,\n paste0(\"# File not found: \", file_path),\n \"\",\n \"\"\n )\n }\n }\n \n # Add usage example\n script_lines <- c(script_lines,\n \"# =============================================================================\",\n \"# USAGE EXAMPLE\",\n \"# =============================================================================\",\n \"# \",\n \"# # Load your data\",\n \"# candidates <- read.table('your_candidates.txt', header = TRUE)\",\n \"# pedigree <- read.table('your_pedigree.txt', header = TRUE)\",\n \"# \",\n \"# # Process data\",\n \"# candidates_data <- read_candidates(list(datapath = 'your_candidates.txt'))\",\n \"# final_ped <- clean_pedigree(pedigree)\",\n \"# kinship_matrix <- compute_kinship_matrix(final_ped, candidates_data$males, candidates_data$females)\",\n \"# \",\n \"# # Run OCS analysis\",\n \"# results <- run_ocs(candidates_df = candidates, kinship_matrix = kinship_matrix$results,\",\n \"# ebv_index = your_ebv_values, desired_inbreeding_rate = 0.05, num_offspring = 100)\",\n \"# \",\n \"# # View results\",\n \"# print(results)\",\n \"\"\n )\n \n # Write to file\n writeLines(script_lines, file)\n }\n )\n \n\n}","type":"text"},{"name":"ui.R","content":"library(shiny)\nlibrary(shinyjs)\nlibrary(DT)\n\n# Workaround for Chromium Issue 468227 (Chrome download attribute bug)\ndownloadButton <- function(...) {\n tag <- shiny::downloadButton(...)\n tag$attribs$download <- NULL\n tag\n}\n\nui <- function(request) {\n fluidPage(\n useShinyjs(), # enables shinyjs functions\n \n # Custom CSS for better help content styling\n tags$head(\n tags$style(HTML(\"\n .help-content h1 {\n color: #2c3e50;\n border-bottom: 3px solid #3498db;\n padding-bottom: 10px;\n margin-top: 30px;\n margin-bottom: 20px;\n }\n \n .help-content h2 {\n color: #34495e;\n border-left: 4px solid #3498db;\n padding-left: 15px;\n margin-top: 25px;\n margin-bottom: 15px;\n }\n \n .help-content h3 {\n color: #2c3e50;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n \n .help-content h4, .help-content h5, .help-content h6 {\n color: #34495e;\n margin-top: 15px;\n margin-bottom: 8px;\n }\n \n .help-content p {\n margin-bottom: 12px;\n text-align: justify;\n }\n \n .help-content ul, .help-content ol {\n margin-bottom: 15px;\n padding-left: 25px;\n }\n \n .help-content li {\n margin-bottom: 5px;\n }\n \n .help-content code {\n background-color: #f8f9fa;\n color: #e74c3c;\n padding: 2px 6px;\n border-radius: 3px;\n font-family: 'Courier New', monospace;\n font-size: 0.9em;\n }\n \n .help-content pre {\n background-color: #2c3e50;\n color: #ecf0f1;\n padding: 15px;\n border-radius: 5px;\n overflow-x: auto;\n margin: 15px 0;\n }\n \n .help-content pre code {\n background-color: transparent;\n color: inherit;\n padding: 0;\n }\n \n .help-content a {\n color: #3498db;\n text-decoration: none;\n border-bottom: 1px solid transparent;\n transition: border-bottom 0.3s ease;\n }\n \n .help-content a:hover {\n border-bottom: 1px solid #3498db;\n }\n \n .help-content hr {\n border: none;\n border-top: 2px solid #bdc3c7;\n margin: 25px 0;\n }\n \n .help-content blockquote {\n border-left: 4px solid #3498db;\n padding-left: 15px;\n margin: 15px 0;\n font-style: italic;\n color: #7f8c8d;\n }\n \n .help-content .emoji {\n font-size: 1.2em;\n margin-right: 5px;\n }\n \n .toc-container {\n background-color: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n padding: 20px;\n margin-bottom: 25px;\n }\n \n .toc-container h3 {\n margin-top: 0;\n color: #495057;\n border-bottom: 2px solid #007bff;\n padding-bottom: 10px;\n }\n \n .toc-link {\n color: #495057;\n text-decoration: none;\n display: block;\n padding: 3px 0;\n transition: color 0.3s ease;\n }\n \n .toc-link:hover {\n color: #007bff;\n text-decoration: underline;\n }\n \n .help-content {\n scroll-behavior: smooth;\n }\n \n .r-code-content h1 {\n color: #2c3e50;\n border-bottom: 3px solid #3498db;\n padding-bottom: 10px;\n margin-top: 30px;\n margin-bottom: 20px;\n }\n \n .r-code-content h2 {\n color: #34495e;\n border-left: 4px solid #3498db;\n padding-left: 15px;\n margin-top: 25px;\n margin-bottom: 15px;\n }\n \n .r-code-content h3 {\n color: #2c3e50;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n \n .r-code-content .code-section {\n background-color: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n padding: 20px;\n margin: 15px 0;\n }\n \n .r-code-content .code-section h4 {\n color: #495057;\n margin-top: 0;\n margin-bottom: 15px;\n border-bottom: 1px solid #dee2e6;\n padding-bottom: 8px;\n }\n \n .r-code-content pre {\n background-color: #2c3e50;\n color: #ecf0f1;\n padding: 15px;\n border-radius: 5px;\n overflow-x: auto;\n margin: 10px 0;\n font-size: 12px;\n line-height: 1.4;\n }\n \n .r-code-content pre code {\n background-color: transparent;\n color: inherit;\n padding: 0;\n }\n \n .r-code-content .file-info {\n background-color: #e3f2fd;\n border: 1px solid #2196f3;\n padding: 10px;\n border-radius: 5px;\n margin-bottom: 15px;\n font-size: 12px;\n }\n \n .r-code-content .setup-instructions {\n background-color: #fff3cd;\n border: 1px solid #ffeaa7;\n padding: 15px;\n border-radius: 5px;\n margin: 20px 0;\n }\n \n .r-code-content .setup-instructions h4 {\n color: #856404;\n margin-top: 0;\n }\n \n .r-code-content .setup-instructions ul {\n margin-bottom: 0;\n }\n \"))\n ),\n \n # JavaScript for smooth scrolling and TOC functionality\n tags$script(HTML(\"\n $(document).ready(function() {\n // Smooth scrolling for TOC links\n $('.toc-link').on('click', function(e) {\n e.preventDefault();\n var target = $(this).attr('href');\n var $target = $(target);\n if ($target.length) {\n $('.help-content').animate({\n scrollTop: $target.offset().top - 200\n }, 800);\n }\n });\n });\n \")),\n \n ## ─── Flex container with banner and AlloMate hex ───────────────────────────\n div(\n style = \"display: flex; align-items: center; justify-content: space-between; margin-bottom: 15px;\",\n \n # AlloMate hex (right)\n tags$img(\n src = \"allomate.png\",\n height = \"120px\",\n style = \"margin-left: 20px;\"\n ),\n \n # Logos banner (left)\n tags$img(\n src = \"logos2.png\",\n style = \"width: 67%; height: auto;\"\n )\n ),\n \n sidebarLayout(\n sidebarPanel(\n \n # Dynamic startup guide and feedback\n div(\n id = \"startup_guide\",\n style = \"background-color: #ffffff; border: 1px solid #dee2e6; padding: 10px; margin-bottom: 15px; border-radius: 5px;\",\n h4(\"🚀 Getting Started\"),\n htmlOutput(\"dynamic_guide\"),\n conditionalPanel(\n condition = \"output.webr_detected\",\n div(\n style = \"background-color: #fff3cd; border: 1px solid #ffeaa7; padding: 8px; margin-top: 10px; border-radius: 3px;\",\n p(\"🌐 WebR environment detected. Custom OCS fallback will be used since optiSel is not available in WebR.\")\n )\n ),\n div(\n style = \"text-align: center; margin-top: 15px; padding-top: 10px; border-top: 1px solid #dee2e6;\",\n actionButton(\"help_btn\", \"❓ Help\", \n style = \"background-color: #007bff; color: white; border: none; padding: 8px 16px; border-radius: 5px;\")\n )\n ),\n \n wellPanel(\n style = \"background-color: #e3f2fd; border: 2px solid #2196f3; padding: 15px; margin-bottom: 20px; border-radius: 8px;\",\n h4(\"🧬 Core Data Inputs\", style = \"color: #1565c0; margin-bottom: 15px; border-bottom: 1px solid #2196f3; padding-bottom: 8px;\"),\n p(\"These inputs are used by both Index Generation and OCS calculations:\", style = \"color: #6c757d; font-size: 12px; margin-bottom: 15px;\"),\n \n h5(\"Estimate progeny genetic merit\"),\n \n fileInput(\"candidate_file\", \"Upload list of candidates\",\n accept = c(\".csv\", \".txt\")),\n \n h5(\"Calculate kinship matrix\"),\n fileInput(\"pedigree_file\", \"Upload pedigree file\", accept = \".txt\"),\n uiOutput(\"pedigree_status_display\"),\n \n h5(\"Set kinship threshold\"),\n numericInput(\"thresh\", \"Max kinship allowed between mates:\",\n value = 1, min = 0, max = 1, step = 0.1),\n ),\n \n wellPanel(\n style = \"background-color: #ffebee; border: 2px solid #f44336; padding: 15px; margin-bottom: 20px; border-radius: 8px;\",\n h4(\"⚖️ Weighted EBVs\", style = \"color: #c62828; margin-bottom: 15px; border-bottom: 1px solid #f44336; padding-bottom: 8px;\"),\n p(\"Define traits and their relative importance for breeding decisions:\", style = \"color: #6c757d; font-size: 12px; margin-bottom: 15px;\"),\n \n h5(\"Traits (EBVs and weights)\"),\n uiOutput(\"trait_inputs\"),\n \n fluidRow(\n column(6, actionButton(\"add_trait\", \"➕ Add trait\")),\n column(6, actionButton(\"remove_trait\", \"➖ Remove trait\"))\n ),\n p(\"💡 Note: Adding or removing traits will require re-uploading files.\", \n style = \"color: #6c757d; font-size: 11px; font-style: italic; margin-top: 8px;\"),\n ),\n \n wellPanel(\n style = \"background-color: #fff3cd; border: 2px solid #ffeaa7; padding: 15px; margin-bottom: 20px; border-radius: 8px;\",\n h4(\"🎯 Optimum Contribution Selection\", style = \"color: #856404; margin-bottom: 15px; border-bottom: 1px solid #ffeaa7; padding-bottom: 8px;\"),\n p(\"Configure breeding objectives and constraints:\", style = \"color: #6c757d; font-size: 12px; margin-bottom: 15px;\"),\n \n verbatimTextOutput(\"package_status_text\"),\n \n h5(\"Breeding Objectives\"),\n numericInput(\"inbreeding_rate\", \"Desired Inbreeding Rate\", \n value = 0.05, min = 0.01, max = 0.2, step = 0.01),\n numericInput(\"num_offspring\", \"Number of Offspring\", \n value = 100, min = 10, step = 1),\n checkboxInput(\n \"force_greedy_mating\",\n \"Use greedy mating (browser-safe)\",\n value = isTRUE(getOption(\"allomate.force_greedy_mating\", FALSE))\n ),\n checkboxInput(\n \"force_qp_greedy\",\n \"Bypass quadprog (heuristic contributions)\",\n value = isTRUE(getOption(\"allomate.force_qp_greedy\", FALSE))\n ),\n helpText(\n style = \"color: #6c757d; font-size: 11px;\",\n strong(\"Greedy mating:\"), \" Browser-safe, near-optimal results.\",\n br(),\n strong(\"Bypass quadprog:\"), \" \",\n span(style = \"color: #dc3545;\", \"⚠️ Testing only—ignores inbreeding constraints!\")\n ),\n \n actionButton(\"run_ocs_btn\", \"Run OCS\", \n style = \"margin-top: 15px; width: 100%; background-color: #856404; color: white; border: none; padding: 10px; border-radius: 5px;\")\n ),\n \n wellPanel(\n style = \"background-color: #d4edda; border: 2px solid #c3e6cb; padding: 15px; margin-bottom: 20px; border-radius: 8px;\",\n h4(\"📊 Export Results\", style = \"color: #155724; margin-bottom: 15px; border-bottom: 1px solid #c3e6cb; padding-bottom: 8px;\"),\n p(\"Download all results in a single Excel file with multiple tabs:\", style = \"color: #6c757d; font-size: 12px; margin-bottom: 15px;\"),\n downloadButton(\"download_all_results\", \"📥 Export All Results\", \n style = \"width: 100%; background-color: #28a745; color: white; border: none; padding: 10px; border-radius: 5px; margin-bottom: 10px;\"),\n \n # File status display box\n div(\n style = \"background-color: #f8f9fa; border: 1px solid #dee2e6; padding: 12px; margin-bottom: 10px; border-radius: 5px;\",\n h5(\"📋 File Status\", style = \"color: #495057; margin-top: 0; margin-bottom: 10px; font-size: 14px;\"),\n htmlOutput(\"file_status_display\")\n ),\n \n actionButton(\"view_r_code_btn\", \"📝 View R Code\", \n style = \"width: 100%; background-color: #17a2b8; color: white; border: none; padding: 10px; border-radius: 5px;\")\n )\n ),\n mainPanel(\n tabsetPanel(\n id = \"main_tabs\",\n tabPanel(\"Kinship and EBV\",\n verbatimTextOutput(\"message1\"),\n \n verbatimTextOutput(\"message2\"),\n \n DTOutput(\"quadrants_table\"),\n DTOutput(\"matrix\")\n ),\n tabPanel(\"Optimum Contribution Selection\",\n DTOutput(\"ocs_candidate_table\"),\n uiOutput(\"ocs_solver_note\"),\n br(),\n DTOutput(\"ocs_mating_table\")\n ),\n tabPanel(\"R Code\",\n div(\n style = \"padding: 20px; background-color: #f8f9fa; border-radius: 8px; margin: 10px 0; max-height: 80vh; overflow-y: auto; position: relative;\",\n div(\n style = \"background-color: white; padding: 25px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\",\n div(\n style = \"text-align: center; margin-bottom: 25px; padding-bottom: 15px; border-bottom: 2px solid #007bff;\",\n h2(\"📝 R Code Implementation\", style = \"color: #007bff; margin-bottom: 10px;\"),\n p(\"Complete R code for implementing AlloMate analysis independently\", style = \"color: #666; font-size: 16px;\")\n ),\n div(\n style = \"text-align: center; margin-bottom: 20px;\",\n downloadButton(\"download_r_code\", \"📥 Download Complete R Script\", \n style = \"background-color: #28a745; color: white; border: none; padding: 12px 24px; border-radius: 5px; font-size: 14px;\")\n ),\n div(\n style = \"line-height: 1.6; font-size: 14px;\",\n htmlOutput(\"r_code_content\")\n )\n )\n )\n ),\n tabPanel(\"Help\",\n div(\n style = \"padding: 20px; background-color: #f8f9fa; border-radius: 8px; margin: 10px 0; max-height: 80vh; overflow-y: auto; position: relative;\",\n div(\n style = \"background-color: white; padding: 25px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\",\n div(\n style = \"text-align: center; margin-bottom: 25px; padding-bottom: 15px; border-bottom: 2px solid #007bff;\",\n h2(\"📚 AlloMate Documentation\", style = \"color: #007bff; margin-bottom: 10px;\"),\n p(\"Complete user guide and technical documentation\", style = \"color: #666; font-size: 16px;\")\n ),\n div(\n style = \"line-height: 1.6; font-size: 14px;\",\n htmlOutput(\"help_content\")\n ),\n div(\n style = \"text-align: center; margin-top: 30px; padding-top: 20px; border-top: 1px solid #dee2e6;\",\n actionButton(\"back_to_top\", \"⬆️ Back to Top\", \n style = \"background-color: #6c757d; color: white; border: none; padding: 8px 16px; border-radius: 5px;\")\n )\n )\n )\n )\n )\n )\n )\n )\n}","type":"text"},{"name":"R/load_functions.R","content":"# Load All Functions\n# This file sources all function files in the correct order\n\n# Initialize variables if they don't exist (for standalone usage)\nif (!exists(\"optisel_available\")) {\n optisel_available <<- FALSE\n}\nif (!exists(\"kinship2_available\")) {\n kinship2_available <<- FALSE\n}\n\n# Use the global app_dir variable set in global.R, or determine it if not available\nif (exists(\"app_dir\")) {\n # Use existing app_dir variable\n} else {\n # Check if we're in the app directory or project root\n if (dir.exists(\"R\") && dir.exists(\"www\")) {\n app_dir <- TRUE\n } else if (dir.exists(\"app\") && dir.exists(\"scripts\")) {\n app_dir <- FALSE\n } else {\n app_dir <- FALSE\n }\n}\n\n# Check if we're in a Shiny server environment\nis_shiny_server <- grepl(\"^/home/web_user/\", getwd()) || grepl(\"^/tmp/\", getwd()) || grepl(\"^/var/folders/\", getwd())\n\n# Load utility functions (data processing, file handling)\nif (app_dir) {\n source(\"R/utils.R\")\n} else {\n source(\"app/R/utils.R\")\n}\n\n# Load OCS helper functions\nif (app_dir) {\n source(\"R/ocs_helpers.R\")\n} else {\n source(\"app/R/ocs_helpers.R\")\n}\n\n# Load UI helper functions\nif (app_dir) {\n source(\"R/ui_helpers.R\")\n} else {\n source(\"app/R/ui_helpers.R\")\n}\n\n# Load pure XLSX writer utilities\nif (app_dir) {\n source(\"R/pure_xlsx_writer.R\")\n} else {\n source(\"app/R/pure_xlsx_writer.R\")\n}\n\n# Helper function to check if optiSel package is actually loaded\nis_optisel_loaded <- function() {\n tryCatch({\n # Check if optiSel namespace exists\n ns <- asNamespace(\"optiSel\")\n # Check if candes exists in the namespace\n return(exists(\"candes\", envir = ns, inherits = FALSE))\n }, error = function(e) {\n # Namespace doesn't exist - optiSel not loaded\n return(FALSE)\n })\n}\n\n# Helper function to safely assign function aliases\n# Checks if binding is locked before attempting assignment\nsafe_assign_alias <- function(alias_name, custom_function) {\n # First check if optiSel is loaded - if so, don't try to overwrite\n if (is_optisel_loaded()) {\n # Check if this function exists in optiSel namespace\n tryCatch({\n ns <- asNamespace(\"optiSel\")\n if (exists(alias_name, envir = ns, inherits = FALSE)) {\n # optiSel is loaded and has this function - don't overwrite\n return(FALSE)\n }\n }, error = function(e) {\n # Namespace check failed - proceed with assignment\n })\n }\n \n # Check if the alias already exists in global environment\n if (exists(alias_name, envir = .GlobalEnv)) {\n # Try to assign - will fail if locked\n tryCatch({\n assign(alias_name, custom_function, envir = .GlobalEnv)\n return(TRUE)\n }, error = function(e) {\n # Binding is locked - can't overwrite\n # This is expected if optiSel is loaded, so we'll silently skip\n return(FALSE)\n })\n } else {\n # Function doesn't exist - safe to assign\n assign(alias_name, custom_function, envir = .GlobalEnv)\n return(TRUE)\n }\n}\n\n# Load custom OCS fallback (if not already loaded)\nif (!exists(\"custom_candes\")) {\n if (is_shiny_server) {\n # In Shiny server environment, look for fallback in R directory\n fallback_path <- \"R/optsel_fallback.R\"\n } else {\n # Normal environment\n if (app_dir) {\n fallback_path <- \"R/optsel_fallback.R\"\n } else {\n fallback_path <- \"scripts/optsel_fallback.R\"\n }\n }\n \n if (file.exists(fallback_path)) {\n source(fallback_path)\n \n # Verify that the fallback functions were loaded\n if (exists(\"custom_candes\") && exists(\"custom_opticont\") && exists(\"custom_noffspring\") && exists(\"custom_matings\")) {\n # Set the flag to indicate fallback is available\n custom_ocs_available <<- TRUE\n \n # Only create function aliases if optiSel is not actually loaded\n # (optiSel functions are locked bindings and cannot be overwritten)\n if ((!exists(\"optisel_available\") || !optisel_available) && !is_optisel_loaded()) {\n # Use safe assignment to avoid locked binding errors\n safe_assign_alias(\"candes\", custom_candes)\n safe_assign_alias(\"opticont\", custom_opticont)\n safe_assign_alias(\"noffspring\", custom_noffspring)\n safe_assign_alias(\"matings\", custom_matings)\n }\n }\n }\n} else {\n # If functions already exist, make sure the flag is set and create aliases\n if (exists(\"custom_candes\") && exists(\"custom_opticont\") && exists(\"custom_noffspring\") && exists(\"custom_matings\")) {\n custom_ocs_available <<- TRUE\n \n # Only create function aliases if optiSel is not actually loaded\n # (optiSel functions are locked bindings and cannot be overwritten)\n if ((!exists(\"optisel_available\") || !optisel_available) && !is_optisel_loaded()) {\n # Use safe assignment to avoid locked binding errors\n safe_assign_alias(\"candes\", custom_candes)\n safe_assign_alias(\"opticont\", custom_opticont)\n safe_assign_alias(\"noffspring\", custom_noffspring)\n safe_assign_alias(\"matings\", custom_matings)\n }\n }\n}\n\n\n","type":"text"},{"name":"R/ocs_helpers.R","content":"# OCS (Optimum Contribution Selection) Functions\n# Functions for running OCS analysis with either optiSel or custom fallback\n\n#' Run OCS analysis with unified interface\n#' @param candidates_df Candidates data frame with id, sex, and index_val columns\n#' @param kinship_matrix Kinship matrix for all individuals\n#' @param ebv_index Vector of breeding value indices\n#' @param desired_inbreeding_rate Target inbreeding rate constraint\n#' @param num_offspring Number of offspring to allocate\n#' @return List with Candidate and Mating results\nrun_ocs <- function(candidates_df, kinship_matrix, ebv_index, desired_inbreeding_rate, num_offspring) {\n using_optisel <- isTRUE(get0(\"optisel_available\", inherits = TRUE)) &&\n requireNamespace(\"optiSel\", quietly = TRUE)\n using_fallback <- isTRUE(get0(\"custom_ocs_available\", inherits = TRUE)) && !using_optisel\n\n if (!using_optisel && !using_fallback) {\n stop(\"❌ OCS functionality is not available. Load optiSel or enable the custom fallback before running OCS.\")\n }\n\n phen <- data.frame(\n Indiv = candidates_df$id,\n Sex = ifelse(candidates_df$sex == \"M\", \"male\", \"female\"),\n BV = ebv_index,\n isCandidate = TRUE,\n stringsAsFactors = FALSE\n )\n candidate_ids <- candidates_df$id\n sKin <- kinship_matrix[candidate_ids, candidate_ids, drop = FALSE]\n rownames(sKin) <- candidate_ids\n colnames(sKin) <- candidate_ids\n\n if (using_optisel) {\n cand <- optiSel::candes(phen = phen, pKin = sKin)\n con <- list(ub.pKin = desired_inbreeding_rate)\n Offspring <- optiSel::opticont(method = \"max.BV\", cand = cand, con = con)\n } else {\n cand <- custom_candes(phen = phen, pKin = sKin)\n con <- list(ub.pKin = desired_inbreeding_rate)\n Offspring <- custom_opticont(method = \"max.BV\", cand = cand, con = con)\n }\n\n if (using_optisel && \"summary\" %in% names(Offspring)) {\n # Check if any constraints failed (OK = FALSE)\n failed_constraints <- Offspring$summary[Offspring$summary$OK == FALSE & !is.na(Offspring$summary$OK), ]\n if (nrow(failed_constraints) > 0) {\n constraint_names <- paste(failed_constraints$Name, collapse = \", \")\n stop(paste(\"❌ OCS optimization failed: Constraints not met:\", constraint_names,\n \"Try increasing the inbreeding rate threshold or check your kinship matrix.\"))\n }\n }\n \n # Guard against empty or invalid solution (infeasible constraint)\n if (is.null(Offspring$parent) || nrow(Offspring$parent) == 0) {\n stop(paste0(\"❌ No feasible OCS solution found under the current inbreeding constraint (ub.pKin = \",\n desired_inbreeding_rate, \"). \",\n \"This typically means your candidate population is too closely related to meet this target. \",\n \"Try increasing the inbreeding rate threshold (e.g., 0.10 or higher) or reducing the number of offspring.\"))\n }\n \n # Preserve BV if present; backfill from phen if missing\n Candidate <- Offspring$parent\n if (!\"BV\" %in% names(Candidate)) {\n Candidate$BV <- phen$BV[match(Candidate$Indiv, phen$Indiv)]\n }\n \n # Additional check: verify non-zero contributions\n if (nrow(Candidate) == 0 || all(Candidate$oc == 0)) {\n stop(paste0(\"❌ No feasible OCS solution found under the current inbreeding constraint (ub.pKin = \", \n desired_inbreeding_rate, \"). \",\n \"This typically means your candidate population is too closely related to meet this target. \",\n \"Try increasing the inbreeding rate threshold (e.g., 0.10 or higher) or reducing the number of offspring.\"))\n }\n \n # Safe to call noffspring now that Candidate has valid data\n Candidate$n <- if (using_optisel) {\n optiSel::noffspring(Candidate, num_offspring)$nOff\n } else {\n custom_noffspring(Candidate, num_offspring)$nOff\n }\n Candidate <- filter(Candidate, n > 0)\n if (length(unique(Candidate$Sex)) < 2) {\n stop(\"❌ OCS resulted in only one sex being selected. Cannot generate mating pairs.\")\n }\n \n # For real optiSel package, subset kinship matrix to match selected candidates\n if (using_optisel) {\n selected_ids <- Candidate$Indiv\n sKin_subset <- sKin[selected_ids, selected_ids, drop = FALSE]\n Mating <- optiSel::matings(Candidate, Kin = sKin_subset)\n \n # optiSel doesn't include kinship values in mating results, so add them manually\n if (nrow(Mating) > 0 && !\"Kin\" %in% names(Mating)) {\n Mating$Kin <- vapply(\n seq_len(nrow(Mating)),\n function(i) {\n sire <- Mating$Sire[i]\n dam <- Mating$Dam[i]\n sKin[sire, dam]\n },\n numeric(1)\n )\n }\n } else {\n Mating <- custom_matings(Candidate, Kin = sKin)\n }\n list(Candidate = Candidate, Mating = Mating)\n}\n\n#' Validate OCS inputs before running analysis\n#' @param candidates_df Candidates data frame\n#' @param kinship_matrix Kinship matrix\n#' @param ebv_index Breeding value indices\n#' @param desired_inbreeding_rate Target inbreeding rate\n#' @param num_offspring Number of offspring\n#' @return TRUE if valid, throws error if invalid\nvalidate_ocs_inputs <- function(candidates_df, kinship_matrix, ebv_index, \n desired_inbreeding_rate, num_offspring) {\n # Check candidates data\n if (is.null(candidates_df) || nrow(candidates_df) == 0) {\n stop(\"❌ No candidates provided\")\n }\n \n required_cols <- c(\"id\", \"sex\")\n missing_cols <- setdiff(required_cols, names(candidates_df))\n if (length(missing_cols) > 0) {\n stop(paste(\"❌ Missing required columns in candidates:\", paste(missing_cols, collapse = \", \")))\n }\n \n # Check sex balance\n n_males <- sum(candidates_df$sex == \"M\")\n n_females <- sum(candidates_df$sex == \"F\")\n if (n_males == 0 || n_females == 0) {\n stop(\"❌ Need both males and females for OCS analysis\")\n }\n \n # Check kinship matrix\n if (is.null(kinship_matrix) || nrow(kinship_matrix) == 0) {\n stop(\"❌ Kinship matrix is empty or invalid\")\n }\n \n # Check EBV indices\n if (is.null(ebv_index) || length(ebv_index) != nrow(candidates_df)) {\n stop(\"❌ EBV indices must match number of candidates\")\n }\n \n # Check parameters\n if (desired_inbreeding_rate <= 0 || desired_inbreeding_rate > 1) {\n stop(\"❌ Desired inbreeding rate must be between 0 and 1\")\n }\n \n if (num_offspring <= 0 || num_offspring %% 1 != 0) {\n stop(\"❌ Number of offspring must be a positive integer\")\n }\n \n TRUE\n}\n\n#' Format OCS results for display\n#' @param results OCS results list\n#' @return Formatted results for UI display\nformat_ocs_results <- function(results) {\n # Format candidate table\n candidate_table <- results$Candidate %>%\n select(Indiv, Sex, oc, n) %>%\n mutate(`Optimal Contribution (%)` = round(oc * 100, 1)) %>%\n rename(`ID` = Indiv, `# of offspring` = n) %>%\n select(ID, Sex, `Optimal Contribution (%)`, `# of offspring`)\n \n # Format mating table - handle different column naming schemes\n mating_df <- results$Mating\n \n # Check and standardize column names (optiSel vs custom implementation)\n if (\"Sire\" %in% names(mating_df)) {\n mating_df <- mating_df %>% rename(Male = Sire)\n }\n if (\"Dam\" %in% names(mating_df)) {\n mating_df <- mating_df %>% rename(Female = Dam)\n }\n if (\"Kin\" %in% names(mating_df)) {\n mating_df <- mating_df %>% rename(Kinship = Kin)\n } else if (\"kinship\" %in% names(mating_df)) {\n mating_df <- mating_df %>% rename(Kinship = kinship)\n } else if (\"coeff\" %in% names(mating_df)) {\n mating_df <- mating_df %>% rename(Kinship = coeff)\n } else {\n # If no kinship column found, add a placeholder\n mating_df$Kinship <- NA\n }\n \n mating_table <- tryCatch({\n mating_df %>% mutate(across(everything(), as.character))\n }, error = function(e) {\n # Fallback: convert to data frame and then to character\n as.data.frame(lapply(mating_df, as.character), stringsAsFactors = FALSE)\n })\n \n # Calculate summary statistics - handle different kinship column names\n kinship_values <- NA\n if (\"Kin\" %in% names(results$Mating)) {\n kinship_values <- results$Mating$Kin\n } else if (\"kinship\" %in% names(results$Mating)) {\n kinship_values <- results$Mating$kinship\n } else if (\"coeff\" %in% names(results$Mating)) {\n kinship_values <- results$Mating$coeff\n } else if (\"Kinship\" %in% names(mating_df)) {\n kinship_values <- mating_df$Kinship\n }\n \n summary_stats <- list(\n n_candidates = nrow(results$Candidate),\n n_males = sum(results$Candidate$Sex == \"male\"),\n n_females = sum(results$Candidate$Sex == \"female\"),\n n_matings = nrow(results$Mating),\n total_offspring = {\n total_n <- sum(results$Candidate$n)\n if (exists(\"optisel_available\") && optisel_available) {\n # optiSel's noffspring returns per-parent counts (both sexes),\n # which sum to approximately 2 * intended offspring. Display intended total.\n as.integer(round(total_n / 2))\n } else {\n total_n\n }\n },\n mean_kinship = if (all(is.na(kinship_values))) NA else mean(kinship_values, na.rm = TRUE),\n mean_contribution = mean(results$Candidate$oc),\n mating_info = {\n info <- attr(results$Mating, \"info\")\n if (is.null(info)) NA_character_ else info\n }\n )\n \n list(\n candidate_table = candidate_table,\n mating_table = mating_table,\n summary_stats = summary_stats\n )\n}\n\n#' Reset OCS runtime state (fallback only)\n#' Clears any global aliases and performs GC when custom fallback is active.\nreset_ocs_runtime <- function() {\n invisible(FALSE)\n}\n\n#' Create Excel workbook with OCS results\n#' @param results OCS results list\n#' @param params OCS parameters used\n#' @return Workbook object ready for saving\ncreate_ocs_workbook <- function(results, params = NULL) {\n wb <- openxlsx::createWorkbook()\n \n # Add README sheet\n openxlsx::addWorksheet(wb, \"README\")\n readme_text <- c(\n \"Optimum Contribution Selection Results\",\n \"\",\n paste(\"Generated:\", Sys.Date()),\n \"\",\n \"Parameters used:\",\n if (!is.null(params)) {\n c(\n paste(\"- Target inbreeding rate:\", params$inbreeding_rate),\n paste(\"- Number of offspring:\", params$num_offspring),\n paste(\"- Implementation:\", if (exists(\"custom_ocs_available\") && custom_ocs_available) \"Custom fallback\" else \"optiSel\")\n )\n } else {\n \"Parameters not recorded\"\n },\n \"\",\n \"Sheets included:\",\n \"1. Optimal Contributions - Selected candidates and their contributions\",\n \"2. Mating Plan - Optimal mate pairings to minimize inbreeding\",\n \"\",\n \"The patterns in your genetic data have been thoroughly analyzed.\"\n )\n openxlsx::writeData(wb, \"README\", readme_text)\n \n # Add optimal contributions\n openxlsx::addWorksheet(wb, \"Optimal Contributions\")\n contrib_df <- results$Candidate %>%\n select(Indiv, Sex, oc, n) %>%\n mutate(`Contribution (%)` = round(oc * 100, 2)) %>%\n rename(`ID` = Indiv, `# Offspring` = n)\n openxlsx::writeData(wb, \"Optimal Contributions\", contrib_df)\n \n # Add mating plan\n openxlsx::addWorksheet(wb, \"Mating Plan\")\n \n # Handle different column naming schemes for mating results\n mating_export <- results$Mating\n \n # Standardize kinship column name\n if (\"Kin\" %in% names(mating_export)) {\n mating_export <- mating_export %>% mutate(Kinship = round(Kin, 4))\n } else if (\"kinship\" %in% names(mating_export)) {\n mating_export <- mating_export %>% mutate(Kinship = round(kinship, 4))\n } else if (\"coeff\" %in% names(mating_export)) {\n mating_export <- mating_export %>% mutate(Kinship = round(coeff, 4))\n } else {\n mating_export$Kinship <- NA\n }\n \n # Select and rename columns based on what's available\n if (all(c(\"Sire\", \"Dam\") %in% names(mating_export))) {\n mating_df <- mating_export %>%\n select(Sire, Dam, Kinship, n) %>%\n rename(`# Matings` = n)\n } else if (all(c(\"Male\", \"Female\") %in% names(mating_export))) {\n mating_df <- mating_export %>%\n select(Male, Female, Kinship, n) %>%\n rename(`# Matings` = n)\n } else {\n # Fallback if column names are different\n mating_df <- mating_export %>%\n rename(`# Matings` = n)\n }\n openxlsx::writeData(wb, \"Mating Plan\", mating_df)\n \n wb\n}\n","type":"text"},{"name":"R/optsel_fallback.R","content":"# Custom OCS Implementation Functions\n# Note: All required packages are loaded in global.R\n\n#### Custom OCS Implementation Functions ####\n\n#' Create candidate object similar to optiSel::candes\n#' This structures data for optimization algorithms\ncustom_candes <- function(phen, pKin, quiet = FALSE) {\n # Validate inputs with Shadow Broker precision\n if(!all(c(\"Indiv\", \"Sex\", \"BV\", \"isCandidate\") %in% names(phen))) {\n stop(\"❌ phen must contain columns: Indiv, Sex, BV, isCandidate\")\n }\n \n # Extract candidates only\n candidates <- phen %>% filter(isCandidate == TRUE)\n \n # Calculate current population parameters\n mean_bv <- mean(candidates$BV, na.rm = TRUE)\n var_bv <- var(candidates$BV, na.rm = TRUE)\n \n # Structure the data as the Shadow Broker would organize her archives\n cand_obj <- list(\n phen = phen,\n candidates = candidates,\n n_candidates = nrow(candidates),\n n_males = sum(candidates$Sex == \"male\"),\n n_females = sum(candidates$Sex == \"female\"),\n kinship = pKin,\n current = data.frame(\n Name = \"BV\",\n Type = \"trait\",\n Val = mean_bv,\n Var = var_bv\n )\n )\n \n if(!quiet) {\n\n }\n \n class(cand_obj) <- \"custom_candes\"\n return(cand_obj)\n}\n\n#' Custom implementation of optiSel::opticont\n#' Uses quadratic programming (quadprog) to solve OCS problem\ncustom_opticont <- function(method, cand, con, quiet = FALSE) {\n target_trait <- substr(method, 5, nchar(method))\n\n if (target_trait != \"BV\") {\n stop(\"❌ Currently only BV optimization is supported\")\n }\n\n # Check if quadprog is available\n if (!requireNamespace(\"quadprog\", quietly = TRUE)) {\n stop(\"❌ quadprog package is required for OCS fallback. Please install it with: install.packages('quadprog')\")\n }\n\n if (!quiet) {\n cat(\"--- Optimization Diagnostics ---\\n\")\n }\n\n candidates <- cand$candidates\n n <- nrow(candidates)\n\n male_idx <- which(candidates$Sex == \"male\")\n female_idx <- which(candidates$Sex == \"female\")\n\n candidate_ids <- candidates$Indiv\n K <- cand$kinship[candidate_ids, candidate_ids, drop = FALSE]\n K <- 0.5 * (K + t(K))\n K <- as.matrix(K)\n storage.mode(K) <- \"double\"\n bv_vec <- as.numeric(candidates$BV)\n\n target_kinship <- if (!is.null(con$ub.pKin)) {\n con$ub.pKin\n } else {\n kin_vals <- K[upper.tri(K)]\n if (length(kin_vals) == 0) {\n mean(diag(K))\n } else {\n mean(kin_vals)\n }\n }\n\n kin_tolerance <- 1e-5\n\n enforce_sex_balance <- function(oc) {\n oc <- pmax(oc, 0)\n if (length(male_idx) > 0) {\n total_male <- sum(oc[male_idx])\n if (total_male > 0) {\n oc[male_idx] <- oc[male_idx] * 0.5 / total_male\n } else {\n oc[male_idx] <- rep(0.5 / length(male_idx), length(male_idx))\n }\n }\n if (length(female_idx) > 0) {\n total_female <- sum(oc[female_idx])\n if (total_female > 0) {\n oc[female_idx] <- oc[female_idx] * 0.5 / total_female\n } else {\n oc[female_idx] <- rep(0.5 / length(female_idx), length(female_idx))\n }\n }\n oc\n }\n\n if (isTRUE(getOption(\"allomate.force_qp_greedy\", FALSE))) {\n if (!quiet) {\n cat(\"Solver used : heuristic (quadprog bypassed)\\n\")\n }\n shifted_bv <- bv_vec - min(bv_vec, na.rm = TRUE)\n oc_raw <- if (all(shifted_bv <= 1e-12)) {\n rep(1 / n, n)\n } else {\n shifted_bv\n }\n oc_raw <- oc_raw / sum(oc_raw)\n oc <- enforce_sex_balance(oc_raw)\n\n parent_df <- candidates %>%\n mutate(oc = oc, BV = bv_vec) %>%\n select(Indiv, Sex, oc, BV)\n\n mean_kinship_next <- as.numeric(t(oc) %*% K %*% oc)\n\n if (!quiet) {\n top_df <- parent_df %>% arrange(desc(oc)) %>% head(5)\n cat(\"\\n--- OCS Optimization Diagnostics ---\\n\")\n cat(sprintf(\"Solver used : heuristic (quadprog bypassed)\\n\"))\n cat(sprintf(\"Target kinship : %.5f\\n\", target_kinship))\n cat(sprintf(\"Achieved kinship : %.5f\\n\", mean_kinship_next))\n cat(sprintf(\"Mean BV : %.5f\\n\", sum(oc * bv_vec)))\n cat(\"Top contributions:\\n\")\n print(top_df)\n cat(\"-------------------------------------\\n\\n\")\n }\n\n result <- list(\n parent = parent_df,\n mean.kin = mean_kinship_next,\n mean.bv = sum(oc * bv_vec),\n info = \"Heuristic contribution (quadprog bypassed)\",\n solver = \"heuristic\"\n )\n\n class(result) <- \"custom_opticont\"\n return(result)\n }\n\n tryCatch({\n best <- local({\n solve_qp_for_lambda <- function(lambda) {\n Dmat <- 2 * lambda * K\n dvec <- as.numeric(bv_vec)\n\n male_col <- numeric(n)\n female_col <- numeric(n)\n if (length(male_idx) > 0) male_col[male_idx] <- 1\n if (length(female_idx) > 0) female_col[female_idx] <- 1\n\n if (sum(male_col) == 0 || sum(female_col) == 0) {\n stop(\"❌ Need at least one male and one female among candidates to enforce sex-balance constraints.\")\n }\n\n Amat <- cbind(male_col, female_col, diag(1, n))\n bvec <- c(0.5, 0.5, rep(0, n))\n\n storage.mode(Dmat) <- \"double\"\n storage.mode(Amat) <- \"double\"\n dvec <- as.numeric(dvec)\n bvec <- as.numeric(bvec)\n\n eigen_values <- eigen(Dmat, symmetric = TRUE, only.values = TRUE)$values\n if (any(eigen_values < 1e-8)) {\n Dmat <- Dmat + diag(1e-6, n)\n }\n\n sol <- tryCatch(\n quadprog::solve.QP(Dmat = Dmat, dvec = dvec, Amat = Amat, bvec = bvec, meq = 2),\n error = function(e) stop(paste(\"QP solve failed:\", e$message))\n )\n oc_qp <- enforce_sex_balance(sol$solution)\n kin <- as.numeric(t(oc_qp) %*% K %*% oc_qp)\n list(oc = oc_qp, kin = kin)\n }\n\n low <- 1e-6\n high <- 1e6\n best_local <- NULL\n\n for (iter in seq_len(30)) {\n lambda <- exp((log(low) + log(high)) / 2)\n current <- solve_qp_for_lambda(lambda)\n\n if (is.null(best_local) || abs(current$kin - target_kinship) < abs(best_local$kin - target_kinship)) {\n best_local <- current\n }\n\n if (abs(current$kin - target_kinship) < kin_tolerance) {\n best_local <- current\n break\n }\n\n if (current$kin > target_kinship) {\n low <- lambda\n } else {\n high <- lambda\n }\n }\n\n best_local\n })\n\n oc <- enforce_sex_balance(best$oc)\n\n parent_df <- candidates %>%\n mutate(oc = oc, BV = bv_vec) %>%\n select(Indiv, Sex, oc, BV)\n\n mean_kinship_next <- as.numeric(t(oc) %*% K %*% oc)\n \n if (!quiet) {\n top_df <- parent_df %>% arrange(desc(oc)) %>% head(5)\n cat(\"\\n--- OCS Optimization Diagnostics ---\\n\")\n cat(sprintf(\"Solver used : quadprog\\n\"))\n cat(sprintf(\"Target kinship : %.5f\\n\", target_kinship))\n cat(sprintf(\"Achieved kinship : %.5f\\n\", mean_kinship_next))\n cat(sprintf(\"Mean BV : %.5f\\n\", sum(oc * bv_vec)))\n cat(\"Top contributions:\\n\")\n print(top_df)\n cat(\"-------------------------------------\\n\\n\")\n }\n\n result <- list(\n parent = parent_df,\n mean.kin = mean_kinship_next,\n mean.bv = sum(oc * bv_vec),\n info = \"Optimization successful (quadprog)\",\n solver = \"quadprog\"\n )\n\n class(result) <- \"custom_opticont\"\n return(result)\n }, error = function(e) {\n stop(paste(\"❌ Optimization failed:\", e$message))\n })\n}\n\n#' Calculate number of offspring from optimum contributions\n#' Replicates optiSel::noffspring functionality\ncustom_noffspring <- function(Candidate, N) {\n if(!all(c(\"Indiv\", \"Sex\", \"oc\") %in% names(Candidate))) {\n stop(\"❌ Candidate must contain columns: Indiv, Sex, oc\")\n }\n\n has_bv <- \"BV\" %in% names(Candidate)\n\n raw_offspring <- N * Candidate$oc\n\n males <- Candidate$Sex == \"male\"\n females <- Candidate$Sex == \"female\"\n\n nOff <- numeric(nrow(Candidate))\n\n if(sum(males) > 0) {\n male_raw <- raw_offspring[males]\n male_int <- floor(male_raw)\n male_frac <- male_raw - male_int\n male_oc <- Candidate$oc[males]\n male_bv <- if (has_bv) Candidate$BV[males] else rep(0, sum(males))\n\n need <- as.integer(N/2 - sum(male_int))\n if(need > 0) {\n ord <- order(male_frac, male_oc, male_bv, decreasing = TRUE)\n idx <- ord[seq_len(min(need, length(ord)))]\n male_int[idx] <- male_int[idx] + 1\n }\n nOff[males] <- male_int\n }\n\n if(sum(females) > 0) {\n female_raw <- raw_offspring[females]\n female_int <- floor(female_raw)\n female_frac <- female_raw - female_int\n female_oc <- Candidate$oc[females]\n female_bv <- if (has_bv) Candidate$BV[females] else rep(0, sum(females))\n\n need <- as.integer(N/2 - sum(female_int))\n if(need > 0) {\n ord <- order(female_frac, female_oc, female_bv, decreasing = TRUE)\n idx <- ord[seq_len(min(need, length(ord)))]\n female_int[idx] <- female_int[idx] + 1\n }\n nOff[females] <- female_int\n }\n\n data.frame(\n Indiv = Candidate$Indiv,\n nOff = nOff\n )\n}\n\n#' Mate allocation algorithm\n#' Replicates optiSel::matings functionality\ncustom_matings <- function(Candidate, Kin, quiet = FALSE) {\n active_candidates <- Candidate %>% dplyr::filter(n > 0)\n\n males <- active_candidates %>% dplyr::filter(Sex == \"male\")\n females <- active_candidates %>% dplyr::filter(Sex == \"female\")\n\n if (nrow(males) == 0 || nrow(females) == 0) {\n stop(\"❌ Need at least one male and one female with n > 0\")\n }\n\n male_ids <- males$Indiv\n female_ids <- females$Indiv\n supply <- as.integer(males$n)\n demand <- as.integer(females$n)\n\n K_mf <- Kin[male_ids, female_ids, drop = FALSE]\n costs <- as.matrix(K_mf)\n storage.mode(costs) <- \"double\"\n\n platform_tag <- tolower(R.version$platform)\n force_greedy <- isTRUE(getOption(\"allomate.force_greedy_mating\", FALSE))\n detected_webr <- isTRUE(get0(\"is_webr\", inherits = TRUE)) || grepl(\"emscripten|wasm\", platform_tag)\n use_greedy <- detected_webr || force_greedy\n lp_available <- requireNamespace(\"lpSolve\", quietly = TRUE)\n\n announce_algorithm <- function(label) {\n if (!quiet) cat(\"Mating algorithm:\", label, \"\\n\")\n }\n\n run_greedy <- function(info_label) {\n announce_algorithm(info_label)\n\n n_m <- length(supply)\n n_f <- length(demand)\n X <- matrix(0L, nrow = n_m, ncol = n_f)\n\n pairs <- expand.grid(m = seq_len(n_m), f = seq_len(n_f),\n KEEP.OUT.ATTRS = FALSE, stringsAsFactors = FALSE)\n pairs$cost <- costs[cbind(pairs$m, pairs$f)]\n pairs <- pairs[order(pairs$cost, pairs$m, pairs$f), , drop = FALSE]\n\n remaining_supply <- supply\n remaining_demand <- demand\n\n for (k in seq_len(nrow(pairs))) {\n i <- pairs$m[k]\n j <- pairs$f[k]\n if (remaining_supply[i] <= 0L || remaining_demand[j] <= 0L) next\n assignable <- min(remaining_supply[i], remaining_demand[j])\n if (assignable > 0L) {\n X[i, j] <- X[i, j] + as.integer(assignable)\n remaining_supply[i] <- remaining_supply[i] - assignable\n remaining_demand[j] <- remaining_demand[j] - assignable\n if (sum(remaining_supply) == 0L || sum(remaining_demand) == 0L) break\n }\n }\n\n if (sum(remaining_supply) != 0L || sum(remaining_demand) != 0L) {\n stop(\"❌ Greedy mating allocation incomplete. Check supply/demand consistency.\")\n }\n\n idx <- which(X > 0, arr.ind = TRUE)\n if (nrow(idx) == 0) {\n stop(\"❌ No mating assignments produced.\")\n }\n\n matings_df <- dplyr::tibble(\n Sire = male_ids[idx[, 1]],\n Dam = female_ids[idx[, 2]],\n n = as.integer(X[idx]),\n Kin = costs[idx]\n ) %>%\n dplyr::arrange(Kin)\n\n mean_inbreeding <- sum(matings_df$Kin * matings_df$n) / sum(matings_df$n)\n attr(matings_df, \"objval\") <- mean_inbreeding\n attr(matings_df, \"info\") <- info_label\n\n if (!quiet) {\n cat(\"\\n--- Mating Diagnostics ---\\n\")\n cat(sprintf(\"Total matings: %d\\n\", sum(matings_df$n)))\n cat(sprintf(\"Mean offspring kinship: %.5f\\n\", mean_inbreeding))\n cat(\"--------------------------\\n\\n\")\n }\n\n matings_df\n }\n\n greedy_label <- if (detected_webr) {\n \"Greedy allocation (webR, lpSolve skipped)\"\n } else if (force_greedy) {\n \"Greedy allocation (forced via option)\"\n } else {\n \"Greedy allocation (lpSolve unavailable)\"\n }\n\n if (use_greedy || !lp_available) {\n return(run_greedy(greedy_label))\n }\n\n announce_algorithm(\"lpSolve transportation\")\n\n sol <- tryCatch(\n lpSolve::lp.transport(\n cost.mat = costs,\n direction = \"min\",\n row.signs = rep(\"=\", length(supply)),\n row.rhs = supply,\n col.signs = rep(\"=\", length(demand)),\n col.rhs = demand\n ),\n error = function(e) {\n if (!quiet) {\n cat(\"lpSolve error:\", e$message, \"\\nFalling back to greedy mating.\\n\")\n }\n NULL\n }\n )\n\n if (is.null(sol) || is.null(sol$status) || sol$status != 0) {\n if (!quiet && !is.null(sol) && !is.null(sol$status) && sol$status != 0) {\n cat(\"lpSolve returned non-zero status:\", sol$status, \"→ fallback to greedy mating.\\n\")\n }\n return(run_greedy(\"Greedy allocation (lpSolve failure fallback)\"))\n }\n\n X <- matrix(sol$solution, nrow = length(supply), ncol = length(demand), byrow = TRUE)\n\n idx <- which(X > 0, arr.ind = TRUE)\n matings_df <- dplyr::tibble(\n Sire = male_ids[idx[, 1]],\n Dam = female_ids[idx[, 2]],\n n = as.integer(X[idx]),\n Kin = costs[idx]\n ) %>%\n dplyr::arrange(Kin)\n\n mean_inbreeding <- sum(matings_df$Kin * matings_df$n) / sum(matings_df$n)\n attr(matings_df, \"objval\") <- mean_inbreeding\n attr(matings_df, \"info\") <- \"Minimum-cost transportation mating (lpSolve)\"\n\n if (!quiet) {\n cat(\"\\n--- Mating Diagnostics ---\\n\")\n cat(sprintf(\"Total matings: %d\\n\", sum(matings_df$n)))\n cat(sprintf(\"Mean offspring kinship: %.5f\\n\", mean_inbreeding))\n cat(\"--------------------------\\n\\n\")\n }\n\n matings_df\n}\n\n#' Main OCS function combining all steps\nrun_custom_ocs <- function(candidates_df, kinship_matrix, ebv_index, \n desired_inbreeding_rate, num_offspring) {\n \n # Prepare phenotype data in required format\n phen <- data.frame(\n Indiv = candidates_df$id,\n Sex = ifelse(candidates_df$sex == \"M\", \"male\", \"female\"),\n BV = ebv_index,\n isCandidate = TRUE,\n stringsAsFactors = FALSE\n )\n \n # Ensure kinship matrix has correct dimensions and names\n candidate_ids <- candidates_df$id\n sKin <- kinship_matrix[candidate_ids, candidate_ids]\n rownames(sKin) <- candidate_ids\n colnames(sKin) <- candidate_ids\n \n # Step 1: Create candidate object\n cand <- custom_candes(phen = phen, pKin = sKin)\n \n # Step 2: Run optimization\n con <- list(ub.pKin = desired_inbreeding_rate)\n offspring_result <- custom_opticont(method = \"max.BV\", cand = cand, con = con)\n \n # Step 3: Calculate number of offspring\n Candidate <- offspring_result$parent\n offspring_counts <- custom_noffspring(Candidate, num_offspring)\n Candidate$n <- offspring_counts$nOff\n \n # Filter candidates with offspring\n Candidate <- filter(Candidate, n > 0)\n \n # Validate we have both sexes\n if(length(unique(Candidate$Sex)) < 2) {\n stop(\"❌ OCS resulted in only one sex being selected. Adjust parameters.\")\n }\n \n # Step 4: Mate allocation\n Mating <- custom_matings(Candidate, Kin = sKin)\n \n list(Candidate = Candidate, Mating = Mating)\n}\n","type":"text"},{"name":"R/pure_xlsx_writer.R","content":"## Pure R XLSX writer utilities\n## Provides minimal functionality to create multi-sheet XLSX workbooks\n## without depending on external packages such as openxlsx. Designed to\n## work inside WebR where compiled extensions are unavailable.\n\n#' Convert an integer column index to an Excel-style column label.\n#' @param index Positive integer column index (1-based).\n#' @return Column label (e.g. 1 -> \"A\", 28 -> \"AB\").\nexcel_column_label <- function(index) {\n stopifnot(index >= 1)\n label <- \"\"\n while (index > 0) {\n remainder <- (index - 1) %% 26\n label <- paste0(intToUtf8(65 + remainder), label)\n index <- (index - 1) %/% 26\n }\n label\n}\n\n#' Escape XML special characters.\n#' @param x Character vector.\n#' @return Escaped character vector safe for XML content.\nxml_escape <- function(x) {\n x <- gsub(\"&\", \"&\", x, fixed = TRUE)\n x <- gsub(\"<\", \"<\", x, fixed = TRUE)\n x <- gsub(\">\", \">\", x, fixed = TRUE)\n x <- gsub(\"\\\"\", \""\", x, fixed = TRUE)\n x <- gsub(\"'\", \"'\", x, fixed = TRUE)\n x\n}\n\n#' Retrieve precomputed CRC32 lookup table.\n#' @return Integer vector of length 256 with CRC32 values.\nget_crc32_table <- local({\n table <- NULL\n function() {\n if (is.null(table)) {\n polynomial <- -306674912L # 0xEDB88320 in two's complement\n tbl <- integer(256)\n for (i in 0:255) {\n crc <- as.integer(i)\n for (j in 1:8) {\n if (bitwAnd(crc, 1L) != 0L) {\n crc <- bitwXor(bitwShiftR(crc, 1L), polynomial)\n } else {\n crc <- bitwShiftR(crc, 1L)\n }\n }\n tbl[i + 1L] <- crc\n }\n table <<- tbl\n }\n table\n }\n})\n\n#' Compute CRC32 checksum for a raw vector.\n#' @param raw_vec Raw vector.\n#' @return Signed 32-bit integer representing CRC32.\ncrc32_bytes <- function(raw_vec) {\n crc_table <- get_crc32_table()\n crc <- bitwNot(0L)\n if (length(raw_vec) > 0) {\n bytes <- as.integer(raw_vec)\n for (b in bytes) {\n idx <- bitwAnd(bitwXor(crc, b), 0xFFL) + 1L\n crc <- bitwXor(bitwShiftR(crc, 8L), crc_table[idx])\n }\n }\n bitwNot(crc)\n}\n\n#' Convert POSIXct timestamp to DOS date/time components.\n#' @param timestamp POSIXct timestamp.\n#' @return List with `date` and `time` integer components.\nto_dos_datetime <- function(timestamp) {\n if (is.na(timestamp)) {\n timestamp <- Sys.time()\n }\n lt <- as.POSIXlt(timestamp, tz = \"UTC\")\n year <- lt$year + 1900\n if (year < 1980) {\n year <- 1980\n }\n dos_date <- bitwShiftL(as.integer(year - 1980L), 9L) +\n bitwShiftL(as.integer(lt$mon + 1L), 5L) +\n as.integer(lt$mday)\n dos_time <- bitwShiftL(as.integer(lt$hour), 11L) +\n bitwShiftL(as.integer(lt$min), 5L) +\n as.integer(floor(lt$sec / 2))\n list(date = dos_date, time = dos_time)\n}\n\n#' Write a 16-bit little-endian value.\n#' @param value Integer value (0-65535).\n#' @return Raw vector of length 2.\nwrite_le16 <- function(value) {\n value <- as.integer(value)\n if (value < 0) {\n value <- (value + 65536L) %% 65536L\n }\n lo <- value %% 256L\n hi <- (value %/% 256L) %% 256L\n as.raw(c(lo, hi))\n}\n\n#' Write a 32-bit little-endian value.\n#' @param value Integer/double value (0-4294967295).\n#' @return Raw vector of length 4.\nwrite_le32 <- function(value) {\n value <- as.numeric(value)\n if (value < 0) {\n value <- value + 4294967296\n }\n bytes <- numeric(4)\n for (i in 1:4) {\n bytes[i] <- value %% 256\n value <- floor(value / 256)\n }\n as.raw(as.integer(bytes))\n}\n\n#' Create a ZIP archive without external dependencies (store method).\n#' @param output_file Destination ZIP file path.\n#' @param base_dir Directory containing files to archive.\n#' @param files Character vector of file paths relative to `base_dir`.\nwrite_zip_no_compress <- function(output_file, base_dir, files) {\n if (length(files) == 0) {\n stop(\"No files supplied to write_zip_no_compress().\")\n }\n\n con <- file(output_file, \"wb\")\n on.exit(close(con), add = TRUE)\n\n entries <- vector(\"list\", length(files))\n offset <- 0\n\n for (i in seq_along(files)) {\n rel_path <- files[i]\n file_path <- file.path(base_dir, rel_path)\n file_info <- file.info(file_path)\n if (!isTRUE(file_info$isdir %in% c(FALSE, NA))) {\n next\n }\n\n size <- if (is.finite(file_info$size)) as.integer(file_info$size) else 0L\n data <- readBin(file_path, \"raw\", n = size)\n crc <- crc32_bytes(data)\n dos_dt <- to_dos_datetime(file_info$mtime)\n name_raw <- charToRaw(rel_path)\n\n header <- c(\n write_le32(0x04034B50),\n write_le16(20L),\n write_le16(0L),\n write_le16(0L),\n write_le16(dos_dt$time),\n write_le16(dos_dt$date),\n write_le32(crc),\n write_le32(length(data)),\n write_le32(length(data)),\n write_le16(length(name_raw)),\n write_le16(0L)\n )\n\n writeBin(header, con)\n writeBin(name_raw, con)\n if (length(data) > 0) {\n writeBin(data, con)\n }\n\n entries[[i]] <- list(\n filename = rel_path,\n crc = crc,\n size = length(data),\n time = dos_dt$time,\n date = dos_dt$date,\n offset = offset\n )\n\n offset <- offset + length(header) + length(name_raw) + length(data)\n }\n\n central_dir_start <- offset\n\n valid_entries <- Filter(Negate(is.null), entries)\n\n for (entry in valid_entries) {\n name_raw <- charToRaw(entry$filename)\n central_header <- c(\n write_le32(0x02014B50),\n write_le16(20L),\n write_le16(20L),\n write_le16(0L),\n write_le16(0L),\n write_le16(entry$time),\n write_le16(entry$date),\n write_le32(entry$crc),\n write_le32(entry$size),\n write_le32(entry$size),\n write_le16(length(name_raw)),\n write_le16(0L),\n write_le16(0L),\n write_le16(0L),\n write_le16(0L),\n write_le32(0L),\n write_le32(entry$offset)\n )\n\n writeBin(central_header, con)\n writeBin(name_raw, con)\n\n offset <- offset + length(central_header) + length(name_raw)\n }\n\n central_dir_size <- offset - central_dir_start\n end_record <- c(\n write_le32(0x06054B50),\n write_le16(0L),\n write_le16(0L),\n write_le16(length(valid_entries)),\n write_le16(length(valid_entries)),\n write_le32(central_dir_size),\n write_le32(central_dir_start),\n write_le16(0L)\n )\n\n writeBin(end_record, con)\n\n invisible(output_file)\n}\n\n#' Prepare arbitrary input as a standard data frame with character columns\n#' as plain characters (not factors).\n#' @param data Object to coerce.\n#' @return Standard data.frame.\ncoerce_sheet_data <- function(data) {\n if (inherits(data, \"tbl_df\")) {\n data <- as.data.frame(data)\n } else if (is.vector(data) && !is.list(data)) {\n data <- data.frame(Value = data, stringsAsFactors = FALSE)\n }\n\n if (!inherits(data, \"data.frame\")) {\n data <- as.data.frame(data, stringsAsFactors = FALSE)\n }\n\n for (col in names(data)) {\n if (is.factor(data[[col]])) {\n data[[col]] <- as.character(data[[col]])\n }\n }\n\n data\n}\n\n#' Gather string content from a data frame (including headers) for the\n#' shared strings table.\n#' @param df Data frame.\n#' @return Character vector of strings (with duplicates).\ngather_sheet_strings <- function(df) {\n strings <- character()\n\n if (ncol(df) == 0) {\n return(strings)\n }\n\n strings <- c(strings, colnames(df))\n\n for (col in seq_along(df)) {\n column <- df[[col]]\n\n if (inherits(column, c(\"Date\", \"POSIXct\", \"POSIXt\", \"difftime\"))) {\n column <- as.character(column)\n } else if (is.logical(column)) {\n column <- ifelse(is.na(column), NA_character_, ifelse(column, \"TRUE\", \"FALSE\"))\n } else if (!is.numeric(column)) {\n column <- as.character(column)\n }\n\n if (!is.numeric(column)) {\n strings <- c(strings, column[!is.na(column)])\n }\n }\n\n strings\n}\n\n#' Build XML for a worksheet.\n#' @param df Data frame representing the sheet (headers included).\n#' @param strings_map Named integer vector mapping strings to indices.\n#' @return Character vector with XML lines.\nbuild_sheet_xml <- function(df, strings_map) {\n n_rows <- nrow(df)\n n_cols <- ncol(df)\n\n xml <- c(\n '',\n '',\n ''\n )\n\n total_rows <- if (n_cols == 0) 0 else (n_rows + 1)\n\n if (total_rows == 0) {\n xml <- c(xml, '<\/sheetData>', '<\/worksheet>')\n return(xml)\n }\n\n for (row_idx in seq_len(total_rows)) {\n cells <- character()\n\n for (col_idx in seq_len(n_cols)) {\n col_label <- excel_column_label(col_idx)\n cell_ref <- paste0(col_label, row_idx)\n\n if (row_idx == 1) {\n header_val <- colnames(df)[col_idx]\n if (nzchar(header_val)) {\n string_key <- as.character(header_val)\n str_index <- strings_map[[string_key]]\n if (!is.null(str_index)) {\n cells <- c(cells, sprintf('%d<\/v><\/c>', cell_ref, str_index))\n }\n }\n } else {\n value <- df[[col_idx]][row_idx - 1]\n\n if (is.na(value)) {\n next\n }\n\n if (inherits(value, c(\"Date\", \"POSIXct\", \"POSIXt\", \"difftime\"))) {\n value <- as.character(value)\n }\n\n if (is.logical(value)) {\n value <- ifelse(value, \"TRUE\", \"FALSE\")\n }\n\n if (is.numeric(value)) {\n numeric_val <- format(value, scientific = FALSE, trim = TRUE)\n cells <- c(cells, sprintf('%s<\/v><\/c>', cell_ref, numeric_val))\n } else {\n string_val <- as.character(value)\n if (nzchar(string_val)) {\n str_index <- strings_map[[string_val]]\n if (!is.null(str_index)) {\n cells <- c(cells, sprintf('%d<\/v><\/c>', cell_ref, str_index))\n }\n } else {\n cells <- c(cells, sprintf('', cell_ref))\n }\n }\n }\n }\n\n if (length(cells) > 0) {\n xml <- c(xml, sprintf('', row_idx), cells, '<\/row>')\n } else {\n xml <- c(xml, sprintf('', row_idx))\n }\n }\n\n xml <- c(xml, '<\/sheetData>', '<\/worksheet>')\n xml\n}\n\n#' Sanitize sheet names to comply with Excel restrictions.\n#' @param names Character vector of names.\n#' @return Safe, unique sheet names.\nsanitize_sheet_names <- function(names) {\n safe <- gsub(\"[\\\\\\\\/*:?\\\\n\\\\r\\\\t\\\\[\\\\]]\", \"_\", names)\n safe[nchar(safe) == 0] <- \"Sheet\"\n safe <- substr(safe, 1, 31)\n make.unique(safe, sep = \"_\")\n}\n\n#' Minimal styles XML content.\n#' @return Character vector of XML lines.\nstyles_xml_content <- function() {\n c(\n '',\n '',\n '<\/font><\/fonts>',\n '<\/fill><\/fill><\/fills>',\n ' <\/border><\/borders>',\n '<\/cellStyleXfs>',\n '<\/cellXfs>',\n '<\/cellStyles>',\n '<\/styleSheet>'\n )\n}\n\n#' Create a simple shared strings XML document.\n#' @param unique_strings Character vector of unique strings.\n#' @param total_count Total number of string occurrences in workbook.\n#' @return Character vector of XML lines.\nshared_strings_xml <- function(unique_strings, total_count) {\n unique_count <- length(unique_strings)\n header <- sprintf('',\n total_count, unique_count)\n xml <- c('', header)\n\n if (unique_count > 0) {\n for (value in unique_strings) {\n escaped <- xml_escape(value)\n xml <- c(xml, sprintf('%s<\/t><\/si>', escaped))\n }\n }\n\n c(xml, '<\/sst>')\n}\n\n#' Generate XML for workbook relationships.\n#' @param sheet_files Character vector of worksheet filenames.\n#' @return Character vector of XML lines.\nworkbook_rels_xml <- function(sheet_files) {\n rels <- c('',\n '')\n\n for (i in seq_along(sheet_files)) {\n rels <- c(rels, sprintf('',\n i, sheet_files[i]))\n }\n\n next_id <- length(sheet_files) + 1\n rels <- c(rels,\n sprintf('', next_id),\n sprintf('', next_id + 1),\n '<\/Relationships>')\n rels\n}\n\n#' Generate workbook XML.\n#' @param sheet_names Character vector of sheet names.\n#' @return Character vector of XML lines.\nworkbook_xml <- function(sheet_names) {\n xml <- c('',\n '',\n '')\n\n for (i in seq_along(sheet_names)) {\n xml <- c(xml, sprintf('', xml_escape(sheet_names[i]), i, i))\n }\n\n c(xml, '<\/sheets>', '<\/workbook>')\n}\n\n#' Generate [Content_Types].xml content.\n#' @param sheet_files Character vector of worksheet filenames.\n#' @return Character vector of XML lines.\ncontent_types_xml <- function(sheet_files) {\n xml <- c('',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '')\n\n for (file in sheet_files) {\n xml <- c(xml, sprintf('', file))\n }\n\n c(xml, '<\/Types>')\n}\n\n#' Generate docProps/core.xml content.\n#' @param creator Workbook creator name.\n#' @param timestamp Timestamp string in W3CDTF.\n#' @return Character vector of XML lines.\ncore_props_xml <- function(creator, timestamp) {\n c(\n '',\n '',\n sprintf('%s<\/dc:creator>', xml_escape(creator)),\n sprintf('%s<\/cp:lastModifiedBy>', xml_escape(creator)),\n sprintf('%s<\/dcterms:created>', timestamp),\n sprintf('%s<\/dcterms:modified>', timestamp),\n '<\/cp:coreProperties>'\n )\n}\n\n#' Generate docProps/app.xml content.\n#' @param sheet_names Character vector of sheet names.\n#' @return Character vector of XML lines.\napp_props_xml <- function(sheet_names) {\n sheet_count <- length(sheet_names)\n titles <- paste(sprintf('%s<\/vt:lpstr>', xml_escape(sheet_names)), collapse = '')\n\n c(\n '',\n '',\n 'AlloMate<\/Application>',\n '0<\/DocSecurity>',\n 'false<\/ScaleCrop>',\n 'Worksheets<\/vt:lpstr><\/vt:variant>',\n sprintf('%d', sheet_count),\n '<\/vt:i4><\/vt:variant><\/vt:vector><\/HeadingPairs>',\n sprintf('%s<\/vt:vector><\/TitlesOfParts>', sheet_count, titles),\n '<\/Company>',\n 'false<\/LinksUpToDate>',\n 'false<\/SharedDoc>',\n 'false<\/HyperlinksChanged>',\n '16.0000<\/AppVersion>',\n '<\/Properties>'\n )\n}\n\n#' Generate top-level relationships XML.\n#' @return Character vector of XML lines.\nroot_relationships_xml <- function() {\n c(\n '',\n '',\n '',\n '',\n '',\n '<\/Relationships>'\n )\n}\n\n#' Write an XLSX file using only base R functionality.\n#' @param file Destination file path.\n#' @param sheets Named list of sheet data. Each element is coerced to a data frame.\n#' @param creator Optional creator/author string.\nwrite_xlsx_pure <- function(file, sheets, creator = \"AlloMate\") {\n if (is.null(names(sheets)) || any(names(sheets) == \"\")) {\n stop(\"All sheets must be named for write_xlsx_pure().\")\n }\n\n sheet_names <- sanitize_sheet_names(names(sheets))\n sheet_data <- lapply(sheets, coerce_sheet_data)\n\n string_pool <- character()\n for (df in sheet_data) {\n string_pool <- c(string_pool, gather_sheet_strings(df))\n }\n\n unique_strings <- unique(string_pool)\n string_count <- length(string_pool)\n\n if (length(unique_strings) > 0) {\n strings_map <- setNames(seq_along(unique_strings) - 1L, unique_strings)\n } else {\n strings_map <- setNames(integer(), character())\n }\n\n timestamp <- format(Sys.time(), \"%Y-%m-%dT%H:%M:%SZ\", tz = \"UTC\")\n\n tmp_dir <- tempfile(\"allomate_xlsx_\")\n dir.create(tmp_dir)\n on.exit(unlink(tmp_dir, recursive = TRUE, force = TRUE), add = TRUE)\n\n dir.create(file.path(tmp_dir, \"_rels\"))\n dir.create(file.path(tmp_dir, \"docProps\"))\n dir.create(file.path(tmp_dir, \"xl\"))\n dir.create(file.path(tmp_dir, \"xl\", \"_rels\"))\n dir.create(file.path(tmp_dir, \"xl\", \"worksheets\"))\n\n sheet_files <- character(length(sheet_data))\n\n for (i in seq_along(sheet_data)) {\n sheet_file <- sprintf(\"sheet%d.xml\", i)\n sheet_path <- file.path(tmp_dir, \"xl\", \"worksheets\", sheet_file)\n sheet_files[i] <- sheet_file\n\n xml_lines <- build_sheet_xml(sheet_data[[i]], strings_map)\n writeLines(xml_lines, sheet_path, useBytes = TRUE)\n }\n\n writeLines(styles_xml_content(), file.path(tmp_dir, \"xl\", \"styles.xml\"), useBytes = TRUE)\n writeLines(workbook_xml(sheet_names), file.path(tmp_dir, \"xl\", \"workbook.xml\"), useBytes = TRUE)\n writeLines(workbook_rels_xml(sheet_files), file.path(tmp_dir, \"xl\", \"_rels\", \"workbook.xml.rels\"), useBytes = TRUE)\n writeLines(shared_strings_xml(unique_strings, string_count), file.path(tmp_dir, \"xl\", \"sharedStrings.xml\"), useBytes = TRUE)\n writeLines(root_relationships_xml(), file.path(tmp_dir, \"_rels\", \".rels\"), useBytes = TRUE)\n writeLines(content_types_xml(sheet_files), file.path(tmp_dir, \"[Content_Types].xml\"), useBytes = TRUE)\n writeLines(core_props_xml(creator, timestamp), file.path(tmp_dir, \"docProps\", \"core.xml\"), useBytes = TRUE)\n writeLines(app_props_xml(sheet_names), file.path(tmp_dir, \"docProps\", \"app.xml\"), useBytes = TRUE)\n\n if (file.exists(file)) {\n unlink(file)\n }\n\n files_to_zip <- list.files(path = tmp_dir, recursive = TRUE, include.dirs = FALSE)\n\n if (length(files_to_zip) == 0) {\n stop(\"No files generated for XLSX archive.\")\n }\n\n zip_temp <- tempfile(fileext = \".zip\")\n zip_success <- FALSE\n zip_error <- NULL\n\n try_system_zip <- nzchar(Sys.which(\"zip\")) || identical(.Platform$OS.type, \"windows\")\n\n if (try_system_zip) {\n old_wd <- getwd()\n on.exit(setwd(old_wd), add = TRUE)\n setwd(tmp_dir)\n\n zip_success <- tryCatch({\n utils::zip(zipfile = zip_temp, files = files_to_zip, flags = \"-q\")\n file.exists(zip_temp)\n }, warning = function(w) {\n zip_error <<- w$message\n FALSE\n }, error = function(e) {\n zip_error <<- e$message\n FALSE\n })\n\n setwd(old_wd)\n }\n\n if (zip_success && file.exists(zip_temp)) {\n if (!file.copy(zip_temp, file, overwrite = TRUE)) {\n stop(\"Unable to write XLSX file to destination path.\")\n }\n unlink(zip_temp)\n return(invisible(file))\n }\n\n if (file.exists(zip_temp)) {\n unlink(zip_temp)\n }\n\n fallback_success <- tryCatch({\n write_zip_no_compress(file, tmp_dir, files_to_zip)\n TRUE\n }, error = function(e) {\n zip_error <<- e$message\n FALSE\n })\n\n if (!fallback_success) {\n msg <- \"Failed to create ZIP archive for XLSX output.\"\n if (!is.null(zip_error)) {\n msg <- paste(msg, \"Details:\", zip_error)\n }\n stop(msg)\n }\n\n invisible(file)\n}\n\n\n","type":"text"},{"name":"R/ui_helpers.R","content":"# UI Helper Functions\n# Functions for UI elements, reactive values, and display formatting\n\n#' Create dynamic trait input UI\n#' @param n Number of traits\n#' @return UI elements for trait inputs\ncreate_trait_inputs <- function(n) {\n tagList(\n lapply(seq_len(n), function(i) {\n wellPanel(\n fileInput(paste0(\"trait_file_\", i), paste(\"EBVs for trait\", i)),\n numericInput(paste0(\"trait_weight_\", i), paste(\"Relative weight for Trait\", i),\n value = round(1 / n, 3), min = 0, max = 1, step = 0.01)\n )\n })\n )\n}\n\n#' Create OCS trait input UI\n#' @param n Number of traits\n#' @return UI elements for OCS trait inputs\ncreate_ocs_trait_inputs <- function(n) {\n lapply(1:n, function(i) {\n fluidRow(\n column(6, fileInput(paste0(\"ocs_trait_file_\", i), paste(\"Upload EBV File\", i))),\n column(6, numericInput(paste0(\"ocs_trait_weight_\", i), paste(\"Weight for Trait\", i),\n value = round(1 / n, 2), min = 0, max = 1, step = 0.01))\n )\n })\n}\n\n#' Generate package status text\n#' @return Formatted status text for display\ngenerate_package_status <- function() {\n optisel_flag <- exists(\"optisel_available\") && isTRUE(optisel_available)\n fallback_flag <- exists(\"custom_ocs_available\") && isTRUE(custom_ocs_available)\n quadprog_flag <- exists(\"quadprog_available\") && isTRUE(quadprog_available)\n \n if (optisel_flag) {\n status_text <- \"✅ Optimum Contribution Selection: Ready\\n📦 Current solver: optiSel\"\n } else if (fallback_flag && quadprog_flag) {\n status_text <- \"✅ Optimum Contribution Selection: Ready\\n📦 Current solver: quadprog fallback\"\n if (exists(\"is_webr\") && is_webr) {\n status_text <- paste(status_text, \"\\nℹ️ optiSel not available in WebR\", sep = \"\")\n } else {\n status_text <- paste(status_text, \"\\nℹ️ optiSel not installed\", sep = \"\")\n }\n } else if (fallback_flag && !quadprog_flag) {\n status_text <- \"❌ Optimum Contribution Selection: Not Ready\\n⚠️ quadprog package required for fallback\\nℹ️ Install with: install.packages('quadprog')\"\n } else {\n status_text <- \"❌ Optimum Contribution Selection: Not Ready\\n⚠️ Neither optiSel nor fallback available\"\n }\n \n status_text\n}\n\n#' Check if WebR is detected\n#' @return TRUE if WebR environment detected\nis_webr_environment <- function() {\n exists(\"is_webr\") && is_webr\n}\n\n#' Format kinship and EBV results for display\n#' @param kinship_results Kinship analysis results\n#' @param ebv_results EBV analysis results\n#' @param thresh Kinship threshold\n#' @return Formatted results for display\nformat_kinship_ebv_results <- function(kinship_results, ebv_results, thresh) {\n # Combine kinship and EBV results\n if (!is.null(kinship_results) && !is.null(ebv_results)) {\n full_results <- left_join(kinship_results$results, ebv_results$results, \n by = c(\"Female\", \"Male\"))\n } else if (!is.null(ebv_results)) {\n full_results <- relocate(mutate(ebv_results$results, Kinship = NA), Kinship, .after = EBV)\n } else {\n return(NULL)\n }\n \n # Filter results for table display\n filt_results_table <- full_results %>%\n filter(EBV > 0, (is.na(Kinship) | Kinship < thresh))\n \n # Filter results for matrix display (mask invalid crosses as NA)\n filt_results_matrix <- full_results %>%\n mutate(EBV = ifelse(EBV <= 0 | (!is.na(Kinship) & Kinship >= thresh), NA, EBV))\n \n list(\n table_results = filt_results_table,\n matrix_results = filt_results_matrix,\n full_results = full_results\n )\n}\n\n#' Create Excel workbook for kinship and EBV results\n#' @param table_results Filtered table results\n#' @param matrix_results Matrix results with masked values\n#' @param full_results Complete results\n#' @return Workbook object ready for saving\ncreate_kinship_ebv_workbook <- function(table_results, matrix_results, full_results) {\n wb <- openxlsx::createWorkbook()\n \n # Add README worksheet\n openxlsx::addWorksheet(wb, \"README\")\n readme_text <- c(\n \"This Excel file contains two data sheets generated by the app:\",\n \"\",\n \"1. Filtered Results - Table:\",\n \" - Only crosses with positive EBVs and kinship below the selected threshold are included.\",\n \" - Crosses failing these criteria are completely removed from this table.\",\n \"\",\n \"2. EBV Matrix - Masked:\",\n \" - Shows all possible male-female crosses with EBV values.\",\n \" - EBVs for crosses with negative values or kinship above the threshold are blank (hidden) in the matrix.\",\n \"\",\n \"This distinction allows detailed matrix views while keeping the filtered table clean for analysis.\"\n )\n openxlsx::writeData(wb, \"README\", readme_text)\n \n # Add filtered results\n openxlsx::addWorksheet(wb, \"Filtered Results\")\n openxlsx::writeData(wb, \"Filtered Results\", table_results, rowNames = TRUE)\n \n # Add EBV matrix\n openxlsx::addWorksheet(wb, \"EBV Matrix\")\n \n # Convert to matrix format for Excel\n m_ids <- unique(full_results$Male)\n f_ids <- unique(full_results$Female)\n mat_for_excel <- matrix(NA_real_, nrow = length(m_ids), ncol = length(f_ids),\n dimnames = list(m_ids, f_ids))\n \n for (i in seq_len(nrow(matrix_results))) {\n m <- matrix_results$Male[i]\n f <- matrix_results$Female[i]\n val <- matrix_results$EBV[i]\n mat_for_excel[m, f] <- val\n }\n \n openxlsx::writeData(wb, \"EBV Matrix\", mat_for_excel, rowNames = TRUE)\n \n wb\n}\n\n#' Validate file uploads\n#' @param file Uploaded file object\n#' @param required_cols Required column names\n#' @param file_type Type of file for error messages\n#' @return TRUE if valid, throws error if invalid\nvalidate_file_upload <- function(file, required_cols = NULL, file_type = \"file\") {\n if (is.null(file)) {\n stop(paste(\"❌ No\", file_type, \"uploaded\"))\n }\n \n if (file$size == 0) {\n stop(paste(\"❌\", file_type, \"file is empty\"))\n }\n \n # Try to read the file\n tryCatch({\n df <- readr::read_table(file$datapath)\n if (nrow(df) == 0) {\n stop(paste(\"❌\", file_type, \"file contains no data\"))\n }\n \n # Check required columns if specified\n if (!is.null(required_cols)) {\n missing_cols <- setdiff(required_cols, names(df))\n if (length(missing_cols) > 0) {\n stop(paste(\"❌\", file_type, \"missing required columns:\", paste(missing_cols, collapse = \", \")))\n }\n }\n \n TRUE\n }, error = function(e) {\n stop(paste(\"❌ Error reading\", file_type, \":\", e$message))\n })\n}\n\n#' Generate user feedback messages\n#' @param success Whether operation was successful\n#' @param message Success or error message\n#' @param operation Type of operation performed\n#' @return Formatted feedback message\ngenerate_feedback <- function(success, message, operation) {\n if (success) {\n paste0(\"✅ \", operation, \" completed successfully: \", message)\n } else {\n paste0(\"❌ \", operation, \" failed: \", message)\n }\n}\n","type":"text"},{"name":"R/utils.R","content":"# Data Processing Functions\n# Functions for reading, cleaning, and processing input data\n\n# Fallback functions for when kinship2 is not available\nfallback_fixParents <- function(id, sire, dam, sex, missid = \"0\") {\n # Simple fallback - just return the data as is\n data.frame(id = id, dadid = sire, momid = dam, sex = sex, stringsAsFactors = FALSE)\n}\n\nfallback_pedigree <- function(id, dadid, momid, sex, missid = \"0\") {\n # Simple fallback - return a list with the pedigree data\n list(id = id, dadid = dadid, momid = momid, sex = sex)\n}\n\nfallback_kinship <- function(ped) {\n # Simple fallback - return identity matrix\n # This is a very basic approximation\n n <- length(ped$id)\n matrix(0.5, n, n, dimnames = list(ped$id, ped$id))\n}\n\n#' Read and process candidate files\n#' @param file Uploaded file object\n#' @return List with candidates data frame and male/female ID vectors\nread_candidates <- function(file) {\n df <- readr::read_table(file$datapath, show_col_types = FALSE)\n names(df) <- tolower(names(df))\n\n if (!\"id\" %in% names(df) && \"candidate\" %in% names(df)) {\n names(df)[names(df) == \"candidate\"] <- \"id\"\n }\n\n required <- c(\"id\", \"sex\")\n missing_cols <- setdiff(required, names(df))\n if (length(missing_cols) > 0) {\n stop(sprintf(\"CANDIDATES: missing required column(s): %s\", paste(missing_cols, collapse = \", \")))\n }\n\n df$id <- as.character(df$id)\n df$sex <- toupper(as.character(df$sex))\n\n list(\n candidates = df,\n males = filter(df, sex == \"M\") %>% pull(id),\n females = filter(df, sex == \"F\") %>% pull(id)\n )\n}\n\n#' Clean and validate pedigree data\n#' @param ped Raw pedigree data frame\n#' @return Cleaned pedigree object for kinship calculation\nclean_pedigree <- function(ped, return_stats = FALSE) {\n ped_chr <- ped %>%\n mutate(across(c(id, sire, dam), as.character))\n\n is_missing_parent <- function(x) {\n is.na(x) | x == \"\" | x == \"0\"\n }\n\n total_records <- nrow(ped_chr)\n unknown_parent_count <- sum(is_missing_parent(ped_chr$sire) | is_missing_parent(ped_chr$dam), na.rm = TRUE)\n circular_rows <- (ped_chr$id == ped_chr$sire) | (ped_chr$id == ped_chr$dam)\n circular_reference_count <- sum(circular_rows, na.rm = TRUE)\n # Count only the extra duplicates (not the first occurrence we'll keep)\n duplicates_removed <- sum(duplicated(ped_chr$id))\n\n final_ped <- ped_chr %>%\n mutate(across(c(id, sire, dam), as.factor)) %>%\n mutate(sex = case_when(id %in% sire ~ 0, id %in% dam ~ 1, TRUE ~ 2)) %>%\n {\n # Fix messy parents (same logic as original)\n messy_parents <- setdiff(intersect(.$sire, .$dam), 0) %>% as.data.frame() %>% rename(id = 1)\n parents_fixed <- .\n parents_fixed$sire[parents_fixed$sire %in% messy_parents$id] <- 0\n parents_fixed$dam[parents_fixed$dam %in% messy_parents$id] <- 0\n parents_fixed\n } %>%\n {\n # Remove duplicate rows, keeping first occurrence\n .[!duplicated(.$id), ]\n } %>%\n {\n # Remove circular dependencies (same as original)\n circdep <- .\n circdep$id <- as.character(circdep$id)\n circdep$sire <- as.character(circdep$sire)\n circdep$dam <- as.character(circdep$dam)\n circdep <- circdep[circdep$id == circdep$sire | circdep$id == circdep$dam, ]\n .[!.$id %in% circdep$id, ]\n } %>%\n with(., if (exists(\"kinship2_available\") && kinship2_available) {\n kinship2::fixParents(id, sire, dam, sex, missid = \"0\")\n } else {\n fallback_fixParents(id, sire, dam, sex, missid = \"0\")\n }) %>%\n with(., if (exists(\"kinship2_available\") && kinship2_available) {\n kinship2::pedigree(id, dadid, momid, sex, missid = \"0\")\n } else {\n fallback_pedigree(id, dadid, momid, sex, missid = \"0\")\n })\n\n if (return_stats) {\n stats <- list(\n records_loaded = total_records,\n unknown_parent_count = unknown_parent_count,\n circular_reference_count = circular_reference_count,\n duplicates_removed = duplicates_removed\n )\n return(list(pedigree = final_ped, stats = stats))\n }\n\n return(final_ped)\n}\n\n#' Compute kinship matrix and statistics\n#' @param ped Pedigree object\n#' @param males Vector of male IDs\n#' @param females Vector of female IDs\n#' @return List with kinship results, quartiles, and matrix\ncompute_kinship_matrix <- function(ped, males, females) {\n kinship_matrix <- if (exists(\"kinship2_available\") && kinship2_available) {\n kinship2::kinship(ped)\n } else {\n fallback_kinship(ped)\n }\n kin_mat_sel <- kinship_matrix[males, females]\n \n kin_quads <- tibble(\n Data = \"Kinship\",\n Q25 = quantile(kin_mat_sel, 0.25),\n Q50 = quantile(kin_mat_sel, 0.50),\n Q75 = quantile(kin_mat_sel, 0.75),\n Q100 = quantile(kin_mat_sel, 1.00)\n ) %>% column_to_rownames(\"Data\")\n \n kinship_results <- as_tibble(kin_mat_sel, rownames = \"Male\") %>%\n pivot_longer(-Male, names_to = \"Female\", values_to = \"Kinship\")\n \n list(results = kinship_results, quads = kin_quads, matrix = kin_mat_sel)\n}\n\n#' Process EBV files and combine with weights\n#' @param trait_counter Number of traits\n#' @param input Shiny input object\n#' @param prefix Prefix for input names (for OCS-specific inputs)\n#' @return List with combined EBVs, weights, and total\nprocess_ebvs <- function(trait_counter, input, prefix = \"\") {\n ebv_inputs <- list()\n for (i in seq_len(trait_counter)) {\n file_i <- input[[paste0(prefix, \"trait_file_\", i)]]\n weight_i <- input[[paste0(prefix, \"trait_weight_\", i)]]\n if (!is.null(file_i) && !is.null(weight_i)) {\n df_raw <- readr::read_table(file_i$datapath)\n if (!\"ID\" %in% names(df_raw)) names(df_raw)[1] <- \"ID\"\n if (!\"EBV\" %in% names(df_raw)) names(df_raw)[2] <- \"EBV\"\n # Ensure EBV column is numeric\n df_raw$EBV <- as.numeric(df_raw$EBV)\n ebv_inputs <- append(ebv_inputs, list(select(df_raw, ID, EBV), weight_i))\n }\n }\n \n if (length(ebv_inputs) >= 2 && length(ebv_inputs) %% 2 == 0) {\n rel_weights <- unlist(ebv_inputs[seq(2, length(ebv_inputs), by = 2)])\n weight_total <- sum(rel_weights)\n ebv_dfs <- ebv_inputs[seq(1, length(ebv_inputs), by = 2)]\n ebv_dfs <- purrr::imap(ebv_dfs, ~ rename(.x, !!paste0(\"EBV.\", .y) := EBV))\n \n joint_ebvs <- purrr::reduce(ebv_dfs, full_join, by = \"ID\") %>%\n mutate(across(starts_with(\"EBV.\"), ~ replace_na(.x, 0)))\n \n list(joint_ebvs = joint_ebvs, rel_weights = rel_weights, weight_total = weight_total)\n } else {\n NULL\n }\n}\n\n#' Calculate breeding value index from multiple traits\n#' @param joint_ebvs Combined EBV data frame\n#' @param rel_weights Vector of trait weights\n#' @return Data frame with calculated index values\ncalculate_index <- function(joint_ebvs, rel_weights) {\n ebv_cols <- grep(\"^EBV\\\\.\", names(joint_ebvs))\n # Ensure EBV columns are numeric\n joint_ebvs[ebv_cols] <- lapply(joint_ebvs[ebv_cols], as.numeric)\n joint_ebvs$index_val <- as.vector(as.matrix(joint_ebvs[ebv_cols]) %*% rel_weights)\n joint_ebvs\n}\n","type":"text"},{"name":"README.md","content":"# AlloMate - Genetic Breeding Optimization App\n\n## 🧬 Overview\n\nAlloMate is a Shiny web application for genetic breeding optimization using Optimum Contribution Selection (OCS). The app helps breeders make informed decisions about mate selection and breeding strategies by analyzing kinship relationships and breeding values.\n\n## 🚀 Features\n\n### Core Functionality\n- **Kinship Analysis**: Calculate and visualize kinship relationships between potential mates\n- **EBV Processing**: Combine multiple breeding value traits with user-defined weights\n- **Optimum Contribution Selection**: Optimize breeding contributions while controlling inbreeding\n- **Mating Plan Generation**: Create optimal mating pairs to minimize inbreeding\n- **Excel Export**: Download comprehensive results in Excel format\n\n### Technical Features\n- **Dual Implementation**: Works with both optiSel package and custom fallback\n- **WebR Compatible**: Runs in web browsers without server installation\n- **Modular Design**: Clean, organized codebase for easy maintenance\n- **Robust Error Handling**: Comprehensive validation and user feedback\n\n## 📁 Project Structure\n\n```\nAlloMate/\n├── app/ # Shiny application\n│ ├── global.R # Shared code (packages, global variables)\n│ ├── ui.R # User interface code\n│ ├── server.R # Server logic and reactivity\n│ ├── R/ # Helper functions and modules\n│ │ ├── utils.R # Data processing and utility functions\n│ │ ├── ocs_helpers.R # OCS analysis functions\n│ │ ├── ui_helpers.R # UI helper functions\n│ │ └── load_functions.R # Function loader\n│ └── www/ # Static resources\n│ ├── allomate.png\n│ └── logos.png\n├── scripts/ # Custom implementations and utilities\n│ ├── optsel_fallback.R # Custom OCS fallback implementation\n│ ├── validate_ocs_logic.R # OCS logic validation\n│ ├── compare_ocs_results.R # Results comparison\n│ └── ... # Other utility scripts\n├── data/ # Sample data files\n│ ├── candidates_2024_10_29.txt\n│ ├── pedigree_with_family.txt\n│ ├── weight_ebvs_for_app_with_family.txt\n│ └── length_ebvs_for_app_with_family.txt\n└── README.md\n```\n\n## 🛠️ Installation\n\n### Prerequisites\n- R (version 4.0 or higher)\n- Required R packages (automatically installed):\n - shiny, readr, dplyr, tidyr, purrr, kinship2, DT, tibble, openxlsx, quadprog\n\n### Local Installation\n1. Clone or download the repository\n2. Open R or RStudio\n3. Set working directory to the AlloMate folder\n4. Run the app:\n ```r\n shiny::runApp(\"app\")\n ```\n\n### Package Installation\nThe app automatically handles package installation when it starts up:\n\n#### How it Works\n1. **global.R** runs once when the Shiny app starts\n2. It checks for all required packages and installs missing ones\n3. For `optiSel` specifically, it tries CRAN first, then Bioconductor if needed\n4. Installation status is displayed in the app interface\n\n#### Troubleshooting Package Installation\n\n**If optiSel Installation Fails:**\n\n**Option 1: Manual Installation (Recommended)**\n```r\n# Try CRAN first\ninstall.packages(\"optiSel\")\n\n# If that fails, try Bioconductor\nif (!require(BiocManager, quietly = TRUE)) {\n install.packages(\"BiocManager\")\n}\nBiocManager::install(\"optiSel\")\n```\n\n**Option 2: Check System Requirements**\n- Ensure you have write permissions to your R library directory\n- Check that you have sufficient disk space\n- Verify your internet connection\n\n**Option 3: Update R and Packages**\n```r\n# Update R to latest version\n# Then update all packages\nupdate.packages(ask = FALSE)\n```\n\n### WebR Deployment\nThe app is compatible with WebR environments and will automatically use the custom OCS fallback when optiSel is not available.\n\n## 📊 Usage\n\n### 1. Upload Data\n- **Candidates File**: Upload a text file with columns `id` and `sex` (M/F)\n- **Pedigree File**: Upload a text file with columns `id`, `sire`, and `dam`\n- **EBV Files**: Upload breeding value files with columns `ID` and `EBV`\n\n### 2. Configure Analysis\n- **Traits**: Add multiple EBV traits with relative weights (must sum to 1)\n- **Kinship Threshold**: Set maximum allowed kinship between mates\n- **OCS Parameters**: Set desired inbreeding rate and number of offspring\n\n### 3. View Results\n- **Kinship Matrix**: Visualize kinship relationships with color coding\n- **EBV Matrix**: View combined breeding values for potential crosses\n- **OCS Results**: See optimal candidate contributions and mating plan\n\n### 4. Export Results\n- Download comprehensive Excel files with all results\n- Includes README sheets explaining the analysis\n\n## 🔧 Technical Details\n\n### OCS Implementation\nThe app uses a dual implementation approach:\n\n#### Local Environment (optiSel Available)\n1. App tries to install and load optiSel\n2. If successful, uses native optiSel functions\n3. Status shows: \"✅ optiSel package is available - OCS functionality enabled\"\n\n#### WebR Environment (optiSel Not Available)\n1. App detects optiSel installation failure\n2. Automatically loads custom OCS fallback from `scripts/optsel_fallback.R`\n3. Creates function aliases: `candes`, `opticont`, `noffspring`, `matings`\n4. Status shows: \"✅ Custom OCS fallback is available - OCS functionality enabled\"\n\n#### Complete Failure (Neither Available)\n1. Shows error message: \"❌ OCS functionality not available\"\n2. OCS button shows modal explaining the issue\n3. User can still use EBV matrix functionality\n\n### Data Processing\n- Automatic pedigree cleaning and validation\n- Kinship matrix calculation using kinship2\n- Multi-trait EBV combination with weights\n- Comprehensive error handling and validation\n\n### Performance\n- **Small datasets** (<100 candidates): Fast, comparable to optiSel\n- **Medium datasets** (100-500 candidates): Reasonable performance\n- **Large datasets** (>500 candidates): May be slower than optiSel\n\n\n\n## 📈 Sample Results\n\nWith the provided sample data:\n- **84 candidates** (63 males, 21 females)\n- **66 candidates selected** for breeding\n- **97 optimal mating pairs** generated\n- **Mean offspring inbreeding**: 0.0053\n- **Expected genetic gain**: +0.0557 (improved from -0.0290 baseline)\n\n## 🔍 Troubleshooting\n\n### Common Issues\n\n1. **\"Package not available\" error**\n - The app will automatically use the custom fallback\n - Check console messages for details\n\n2. **\"No valid EBV files\" error**\n - Ensure EBV files have correct column names (ID, EBV)\n - Check that trait weights sum to 1.0\n\n3. **\"Only one sex selected\" error**\n - Adjust EBV scaling or kinship constraints\n - Check candidate file sex coding (M/F)\n\n4. **\"Optimization failed\" error**\n - Check kinship matrix condition\n - Consider data scaling or constraint adjustment\n\n5. **\"Requested package not found in webR binary repo\"**\n - This indicates the app is trying to use WebR installation methods\n - The app has been updated to handle this automatically\n\n6. **\"Permission denied\"**\n - You don't have write access to the R library directory\n - Run R as administrator or change library location\n\n### Debug Mode\nEnable verbose output by checking the R console for detailed messages during analysis.\n\n## 🏗️ Code Organization\n\n### Function Structure\nThe app uses an organized functions structure to improve code maintainability, reusability, and clarity:\n\n#### Function Categories\n1. **Data Processing Functions** (`app/R/utils.R`)\n - Handle all data input, cleaning, and processing operations\n - Functions: `read_candidates()`, `clean_pedigree()`, `compute_kinship_matrix()`, `process_ebvs()`, `calculate_index()`\n\n2. **OCS Functions** (`app/R/ocs_helpers.R`)\n - Handle all Optimum Contribution Selection operations\n - Functions: `run_ocs()`, `validate_ocs_inputs()`, `format_ocs_results()`, `create_ocs_workbook()`\n\n3. **UI Helper Functions** (`app/R/ui_helpers.R`)\n - Handle UI elements, reactive values, and display formatting\n - Functions: `create_trait_inputs()`, `generate_package_status()`, `format_kinship_ebv_results()`, `validate_file_upload()`\n\n4. **Function Loader** (`app/R/load_functions.R`)\n - Centralized loading of all function files in the correct order\n\n### Benefits of Organization\n- **Maintainability**: Functions grouped by purpose, easy to locate and modify\n- **Reusability**: Functions can be used across different parts of the app\n- **Testing**: Individual function files can be tested separately\n- **Documentation**: Each function file has clear documentation\n- **Collaboration**: Multiple developers can work on different function files\n\n## 🤝 Contributing\n\n### Code Organization\n- Follow the established project structure\n- Add new functions to appropriate R/ files\n- Update documentation for new features\n- Test thoroughly before submitting\n\n### Development Guidelines\n- Use Roxygen2 comments for all functions\n- Follow R naming conventions\n- Include error handling and validation\n- Test with both optiSel and fallback implementations\n\n### Function Documentation\nAll functions include Roxygen2 documentation with:\n- Parameter descriptions\n- Return value details\n- Usage examples\n- Error handling information\n\n## 📄 License\n\nThis project is developed for genetic breeding optimization research and applications.\n\n## 🙏 Acknowledgments\n\n- Built with R and Shiny\n- Uses kinship2 for pedigree analysis\n- Custom OCS implementation for WebR compatibility\n- Sample data provided for testing and demonstration\n\n## 📞 Support\n\nFor questions or issues:\n1. Check the troubleshooting section\n2. Examine the console output for error details\n3. Review the app documentation and help section\n\n---\n\n**AlloMate** - Making genetic breeding optimization accessible and efficient! 🧬✨","type":"text"},{"name":"global.R","content":"# Global.R - Simple package setup\n# This file runs once when the Shiny app starts\n\n# Check if we're in the app directory or project root\nif (dir.exists(\"R\") && dir.exists(\"www\")) {\n app_dir <<- TRUE # Make it global so other functions can access it\n} else if (dir.exists(\"app\") && dir.exists(\"scripts\")) {\n app_dir <<- FALSE # Make it global so other functions can access it\n} else {\n app_dir <<- FALSE # Make it global so other functions can access it\n}\n\n# Check if we're in a Shiny server environment (temporary directory)\nis_shiny_server <- grepl(\"^/home/web_user/\", getwd()) || grepl(\"^/tmp/\", getwd()) || grepl(\"^/var/folders/\", getwd())\n\n# Load required packages (skip if not available)\n# Load non-tidyverse packages first\nrequired_packages <- c(\"shiny\", \"shinyjs\", \"DT\", \"openxlsx\")\n\nopenxlsx_available <- FALSE\n\n# Try to detect quadprog (optional - we have fallback)\nquadprog_available <- requireNamespace(\"quadprog\", quietly = TRUE)\nif (quadprog_available) {\n message(\"✅ quadprog available\")\n} else {\n warning(\"Package quadprog not available (fallback optimization will be unavailable).\")\n}\n\n# Try to load kinship2 (optional - we have fallback)\nkinship2_available <- FALSE\ntryCatch({\n if (!require(kinship2, quietly = TRUE)) {\n install.packages(\"kinship2\", repos = \"https://cran.rstudio.com/\", quiet = TRUE)\n }\n library(kinship2, quietly = TRUE)\n kinship2_available <- TRUE\n}, error = function(e) {\n warning(paste(\"Package kinship2 not available (will use fallback):\", e$message))\n})\n\n# Try to load lpSolve for transportation-based mating\ntryCatch({\n if (!require(lpSolve, quietly = TRUE)) {\n install.packages(\"lpSolve\", repos = \"https://cran.rstudio.com/\", quiet = TRUE)\n }\n library(lpSolve, quietly = TRUE)\n message(\"✅ lpSolve loaded successfully\")\n}, error = function(e) {\n warning(paste(\"Package lpSolve not available (transportation mating will be unavailable):\", e$message))\n})\n\n# Load non-tidyverse packages first\nfor (pkg in required_packages) {\n tryCatch({\n library(pkg, character.only = TRUE)\n message(paste(\"✅ Loaded package:\", pkg))\n if (identical(pkg, \"openxlsx\")) {\n openxlsx_available <<- TRUE\n }\n }, error = function(e) {\n warning(paste(\"Package\", pkg, \"not available:\", e$message))\n if (identical(pkg, \"openxlsx\")) {\n openxlsx_available <<- FALSE\n }\n })\n}\n\n# Load tidyverse last to avoid masking issues\ntryCatch({\n library(tidyverse)\n message(\"✅ Loaded tidyverse package\")\n}, error = function(e) {\n warning(paste(\"Package tidyverse not available:\", e$message))\n})\n\n# Detect WebR environment\nis_webr <- (exists(\"webr\") && !is.null(webr)) ||\n grepl(\"emscripten|wasm\", tolower(R.version$platform))\n\n# Configure defaults for webR runtime quirks\nif (is_webr) {\n options(allomate.force_greedy_mating = TRUE)\n options(allomate.force_qp_greedy = FALSE)\n message(\"🌐 webR environment detected; enabling greedy mating fallback.\")\n} else {\n options(allomate.force_greedy_mating = FALSE)\n options(allomate.force_qp_greedy = FALSE)\n}\n\n# Try to install and load optiSel - with custom fallback\noptisel_available <- FALSE\ncustom_ocs_available <- FALSE\n\nfunctions_path <- if (app_dir) \"R/load_functions.R\" else \"app/R/load_functions.R\"\nif (!file.exists(functions_path)) {\n stop(paste(\"Functions file not found at:\", functions_path))\n}\n\nsource(functions_path)\n\ntryCatch({\n if (!require(optiSel, quietly = TRUE)) {\n install.packages(\"optiSel\", repos = \"https://cran.rstudio.com/\", quiet = TRUE)\n }\n library(optiSel)\n optisel_available <- TRUE\n message(\"✅ optiSel loaded successfully\")\n}, error = function(e) {\n message(\"⚠️ optiSel not available - using custom OCS fallback\")\n if (exists(\"custom_ocs_available\") && custom_ocs_available) {\n message(\"✅ Custom OCS fallback loaded successfully\")\n message(\"📦 OCS functionality enabled via custom fallback\")\n } else {\n message(\"⚠️ Custom OCS fallback not available after loading functions\")\n }\n})\n\n# Set global flags for app behavior\nocs_available <- optisel_available || custom_ocs_available\n\nmessage(\"🚀 AlloMate app startup complete!\")\n","type":"text"},{"name":"www/allomate.png","content":"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\nqfD111/P+6dFh2giz+9973vx5X16mt8xLZB4KDMBQn5m1PnekT6s9mPilauvvroj2CuvvNIN\nDw93tGySC+l2gprUKcsyYbe4K5dTHHZsaXpyym57Nz3eVbMU8tOc6VMhv6qz+AkEHU0wpyCg\ng1ehD0vuqpO6XFiXM8hJt9rKQ9E9wdeuXZtJUxTyN27cmNi+NFQ/y2vLL7zwwsTqnuWGdAeC\n73znOy5PI1Cy9Lvuuus48JkluGf70mUumqNG8y/xt7F152gSal2fr/l8MGptxKPZCBDys3HO\n/V70i18zFWdZNJNpp/eZ7tfke/og+dOf/jQzlmpt2inkp3UWf6YhdTdZtZBv++m4TE25+j6b\nkb/jFZa4oB1Uab613hK34nTP3xtuuCFenSPxCyvusgkVP/axjzn9G3pRX2cVXrWvJCff0+9g\nHXTJquiuJSGWr3/96+7FF18Msepe1Fmvs9tuu82LulCJbAX22d9wncFv3EaWv43t/e+///54\ngtr2S/AMAukLEPLTN879HjSDfD9mkb/ssss6Pjs/ODjozjnnHDvDne1LXhOw6LZWWZ01mrR7\n2mt2fRskltrrTgcQ6qWancnvPOQreKc56Z4aqxYP2EGVeo9n8vXHWff9pXQuoPf/Rz/60c5X\n8HjJ8847L7Pa6cCoziwnUbIM+atXr3aa6yS0oktwdIkJE2MtvecU7DTTPqVYAup3hXsmoe2s\n3zVSSycKOCDWmRdLpSOQbeJJpw1stc8C+oCv22plXTRUv5vQriH7lYTvn95Jm3fs2HHoyHcn\ny/eyzHRtyibdS/tMvnPlSqmr4foK+TU7C5DeoYeZkD9oeBoxsNSiyyt0Hf7/Z+884OQ4y/v/\n7l6XZFnFRXI9WXLvvSIXjI0NGBtiMMXE4IQSWogDIeFPJ4WS5AMkhPBJIIFASIjBYEKo7r3b\nkqtcZFvNRbKsdrqyu//nO6e5m9vbMrM7874zs89jr3Zvd+Ytv2nv76kuSkG2OuY07AdpwmU/\nD94PJPO0JcRvxuGyD/42w6UOOOAAJ/fSdo4LOSTIfk2eFJX2EECh5OKZ396ode92ECC58je/\n+c3Yy362M6a070v1mauuukpLT6b9QOV4fEryc3xwbU2NRart0nnM7fjjj49E8knSh0XfttiM\nyx8dGzEjWNiTZNMAKKXGto+gTAjZkbgRl2NKiNfo+JGJwFMmhB1XVWPUzVbNexUoIf9EmUWs\n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\ndt5557kTly1bZldddZX98ccfxWfE3pwWIMjP6cfHzSOQOwLxQb4P7GfOnBkN7nOnNNwpAggg\ngAACCCBQPgIPPfSQaQag//znP8Ve8J133nEBvQ56+OGH7bDDDrPq1atbtWrV7LLLLrOjjz7a\nna+gf8yYMcXmxc7cFiDIz+3nx90jkFMCBPY59bi4WQQQQAABBBDIAgG1dFQN/H//+1/75Zdf\n3B1NnjzZrr76alu+fHn0DtUcX2mPPfawFi1aRLf//vvv9swzz9iUKVOi21auXBldZyV8AvTJ\nD98zpUQIZKVAGKb/y0pYbgoBBBBAAAEEQi2gpvaRSMRWrFhhN9xwg/3www/RGnsF86effror\n/5o1a9xyk002ccv169fb6NGjbdiwYbZgwQK3rWnTpm7Gos6dO7vv/AinAEF+OJ8rpUIAAQQQ\nQAABBBBAAIEQCPTo0cOGDBliS5YssZdeeilaoo4dO9qBBx4Y/e772X/66aeu5n748OE2f/58\nt3+nnXYyVbh069bNKlWqFD2HlXAKEOSH87lSKgQQQAABBBBAAAEEEMhxAdXAX3vttS7A90Vp\n2LCh3Xnnnbb77rv7TW65//7728iRI001+tddd53b1qRJE+vTp491797dKlcu3FP7119/tU03\n3bRQHnwJh0DhJx2OMlEKBBBAAAEEEEAAAQQQQCDnBb799lt7//33XTmqVv2rfnbp0qXWuHHj\njcrWoUMHq1mzZnT7oEGDXM3/EUccsVGAP336dGvfvr29+uqr0eNZCY8AQX54niUlQQABBBBA\nAAEEEEAAgRwWUJP7P//8M1qCtm3buinvnnzySVPQrrRq1SrTiPvxSX3x/Qj62jdr1qyNgntt\n17R6Z555pmnwPY20TwqfAB0yEj/TN4PNHRPvyuzWfv36uQzVR4aEAAIIIIAAAggggAAC+SWw\nevVqN0DeuHHjXNCtYP3www93wf0WW2wRxdAo+V27djXV7teqVctef/11q1OnTnS/VhS4H3XU\nUbZw4UK3vXfv3jZgwAA3ld7XX39telmgJv16kaCm/E888YTVrVu3UB6pftF0yb169Ur19FTO\nOzg4qSCVE8N+DkF+4idcbkG+vzzBvpdgiQACCCCAAAIIIIBAfghoWrurrrrKvv/++40K3LJl\nS3v66afNN9PXAS+88IINHDjQHatR9y+77LKNzlOwreBeLwWUqlWr5l4G/Pjjj9FjDzroIBs8\neLDVrl07ui3VFV3vnnvuMS3LORHkFwFOkJ8YptyDfH8bBPtegiUCCCCAAAIIIIAAAuEVeO21\n1+ySSy6x3377zQXhGkV/l112sQcffNBmzpzpCt6/f383cJ5X0LR4GiF/3rx5btC8N954I2FN\nvPrc62WAz8ef36pVK/cCQC0F0k0VGNz7WyfI9xJxS4L8OJANXyssyPe3Q7DvJVgigAACCCCA\nAAIIIBAuATWn14j3Ggm/Xbt2rlZ9q622coVUk3sF4T/88EPCQP7FF190tf86+PTTT3ej7yfS\nWbdunX388ceub3716tVNtffbbLNNokNLtS0Lgnt/vwT5XiJuWSXuO1//EjgzWOzw12rF/NR/\nPPpoHkstW7duXTE3wlURQAABBBBAAAEEEEAgowLvvvuuqQ++atY1iF5s33sF5Oozr2PU5F7r\nGgnfp6ZNm9r48eNt2bJl9umnn9puu+1mO+64o33wwQd2yimnuJcHm222mVWpUsU03Z6m2lPT\nf21LJykmUeuAoUOHRvv8p5NfBs59NMhjbgbyCV0W1OQnfqQVXpMff1vU7MeL8B0BBBBAAAEE\nEEAAgewW0CB5S5YssRYtWrjB7/zdarC9a6+91vWpVyDu088//2y33XabjRkzxjTSvpIG4tMg\ne/Xq1fOHmZrpX3jhhdH9aub/+eefu3P+8Y9/2Iknnhg9Nt0VBfcV1Oe+pFunJr8IIYL8xDBZ\nF+T72yTY9xIsEUAAAQQQQAABBBDITgEF5bfffrvNmTPH3WCNGjXs4osvtrPPPrvIG37++eft\nlltuseXLl5uOb9OmjU2aNMkdrynvrr766kLnXnnllW5U/tiNqtV/4IEHEvbTjz0umfUsDu79\n7RPke4m4JUF+HMiGr1kb5PvbJdj3EiwRQAABBBBAAAEEEMgegcmTJ7tg3tfEx95Znz59TIPp\nxadHH33UbrrpJrf5iCOOcH3ut956azcd3ldffeWCfr040Daf1Iz/4YcftjfffNO23HJL69Kl\ni5tiL3Y0fn9saZY5ENz74hDke4m4JUF+HMiGr1kf5PvbJtj3EiwRQAABBBBAAAEEEKhYAQX2\nGjRv9uzZtueee9o555zj1tXcXaPoq5/8s88+a7vuumv0Rj/55BPr2bOn+37NNdfYGWecEd03\natQou+GGG9x3zUF/3XXXRfdleiWHgntfdIJ8LxG3rBr3na85JqB/MGJT3759Y7+yjgACCCCA\nAAIIIIAAAmUgoOns1Df+rbfeMo1kr+b1Gr1eAX7jxo1ds3k/oJ4GxlPlnM5Rk/zHHnssekca\nRE9Jx8QG+NqmwfR8euqpp+zcc8+1+vXr+00ZWeZgcJ+Rcoc5E4L8kDxdgv2QPEiKgQACCCCA\nAAIIIJD1AmvXrrUBAwaY5rr3afTo0a6mXt9VM+8DfH3v3LmzHXrooe74KVOmFJo967vvvtMh\npqnzlK/64yt99tlnNnHiRKtTp457ObBixQr78MMPXUsBd0CaPwju0wTM4tMJ8rP44aRyawT7\nqahxDgIIIIAAAggggAACyQv8/e9/jwb4devWdSPo62zV1Csddthhbhn7QwPv+ZcCd999tz3x\nxBNu9z777OO2L1682Hr37m1qsq+p8QYPHuya+F900UWmafOU2rZt65bp/CC4T0cvN84lyM+N\n51TquyTYLzUZJyCAAAIIIIAAAgggkFBgzZo1psBeg9w9+OCD9tJLL1nlypXtrrvucgPezZo1\ny84//3xbsGCBO1/fGzVqVCgvTXPXvXt3N8e9auTfe+89F7QfeeSRLs+ffvrJPvroI+vRo0f0\nPB2vVgHVq1ePbkt1heA+VbncO4+B9xI/s5wZeC/x7W+8lQH6NjZhCwIIIIAAAggggAACyQgs\nXbrUOnTo4JrTa956Bf3qH3/55ZdHT//iiy/s+OOPd3PVt2zZ0jQlXnxS8K/R8zUyvmrwR44c\n6Q6ZNm2aG2Bv+vTp7rv69J988smuZj8+j9J+D3Fwz8B7RfwyEOQnhgldkO+LSbDvJVgigAAC\nCCCAAAIIIJC8wM0332yPPPJI9AT1wW/evHn0u1ZU268B8pSGDRvm+uG7LzE/1JdfLQGUHnro\nITvggAPcugL/H374wb0A2G677dy2dH6EOLj3LAT5XiJuSZAfB7Lha2iDfF9cgn0vwRIBBBBA\nAAEEEEAgjAIayG6zzTYrVdE0zZ1q27faaiv729/+VuhcNafv1KmTq8VXbf7HH38cHWjPH/j9\n99+7/vjKRy8AXnzxRatUqXDIpdH3Nc2eptvTNHv+pYDPI91lHgT3nogg30vELSvHfedrngio\nz74+Q4cOdZ88KTbFRAABBBBAAAEEEAi5wLJly1xTejWHV8CbTHr//fft0ksvtf3339+OOeYY\nO/DAA+2ggw6yCRMmRE+vV6+enXLKKe67muv72vjoAcHKtttuayeccILbNGPGjOhAe7HHNGnS\nxDXZ1zY/UF/s/lTXVdZevXq5T7LlTvVanJfdAoVfK2X3vZb33UWCC95Q3hetqOtRs19R8lwX\nAQQQQAABBBBAIJMC8+fPd1PWqfn7fvvtZ48//niR2SvIHjJkiN1///1FHnPSSSfZjTfe6PYv\nWbLEDjnkEPv1119thx12cIPoValSpdC5anKv6fJUm9+sWTNTs/742ny1Cvj666+tTZs2bgC/\nQhmU8kse1dx7mYJgZVDw0ZKUQKDwb2SCA/J4U0FQdv3y6EVIx+AT6qR/HPTRP0Batm7dOtTl\npXAIIIAAAggggAAC4RCYN2+ea/q+6aabugLVrl3b5s6da1999ZVpDvp99913o5Hufcmvuuqq\n6FR2qsXXNHdnnXWW1a9f3z755BOXrwbUa9CggbVo0cJ0jV9++cU11VeLge23336jfvnqIvDz\nzz+bBtPTUtPf7bzzzv6SblmzZk13T/HBf6GDSviiv9kHDhzoWuUuXLiwhKNDsbsgKEXv4KMY\nbW7wIRUhoACWlJxAJDiMmv3krDgKAQQQQAABBBBAAIEyF/AD3Wnk++HDh0evF9vvPXYU++gB\nwYpGsj/22GPdJs1Pf+WVVxaqVX/nnXfctHi///671apVyzXPV3N81earb/7q1atdkP/yyy9b\n1aqFZyZftGiRq81ft26d7b777vbMM8/EXjqtdQX36narZZ6kgqCcCuy1JCUhQE1+EkgbDikI\nlvrl0ouRjsEn1En/aOhDzX6oHzOFQwABBBBAAAEEclpAwfOcOXNMtfkK9FUDr1SnTh1Ts/2Z\nM2eaBsPbe++9XUAeW9jbb7/d7dexekEQH6irll5N7jWnvZaqfVdtv2rzV61a5ea0X758uTVs\n2NB23XXX2KzdgH86ZsWKFdanTx/baaedCu1P5Yv+NqfmPhW5/DuHmvzUn3kkOJWa/dT9OBMB\nBBBAAAEEEEAAgbQE1JT+uOOOc3looLwHHnggmp+a7Hfr1q3IUew1z/2kSZOsXbt29vDDD0fP\ni11RTbzyXbp0qeuDP3HiRLdbTfXVN1+BvIJ8bY9/SRCbTzrrCu6puU9HMP/OpSY/9WdeEJxK\nzX7qfpyJAAIIIIAAAggggEBaAprmTqPYq3m+avM1Kv4222zj8txyyy1twYIFbr8Gw9tjjz2s\ncePG0es9//zzbr/60Pfs2TO6PXZFg+rpXPWvV2CvkffV519T6GnwPdXyq7Ze89q3bNky9tS0\n16m5T5swbzNgCr30H30kyEItIhTwhz4x9V7oHzEFRAABBBBAAAEEckrAzxKlm9ZI+bFJTeX9\n6Pf6OzY26QWB0pdffmnffvtt7K5C6xqh36fYKe/Uj18vCJSmTJniD0l7qeA+z6bCKwjQDt7w\n0TopTQFq8tMEjDm9IFinZj8GhFUEEEAAAQQQQAABBNIR8MG3as6LSpq/XiPpf/PNNy5YP+CA\nA9x89Tpete4aYV+D7GkwPA2Cp6nvlKpVq2bjxo1z63oR0L59e7ce/0P5anA9pbPPPts233xz\nt657UssAXS/2ZYLbmcIPau5TQOOUhAKVEm5lYyYEIkEm9NnPhCR5IIAAAggggAACCOSVgIJ7\nzU2vPvOavu6RRx7ZaOC8WBANsHfUUUe5TW3btnXH+/1qst+lSxfTKPm77babPffcc26X+tsr\nsNfgeQry1Xy/efPm/rTosm/fvvbqq6/a1ltvbW+88YZVr149ui8TK/S5z4QiecQKUJMfq5HZ\n9YIgO2r2M2tKbggggAACCCCAAAI5LqAB8W666SY3h7yC7kRJze7Hjh3rdmle+gkTJriAfKut\ntkp0uKk2XzXus2bNcv3sFeirn7zSFlts4frVa5C+H3/80fWd33HHHV1gr5H1Fbj/+eefVlBQ\n4Pr0161b152npvkagd+/FLjssstsr732cvsy8YOa+0wokkciAWryE6mUzbZIkC01+2VjS64I\nIIAAAggggAACOSKgpu2vvfaam2v+3nvvTXjX9913n911112F9qnp/X//+1/X5L7Qjg1fvv76\nazvyyCNdwN66dWsbMWJE9LCFCxe62nxNhafp7l544YXovgsuuMDefPNN911N8NX8XteaPHmy\nezmgHRphf9iwYRmpxafmPkrPShkJUJNfRrAJsi0ItlGznwCGTQgggAACCCCAAAL5I6DgWX3k\nFVAXNaq9+tGriXyNGjXshBNOsM8//9zWrl1r48ePd7XpasIfn1TLr9p8BfsK6hXoa3o7JdXm\nq0++8lm8eLFrlu/nrteI/GpdoBH61aR/zpw5bjC+lStXWqVKleySSy6xQYMGpT1FHjX38U+M\n72UlQJBfVrJF51sQ7CLYL9qHPQgggAACCCCAAAIhFtCUdxqNXrXqmqs+UVKArT7yajKvWn2l\nqVOnunMU6Ks23g+gF3t+06ZNbeTIkW6T+vX36NEjulv97Z944gn7448/3MsAvWBQEK+XDd27\n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\nPPKIDR48eKPB8DQNnqaW80G+Ttb0dl27dnUB/J577ulq/RNlesIJJ9i0adPcHPaqzVd/+9ik\nbgAaoE99/TUlXmzSSwH129cLCr1ISCYpuKfmPhkpjslXAWry8/XJl77cBcEp1OyX3o0zEEAA\nAQQQQACBMhcoKCiwOXPmuOuof7umnotPTz/9tN14440uaFf/+QsuuMBNbzd16tTodHiayk61\n70qatm7BggU2Y8YM++GHH2yPPfawxo0bx2fr+urrxYJq5BWwH3bYYYWO0bR66gpQpcrGoYcG\n8Lvooos2ejFQKIMNX6i5T6TCNgQ2FqAmf2MTtiQnEAkOo2Y/OSuOQgABBBBAAAEEylTg559/\ntgceeMANfte6deuNrqUm9/vvv78b7O6MM86wa665JnrMs88+a9dee637Pnz4cDcvvd/57bff\nWpcuXWz9+vXWqlUr07GJUs+ePU0j51euXNneeecd22qrrRIdltI2au5TYuOkPBbY+HVaHmNQ\n9FIJFARHU7NfKjIORgABBBBAAAEEykZA/dvbt29vDRo0cE3xly9fbqpB90n96x966CH39eab\nb3Yj6Pt9atr/+OOPu2nvNHe9n+5O+2vXru2a2k+fPt00OJ8CfY3AH5800v6HH35oZ599th1w\nwAEJB+mLP6ek79TclyTEfgQSC/zVFifxPrYikIxAJDjIf0Jfs6/+X7GJ0fhjNVhHAAEEEEAA\ngYoWmDx5sl155ZUu0H/jjTfcYHe6J02T55Nq53faaSf/1S19U3r1zY9PF154oWmkfM13r7+F\n/Ij4sceplcDrr78euynldWruU6bjRAScADX5/CJkSqAgyIia/Uxpkg8CCCCAAAIIIJCCgJrK\njx8/3s1Pr9r9fffd1+Wi5vNPPvmk/frrr6Y++OqTr1p6JQ24N2nSJNfU/rLLLttovvotttjC\n9cn/4osvXG2+Ru/fcccd3bmZ/EHNfSY1ySufBSrlc+Epe5kKRILcQ1+z7wX79evnVqnZ9yIs\nEUAAAQQQQKAiBNatW2cazG7RokUuiFdt/mabbeZuZdiwYW7qPH3RQHga2f6jjz6yr776yu3X\nFHoK8hMljY7fuXNn10JAA/vdcccdiQ5LaRs19ymxcRICRQpQk18kDTvSFCgIzqdmP01ETkcA\nAQQQQAABBOIFNNK9ms3/61//csH27NmzoyPaq9m9pql76623XBP9TTbZxPxAfJqLfu7cufb1\n11+b5rT//PPPTQP26Zjrr7/eFOQr/fHHH6Y+/dWqVXO1+9q2+eabuz7+msv+4osvdudoezqJ\nmvt09DgXgaIFqMkv2oY9mRWIBNlRs59ZU3JDAAEEEEAAgTwTeOWVV9xI+CtWrChUcgXMvvm9\navM1jZ1eBig4f/PNN93Sn9CjRw8X4J922mlubvoOHTq42n7159fo+ZqOTy8B6tSpY+eff771\n7t3bn5qRJTX3GWEkEwSKFCDIL5KGHWUkEAnyJdgvI1yyRQABBBBAAIHwCqhP/AknnOCms9tr\nr71czbuWNWrUMPW/j02jRo2yG274608udSf0XQt1zMEHH+xGzB80aJAdc8wxphcHGnn/yy+/\njM0iuj5kyBA3jV50Q4orBPcpwnEaAqUUIMgvJRiHZ0wgEuREsJ8xTjJCAAEEEEAAgbALKFBX\nQL7ffvvZY489Fm1Kn6jcv/32m+tDr7706pOv2nwNoKd00UUXRUfCr1q1qhs1X9vVPL979+5u\n9PwFCxa4/vvKR3381Z8/1URwn6oc5yGQmgBT6KXmxlnpC0SCLPwn9ME+U++l/wtDDggggAAC\nCOS7gPreK2l0+8qVKxfLoYBdU9+pr/3KlSvt4Ycfdn3pdZKa4Ktpvkba17R4m266qZ188sl2\n5plnWv369aP5zpo1y0aPHm1z5syJbivNCsF9abQ4FoHMCTDwXuYsySk1gYLgtEHBR61KOgaf\nUCf9z06fSpUquaUfCCfUhaZwCCCAAAIIIJCUwJo1a+y9996z1157zQXgGgFfNe0+KTBXoD99\n+nTXX1775s2bZ2rGr48G0dM89wrwlXbZZRcbM2aMqf++zjnppJPcgHnbbLON9erVy/0ton77\nas5/ySWXREfh99d75JFHXLP+Aw44oFTN9fW3zsCBA93UfAsXLvTZhXlZEBSud/DR37Rzgw8J\ngQoVUGBFQiCbBCLBzYS+Zt+D+/5xTL3nRVgigAACCCAQHgGNUl9Sjbsvraa60/R1q1ev9pus\nSZMmdu+990bnpH/33Xft7LPPtj///DN6TPzK1ltv7c7RKPhKzz33nF1zzTVuXTX4AwYMcOv6\nodH2Vcuv/vgK5H3Sfasf/n333ecqJh599FFr06aN313kkpr7ImnYgUC5ChDklys3FyuFQCQ4\nlmC/FGAcigACCCCAAALZI6AgWTXhCqz1KS6pn72mpVNwHZ/UfH78+PHRWvYXXnjBBg8ebD/9\n9FP0UE2bp3N98L/tttu6Pvfarub4Xbt2tW+//dYNzqeXCRo1X8fuuuuu7rwuXbrYjTfe6F5I\nvP3226ag/tNPP3X5X3rppXbBBRdEr5VoheA+kQrbEKg4AYL8irPnyskJRILDCPaTs+IoBBBA\nAAEEEMgCATW7b9eunZuGTtPaKbDW4HexSQPhqSn9ddddZ6effrqp//tBBx1kf//7313grb70\nU6ZMcaeceuqpbnvs+YsWLTINiqcp8nSNX375xW6//XZ76qmn3GFPP/207bHHHm5dLwbUfF5B\n/5NPPhndrpH6p02b5o5Rv3xNvbd+/Xr3vW7duqbR9zt37uy+J/pBcJ9IhW0IVLwAQX7FPwPu\nIDmBSHAYwX5yVhyFAAIIIIAAAhUs8O9//9v+85//uLvo37+/9enTJ3pHa9eudfPTq5a9efPm\nNmPGDDeYngJwTYenpGOOOOIImz9/vqthV23+jjvuGM0j0Ypq932ze13/8MMPd4cpcFfeBx54\noDVu3Dh66syZM92Ae6tWrYpu0zgAxx57rJ0ZDMKnQD9RIrhPpMI2BLJHgCA/e54Fd5KcQCQ4\njGA/OSuOQgABBBBAAIEKEli2bJkdcsghrjZfte2qudfSJ9XgP/PMM/6r/eMf/7ATTzwx+l0r\n77zzjuuDr/UjjzzSNdPXelFJtfdqAaA0YcKEEl8K6Dj1yS8oKHBjAeglwt577+1q/LUvPhHc\nx4vwHYHsFCDIz87nwl2VLBAJDiHYL9mJIxBAAAEEEECgggTuvvtuNwieLq9Bdv2Au/quUefV\nFF61+UoaVT9Rzbma6n/44YduALyXXnrJdtppJ3d87I9vvvnGNdMfMWKEa+p/1FFHuab7scek\ns05wn44e5yJQ/gIE+eVvzhUzKxAJsiPYz6wpuSGAAAIIIIBABgQ0dd3BBx/sasvVJ19989V/\n3if1v/d96IcNG2aHHnqo3xVdql+++uwrde/e3e688063PmrUKLvttttcUK/57n3Si4NbbrnF\natWq5TelvCS4T5mOExGoUIEqFXp1Lo5A+gIFQRaDgo9eWHUMPqFO+p+tPpUqVXLL1q1bh7q8\nFA4BBBBAAIFcFlD/eg1mp/93a6l57ffff/9okdQf/4knnnCB+uzZs61nz57u//HRA4KVhg0b\n2gcffOBq/jU4n0bC32qrrVzT/8cff9z13dfxmjLv6quvNvX/r169emwWpV7X/TLPfanZOAGB\nrBGgJj9rHgU3kiGBSJAPNfsZwiQbBBBAAAEEEEhPQKPeq2++avVVu67a/C233DKaqUawHzly\npPt+zz33JBzNXs311WxfSdPhqRuAkkbY//nnn61BgwaFWgi4nSn8UHCve9AyT1JBUE5VFmlJ\nQiA0AtTkh+ZRUpANAgXBkpp9fh0QQAABBBBAICsEVJuvfvdqdq8p7ypXruym1/M316JFC1ON\nvOa5L6o2f7vttrOPPvrIFixY4Kba06j5muteXQC23npr22STTXx2KS2puU+JjZMQyFoBgvys\nfTTcWJoCBcH5BPtpInI6AggggAACCKQvoEBefe81Ld6XX37pRtHXvPRKCtRVG6/56rVs2rSp\n7bzzzhtddPvtt7fnnnvO9fHXSPvpBva6AMH9RsxsQCAUAjTXD8VjpBBJCESCY2jGnwQUhyCA\nAAIIIIBA0QJff/21aX55zWFfmnT//fdHB80799xz7fLLL4+ermb3GnRP/fYV4I8dO9bV+EcP\n2LCyZs2ajAX3NMuP1+U7AuERIMgPz7OkJMkJRILDCPaTs+IoBBBAAAEEENggoGnqhg4dai+/\n/LL9+eefNm7cOFfrXhTQW2+95UbVV9N6pVWrVrm++cuWLTPV4qtvfuyUeTfddJM9+uij7th/\n//vf5s9zGzL0gz73GYIkGwSyXIAgP8sfELdXZgKRIGeC/TLjJWMEEEAAAQRyX0B96CdOnOgC\n+oKCAhfcq1Rt2rSxO+64w/WHjy/l22+/bUOGDHHN79X/fvLkya7/vI4bPny4O0/rZ511ll11\n1VVadWnx4sXWqVMn16R/n332iQ7G5/ensyS4T0ePcxHIPQGC/Nx7ZtxxZgUiQXYE+5k1JTcE\nEEAAAQRyXmDu3Lk2YMAA++KLLwqVRYH77bffvlFzfQXzCu4/+eST6PFqgn/rrbe6fvfauHr1\nalebv3TpUtfs/vXXX7d69epFj7/33ntt6tSp1q9fP2vVqlV0e6orBPepynEeArktQJCf28+P\nu8+cQCTIimA/c57khAACCCCAQM4KLFmyxLp162ZqWq856dX/vnbt2vbYY4+5bVWqVLFnn33W\ndt11V1fGUaNG2Q03/O/PCE2Zp0Dd74+FePDBB+22225zm84880w3t33s/kysE9xnQpE8EMhd\nAYL83H123HnZCESCbP/3f+myuUbW5Ko/QJT69u2bNffEjSCAAAIIIFDRAtddd50988wzbv55\njYqvaeqUNOBejx493FR4vXr1Mh2nNGPGDLf9gAMOsP79+9tuu+3mtif68euvv7pm+RpJv1at\nWvbxxx8nOiylbQT3KbFxEgKhE6gauhJRIATSE4gEp/tP6IN9jawbmwj2YzVYRwABBBDIVwFN\nZ6ekgN4H+PrerFkzNwq+Bt97//33tcml5s2b2wcffGA1a9b0m4pcatC9Sy+91F555RXTKPuZ\nSAT3mVAkDwTCI0CQH55nSUkyKxAJsvMfgv3M2pIbAggggAACFS6g6eh+//33aH/52Btavny5\n+6pm+/GpTp06btMWW2xRaFcyAb4/4YQTTjB90k0E9+kKcj4C4RQgyA/nc6VUmROIBFn5D8F+\n5lzJCQEEEEAAgYwJrF271mrUqJFUfgqM77vvPvvwww9ds/umTZvaNddcY23bto2er9HzR48e\nbS+88ILrm7/vvvu6fXPmzHFz2OvLnnvuGT2+vFcI7stbnOshkFsC9MnPrefF3Va8QCS4hdAH\n+56ZPvtegiUCCCCAQDYKqKb98ssvd9PUaRT7o48+utjbfOmll9y0dZoaLzZpxPw777zTunbt\n6jarKf4ZZ5zh1vXy4LzzzrMffvjBxo8f7+a733bbbd20eptttllsNmW+TnBf5sRcAIFQCBDk\nh+IxUogKEIgE1yTYrwB4LokAAgggkL8CGu1ezeQVlCu99dZbLgDXesuWLe3555/XaqH07bff\nmqas22GHHeyggw4yDXynWngF9J9++qmpf72SmuEriK9bt677PmzYMDclnvsS80M1/nqhUL9+\n/ZitZbtKcF+2vuSOQNgEqoStQJQHgXISKAiuMyj46EVZx+AT6qQ/LvSpVKmSW7Zu3TrU5aVw\nCCCAAALZJaCa9yuuuMKuvPJKN5Wdbyqv6e0mTpzoatdPPvlk22+//Qrd+KRJk6xnz56u1l15\nTJkyxfT/sIceesgdq0D/zz//dIPmqY/+ihUr3Dz2ykTH/fHHH26fXiAce+yxdskll9hFF13k\nztHo+7fccov961//sscff9y9SNA5/gVEoRtJ8Yv+3ztw4EAbOnSoLVy4MMVccuq0guBuewcf\n/Y01N/iQEEAgBQEFKCQEEEhfIBJkQc1++o7kgAACCCCAwEYC6nOvWnjV5NerV89ef/1122ST\nTdxxCswVWCdqOq8+9N27d3fBus903Lhxpn74PmnwveOOO85Nj1elShX30qBRo0ZutwL4xx57\nzI466ii7/fbb7fvvv7dHH33Unn76afdiwefhl6effrpde+21/mvKS2ruU6bjRAQQCASoyefX\nAIHMCBQE2eits16cdQw+oU7U7If68VI4BBBAIOsEqlat6gL19957z1avXu1q8/faay93n+oz\nX716dddn/uGHH3bN7lXDr6Qm+PPnz3cBvL43adLEzWOvdZ/0gqBBgwZuQD3V6q9cudJNk6f9\n3333nRUUFLjzVXOvJvxTp051A/Y1bNjQTjzxROvcubPbtm7dOvv666/tnHPOSbk2n5p7/1RY\nIoBAOgLU5Kejx7kIFC0QCXZRs1+0D3sQQAABBBAolcCqVausU6dOrlm8+s2/8cYbpjnnldav\nX++a1ytAP/DAA+2///1vNO958+a5EfJ1TFH99nWwAnb10VdtvvrpN27c2DSwn6a6W7BgQTS/\nFi1auPnt1dRfxyppQL8BAwa49QkTJtiOO+7o1pP9Qc19slIchwACyQhQk5+MEscgUHqBguAU\navZL78YZCCCAAAIIJBRQbb3S5MmT3eB5m2++ue29995um2rjp02bZrNnz3Y19+3btzeNgK+0\n5ZZbuiD9yy+/tMWLF9vuu+/uBuFzO2N+6PgxY8a4/vbqAnDYYYe5lwjqi68m/arB32mnnVyN\n/y677FKotl773nzzTdeiQGMH+OA/JvuEq9TcJ2RhIwIIpCnw19CkaWbC6QggUKRAJNijFjMK\n+EOf7rnnHtNHAwTpQ0IAAQQQQCCTAqecckp09HvV1qt23yc/7au+DxkyxG92Sw2W5wNv/X8q\nUdKLAf/SYOzYsab+/EoazV8tBJTiB/bTtlmzZtkdd9yhVdf/v1q1am69uB8K7nv16uU+Ws+D\nVBCU8eANH62TEECgDAWoyS9DXLJGIEagIFinZj8GhFUEEEAAAQRKK6AAWrX27777rmk0/Fq1\natm+++7rstGAfOoT/80335imzdNUd9ttt53bV7t2bTdo3vTp0+3HH3+0Vq1aJazN1/GjR492\ntfnLly93/e2VwbPPPuuCfo3Qf8ghh7hB/nSNESNGuFH/9bJB/f3VZ9+3OHAXjvtBzX0cCF8R\nQKBMBFTDSEIAgfIXiASXpM9++btzRQQQQACBHBNQ0D58+PDoNHcKpj/44ANXCjXF10j7fmT9\nr776yo488ki3b//993cj4fviql99ly5dXNP74vrmn3rqqfbhhx+6Zv0abE/prrvusvvuu8+t\na1R/Ne33Nf3aePjhh9vf//531zXAHRT3Q8G9WhDkSa29Sl8QfFS5oSUJAQTKWYCa/HIG53II\nbBAoCJbU7PPrgAACCCCAQDECr776qp133nn22Wef2S+//OL64mvEe59Um1+zZs1oM3qNqq9+\n+arRV1CvQF8j5yup2f2iRYvsiy++cH3zd911V1f77vPyyz333NO1DojtW69jdS+awk/987VU\n2meffez666+3Cy+8MDqln89HS2ruYzVYRwCB8hKgJr+8pLkOAsULRILd1OwXb8ReBBBAAIE8\nEtAgeQcffLCbrk6D7Gn+eU2bpyD/tddesxdeeCE6nZ5G2ve1+eojf8QRR7gm9+pD//jjj0fV\ndK6mvFOze42SrzwqVUruz2H1y584caLNnTvX6tevb+rDv8MOO0Tzjl2h5j5Wg3UEEChvAWry\ny1uc6yGQWKAg2EzNfmIbtiKAAAII5KHAQw89ZO+//74r+RNPPGEdO3Z0zeEbNWpkHTp0cP3x\nJ02aZGvXrnW16K1bt3bHano9NaVX030F9Qr0Nae9kl4WqE/+559/bj/99JMVVZvvDo77ob72\nOr5du3auKb+6CsQnau7jRfiOAAIVIZDcq8uKuDOuiUB+C0SC4lOzn9+/A5QeAQQQyGuBPn36\nuBp79X8vKCjYyGLdunXWqVMnF7QreNcUdloqqcm++sn/8ccfrkn9yJEjo+f/8MMPduihh5oG\n49Mo/Gpyn26i5j5dQc5HAIFMClCTn0lN8kIgcwIFQVbU7GfOk5wQQAABBLJMQAG45q5funSp\nq6HXqPmxSU3y1bdeI+j37t07dpdb15R4NWrUsLfeessU8KumvU2bNm5fnTp1bN68eTZz5kw3\nqr4CebUAUFKzfjXn79u3b3Sb25HCD2ruU0DjFAQQKHMBavLLnJgLIJARgUiQCzX7GaEkEwQQ\nQACBihRQX3vNK6/aeQX4Shqx/oILLrDzzz/fTZGnbTfccIONGjVKqy6Q32abbdx67A8F94cd\ndpipdl7Bu/rmq4ZeSX3nu3Xr5mrz40faj80jlXVq7lNR4xwEECgvAWryy0ua6yCQnkBBcDo1\n++kZcjYCCCCAQAULaOq7M8880z7++GM3z33VqlVdEK4R69X/Xn3lVcuuwfBUsz927Fh3xxoZ\n3/e5jy2CavM/+ugj1zxfAb/yU0CvpD7zGmFfI+qfccYZpmnz0k3U3KcryPkIIFAeAtTkl4cy\n10Ag8wKRIEtq9jPvSo4IIIAAAmUksGTJEteHfvXq1dasWTM3r7ymq1Mgrunqpk2b5q58zTXX\nuKBcgf9BBx1kP//8s6ul18j29erVK3R3Cuw1yv3y5cvddjXtV22+HxRPXQKU4rsCuI2l+EHN\nfSmwOBQBBCpcgJr8Cn8E3AACKQkUBGdRs58SHSchgAACCFSEgAa5U7CsgfQ0dV3jxo1d8K2A\nvGvXrjZ69GhbtWqVO+akk05yffF//fVX913BvEbM13GxAftTTz3lprVr3ry5m7teI+0r/913\n390VUS0Ckp0iL5EJNfeJVNiGAALZLlA122+Q+0MAgWIFIsFe/wl9zf4999xTCEODJpEQQAAB\nBHJDQNPdKR1//PFWs2bN6E1r/nlNkaelkgL6ZcuWmabCO++882z8+PH2zTffuNHzL774Yrvq\nqqtM/fMnTJhgt956qzvnuuuusy+++ML0UuC4445z29L5Qc19OnqciwACFS1AkF/RT4DrI5AZ\ngUiQjf8Q7GfGlFwQQAABBEopoJp0jXifKK1Zs8Zt1gB5Sqq1f/zxx+2hhx5yQb22tW3b1vr3\n729NmjTRVzdivgJ5ja7/yy+/uCn1NOq+RtLXywClLl262H777ec+bkMaPwju08DjVAQQyBoB\n+uRnzaPgRhDIqEAkyC30wb4X69evn1ulZt+LsEQAAQTKT+DHH3+0J5980o2Ar9p0TV+nKesG\nDhxYaIq6Dh06uFHwDzzwQDfV3YMPPhgdXV+D6qmWft99901447NmzXK1+gsXLiy0/7TTTrNr\nr722UBP+Qgck+YXgPkkoDkMAgZwQIMjPicfETSKQskAkOJNgP2U+TkQAAQQQKE5AwfEll1zi\nBseLP06D4N15552m4F5Jg+uNGTOm0GF6GaDg3s9vH7tTg+bF9r/XQHxTp051ffQ15V6nTp1c\nv/7Yc0q7TnBfWjGORwCBXBAgyM+Fp8Q9IpC+QCTIgmA/fUdyQAABBBDYIKDp7k444QQ3BV6L\nFi1ck3qNmv/666/bsGHDbP369W6U+3HjxtnWW2/tRr2/8MIL3dmay/6uu+6ydu3aJfR85pln\n7I477nCD6vl57xMemOJGgvsU4TgNAQRyQoA++TnxmLhJBNIWiAQ5+E/og30G6Ev794UMEEAA\ngRIF7r77bhfgqzZe/epVu66kke4bNGjgBsjTAHqDBg2yoUOHuqnuNGDeDz/84Ka8U7/6RElN\n/2+88UaXt5r/F/UiING5JW0juC9JiP0IIBAGAYL8MDxFyoBA8gKR4FD/IdhP3o0jEUAAgbwV\nWLx4satR32qrraxbt27OQXPX+9HyL7roomiAr50aEM+PlK/vH374oRZusLybb77Z1fjru8ZR\nGTx4sAv+//zzT1PLAL0MKCgo0G43Xd7+++/v1tP9QXCfriDnI4BALgkQ5OfS0+JeEcicQCTI\nyn8I9jPnSk4IIIBAqAQUHF9wwQVuJPxq1arZ3nvvbfXr17fVq1dHy7nddtu5dQX3zz33nN1/\n//2utl4bW7Zs6Wr0/cGqle/Vq5eNGDHCDbp39tlnu5H09VJAA/j5dNZZZ9nll19eqE++31ea\nJcF9abQ4FgEEwiJAkB+WJ0k5EEhNIBKc5j8E+6kZchYCCCCQMwKqldfnb3/7m9WrVy/hfatW\nfebMmab+9TfccIML8HWggvtvv/3WLTVVnk+fffaZq62/77777LvvvnOb1UdfM59ocLz4pNHw\nGzdu7GrxNa3e7Nmz3SEaZE+j7Gsgv7322iv+tFJ9J7gvFRcHI4BAyAQYeC9kD5TiIJCmQCQ4\nP/TBvjdi6j0vwRIBBMIs8Ouvv9rYsWPtxRdftI8++sgVtVKlSnb44Yfb1VdfXSjY/+233+zE\nE0+06dOnu/nqhwwZYqrB13R3sSPgK8jXnPaa6z426cWA/m099NBDTdcoLn3//fc2ZcoU9+JA\nrQEOPvhgq1u3bnGnlLiP4L5EIg5AAIE8ECj+X988AKCICCCQUCASbCXYT0jDRgQQQCA3BFRL\nPnLkSHvggQdsyZIlCW9a89I/9thjVqVKFbdftfhHHXWUffXVV9HjNYL+P//5z+h3v3LZZZeZ\nRs5XatiwoZsir0uXLgmDew3Mp3tQE/yySAT3ZaFKngggkKsCf/2Lnqt3z30jgEBZCRQEGQ8K\nPnoR2DH4hDrpj0N9VOukpZqLkhBAAIFcEFDgfPvtt7vm8rGj0GsKOg2I9+qrr5pq8mvUqGFH\nHnmkDRgwwA488ED79NNPXS28mtdrertWrVq54urfQQ2w9/LLL0eLr37zu+yyS/S7X9Fo+moh\noKSaeLUK8C8L/DFaKsC/9dZb3TXVv1/N8jOV9G/2wIED3YB9CxcuzFS22ZxPQXBzvYOP/h89\nN/iQEEAAgY0E9Ac8CQEEEChJIBIcQM1+SUrsRwABBMpZ4M4773QD3amP+yuvvOKurtp4TWPn\nkwa6O++881w/fL8tdo779u3bu+b4fp/OP/roo12/fG174oknTDX+iZKa5vvr6hxNfeen0lNz\nfI2mP3HiRHfqqaeean//+98TZVPqbQruNV2qlnmSCoJyKrDXkoQAAggUK8DAe8XysBMBBDYI\nRIKl/4Q+2NcfjrFJ0zyREEAAgWwUqF27trstBdQKzlUTr49q699++22375BDDikU4Gvjbrvt\n5kbK1/R2S5cudcf5Hzpfwbv/t0+19UUF+YMGDXL9/DWl3ujRo936AQcc4F4QTJ061WfpXjKo\nFUG6ieA+XUHORwCBfBDIXHupfNCijAggEAkI1AJItQmhTwr29dG8zfqQEEAAgWwTaNCggbsl\nTV+nQNun/v37+1X371j0S8xKrVq13Ledd945Zutfqxo4TyPkK2laPD9q/l97//dTA+WpT79e\nGigtWLDAnnrqKfMBftOmTe3RRx819d/Xy4NUk4J7tUjQJ09q7wsCq4M3fLROQgABBJIWoE9+\n0lQciAACMQIFwboCff3F1jH4hDrpD0p99AeqlvTZD/XjpnAI5JSA5qtX/3ulbt26uenttK7p\n7jS13bx580y1/JqSbvvtt9culzR6/uDBg13tv4L8uXPnuu1+znv9e6dp9l566SX7448/XL/z\nj73jAAAojUlEQVR+tQhIlBTo9+jRw7bddls3Or6ufcQRR5imytPLBg3Kl2rSv7n0uU9Vj/MQ\nQCBfBVJ/pZqvYpQbAQQSCUSCjaFvxu8LztR7XoIlAghUtMBPP/1kah6vdPfdd1vXrl2jt6Qg\n//jjj3ff99hjD3v66adNNf6jRo2yO+64wzT6fnzSNHba52v5Fbyr/37VqlVd3/p0Avb4axX3\nXcE9fe6LE2IfAgggULQANflF27AHAQSSFygIDqVmP3kvjkQAAQQyIrDpppva8OHDbf369aZA\nXjX2PqlGXTX2c+bMsUWLFrm+9xoYb/z48fb777+7wzSv/TbbbGOLFy9231Wjr5r/zp07u+/a\npz75qs1Xq4FOnTr57MtkSc19mbCSKQII5JkANfl59sApLgLlJBAJrkPNfjlhcxkEEMhvAQXk\napav/urXXXddIQwF+ccee2yhbdWrV7eTTz7ZevbsaU2aNHH7pkyZYueee66tXbvWfVdg76fN\nU2sAtQrQ9HgaKb9Ro0aF8svEF2ruM6FIHggggMBfAtTk85uAAAJlIVAQZErNflnIkicCCCAQ\n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","type":"binary"},{"name":"www/logos.png","content":"iVBORw0KGgoAAAANSUhEUgAABbYAAADVCAYAAACLx6ayAAAATmVYSWZNTQAqAAAACAAEARoA\nBQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAAAhMAAwAAAAEAAQAAAAAAAAAAAGAA\nAAABAAAAYAAAAAF3Bd/nAABAAElEQVR4AeydBWAU1xaG/xD34AQSCO7u7tpSpNS9UKUGdXlt\nqRvUvdSpQEuN4u7uJHhCiLt7yDvnbmbZ3axGSFLOfW+zM3eufjOzZf85+1+nEkqQJASEgBAQ\nAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQqCWEKhTS8YpwxQCQkAICAEhIASEgBAQAkJA\nCAgBISAEhIAQEAJCQAgIASGgCIiwLReCEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJC\nQAjUKgIibNeq0yWDFQJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBEbblGhACQkAI\nCAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIgVpFQITtWnW6ZLBCQAgIASEgBISAEBACQkAI\nCAEhIASEgBAQAkJACAgBISDCtlwDQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASFQ\nqwiIsF2rTpcMVggIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAERNiWa0AICAEhIASE\ngBAQAkJACAgBISAEhIAQEAJCQAgIASEgBGoVARG2a9XpksEKASEgBISAEBACQkAICAEhIASE\ngBAQAkJACAgBISAEhIAI23INCAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBIRArSIg\nwnatOl0yWCEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEGFbrgEhIASEgBAQAkJA\nCAgBISAEhIAQEAJCQAgIASEgBISAEKhVBETYrlWnSwYrBISAEBACQkAICAEhIASEgBAQAkJA\nCAgBISAEhIAQEAIibMs1IASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACtYqACNu1\n6nTJYIWAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQIRtuQaEgBAQAkJACAgBISAE\nhIAQEAJCQAgIASEgBISAEBACQqBWEXCpVaOVwQoBISAEhIAQEAJCwITAhfwC5MYmoCAlFXnx\n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","type":"binary"},{"name":"www/logos2.png","content":"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\nLP8wlwAAAABJRU5ErkJggg==","type":"binary"}]
diff --git a/scripts/compare_ocs_results.R b/scripts/compare_ocs_results.R
index 83d3958..cffdbe8 100644
--- a/scripts/compare_ocs_results.R
+++ b/scripts/compare_ocs_results.R
@@ -69,17 +69,167 @@ joint_ebvs$index_val <- as.vector(
candidates_with_ebv <- left_join(candidates, joint_ebvs, by = c("id" = "ID")) %>%
filter(!is.na(index_val))
-# Run custom OCS
-cat("🚀 Running custom OCS...\n")
-custom_results <- run_custom_ocs(
- candidates_df = candidates_with_ebv,
- kinship_matrix = kinship_matrix,
- ebv_index = candidates_with_ebv$index_val,
- desired_inbreeding_rate = TEST_PARAMS$inbreeding_rate,
- num_offspring = TEST_PARAMS$num_offspring
+# Prepare candidate objects for solver comparisons
+phen <- data.frame(
+ Indiv = candidates_with_ebv$id,
+ Sex = ifelse(candidates_with_ebv$sex == "M", "male", "female"),
+ BV = candidates_with_ebv$index_val,
+ isCandidate = TRUE,
+ stringsAsFactors = FALSE
)
-cat(" ✓ Custom OCS completed\n\n")
+candidate_ids <- candidates_with_ebv$id
+sKin <- kinship_matrix[candidate_ids, candidate_ids]
+rownames(sKin) <- candidate_ids
+colnames(sKin) <- candidate_ids
+
+cand_obj <- custom_candes(phen = phen, pKin = sKin, quiet = TRUE)
+
+with_force_pure_r <- function(flag, expr) {
+ env <- globalenv()
+ had_force <- exists("force_pure_r", envir = env, inherits = FALSE)
+ if (had_force) {
+ old_force <- get("force_pure_r", envir = env, inherits = FALSE)
+ }
+ assign("force_pure_r", flag, envir = env)
+ on.exit({
+ if (had_force) {
+ assign("force_pure_r", old_force, envir = env)
+ } else {
+ rm("force_pure_r", envir = env)
+ }
+ }, add = TRUE)
+ eval(substitute(expr), envir = parent.frame())
+}
+
+kin_targets <- unique(pmin(
+ 0.99,
+ pmax(
+ 1e-6,
+ c(
+ TEST_PARAMS$inbreeding_rate,
+ TEST_PARAMS$inbreeding_rate * 0.85,
+ TEST_PARAMS$inbreeding_rate * 1.15
+ )
+ )
+))
+
+benchmark_rows <- vector("list", length(kin_targets))
+benchmark_details <- vector("list", length(kin_targets))
+
+cat("🧪 Comparing quadprog vs pure-R fallback across targets...\n")
+for (i in seq_along(kin_targets)) {
+ target <- kin_targets[i]
+ con <- list(ub.pKin = target)
+
+ quad_opt <- with_force_pure_r(
+ FALSE,
+ custom_opticont(method = "max.BV", cand = cand_obj, con = con, quiet = TRUE)
+ )
+ pure_opt <- with_force_pure_r(
+ TRUE,
+ custom_opticont(method = "max.BV", cand = cand_obj, con = con, quiet = TRUE)
+ )
+
+ trace_info <- pure_opt$fallback_trace
+ if (is.null(trace_info)) trace_info <- list()
+ trace_backtracks <- if (length(trace_info) > 0) {
+ suppressWarnings(vapply(trace_info, function(x) {
+ if (is.null(x$backtracks)) NA_real_ else x$backtracks
+ }, numeric(1)))
+ } else {
+ numeric(0)
+ }
+ trace_grad <- if (length(trace_info) > 0) {
+ suppressWarnings(vapply(trace_info, function(x) {
+ if (is.null(x$grad_norm)) NA_real_ else x$grad_norm
+ }, numeric(1)))
+ } else {
+ numeric(0)
+ }
+
+ max_backtracks <- if (length(trace_backtracks) > 0 && any(is.finite(trace_backtracks))) {
+ max(trace_backtracks, na.rm = TRUE)
+ } else {
+ NA_real_
+ }
+ mean_grad <- if (length(trace_grad) > 0 && any(is.finite(trace_grad))) {
+ mean(trace_grad, na.rm = TRUE)
+ } else {
+ NA_real_
+ }
+ last_inner <- if (length(trace_info) > 0) {
+ entry <- trace_info[[length(trace_info)]]
+ if (is.null(entry$inner_iter)) NA_integer_ else entry$inner_iter
+ } else {
+ NA_integer_
+ }
+
+ quad_error <- abs(quad_opt$mean.kin - target)
+ pure_error <- abs(pure_opt$mean.kin - target)
+ bv_diff <- abs(pure_opt$mean.bv - quad_opt$mean.bv)
+ rel_bv_diff <- if (abs(quad_opt$mean.bv) > 1e-10) bv_diff / abs(quad_opt$mean.bv) else 0
+
+ parent_df <- pure_opt$parent
+ male_sum <- sum(parent_df$oc[parent_df$Sex == "male"])
+ female_sum <- sum(parent_df$oc[parent_df$Sex == "female"])
+ min_contrib <- min(parent_df$oc)
+
+ kin_ok <- pure_error <= 1e-4 && pure_error <= 2 * max(quad_error, 1e-10)
+ bv_ok <- bv_diff <= 1e-4 || rel_bv_diff <= 1e-3
+ contrib_ok <- (min_contrib >= -1e-8) &&
+ (abs(male_sum - 0.5) <= 1e-6) &&
+ (abs(female_sum - 0.5) <= 1e-6)
+
+ benchmark_rows[[i]] <- tibble(
+ target_kin = target,
+ mean_kin_quad = quad_opt$mean.kin,
+ mean_kin_pure = pure_opt$mean.kin,
+ kin_error_quad = quad_error,
+ kin_error_pure = pure_error,
+ mean_bv_quad = quad_opt$mean.bv,
+ mean_bv_pure = pure_opt$mean.bv,
+ bv_gap = bv_diff,
+ kin_ok = kin_ok,
+ bv_ok = bv_ok,
+ contrib_ok = contrib_ok,
+ all_checks = kin_ok & bv_ok & contrib_ok,
+ trace_len = length(trace_info),
+ max_backtracks = max_backtracks,
+ mean_grad_norm = mean_grad,
+ last_inner_iter = last_inner
+ )
+
+ benchmark_details[[i]] <- list(
+ target = target,
+ quad_opt = quad_opt,
+ pure_opt = pure_opt,
+ trace = trace_info
+ )
+}
+
+benchmark_table <- bind_rows(benchmark_rows)
+print(benchmark_table)
+
+if (any(!benchmark_table$all_checks)) {
+ stop("❌ Pure-R fallback failed tolerance checks. Investigate benchmark_table for details.")
+} else {
+ cat(" ✓ Pure-R fallback matches quadprog within tolerances for tested targets.\n\n")
+}
+
+default_target <- TEST_PARAMS$inbreeding_rate
+custom_results <- with_force_pure_r(
+ FALSE,
+ run_custom_ocs(
+ candidates_df = candidates_with_ebv,
+ kinship_matrix = kinship_matrix,
+ ebv_index = candidates_with_ebv$index_val,
+ desired_inbreeding_rate = default_target,
+ num_offspring = TEST_PARAMS$num_offspring
+ )
+)
+
+cat("🚀 Default target quadprog run completed for comparison outputs.\n\n")
# Check if optiSel is available
optisel_available <- FALSE
diff --git a/scripts/optsel_fallback.R b/scripts/optsel_fallback.R
index 302ce45..daf953e 100644
--- a/scripts/optsel_fallback.R
+++ b/scripts/optsel_fallback.R
@@ -625,10 +625,6 @@ server <- function(input, output, session) {
req(ocs_results())
results <- ocs_results()
- wb <- openxlsx::createWorkbook()
-
- # Add README
- addWorksheet(wb, "README")
readme_text <- c(
"Optimum Contribution Selection Results",
"",
@@ -645,25 +641,41 @@ server <- function(input, output, session) {
"",
"The patterns in your genetic data have been thoroughly analyzed."
)
- writeData(wb, "README", readme_text)
-
- # Add optimal contributions
- addWorksheet(wb, "Optimal Contributions")
+
+ use_openxlsx <- exists("openxlsx_available") && isTRUE(openxlsx_available)
+
contrib_df <- results$Candidate %>%
select(Indiv, Sex, oc, n) %>%
mutate(`Contribution (%)` = round(oc * 100, 2)) %>%
rename(`ID` = Indiv, `# Offspring` = n)
- writeData(wb, "Optimal Contributions", contrib_df)
-
- # Add mating plan
- addWorksheet(wb, "Mating Plan")
+
mating_df <- results$Mating %>%
mutate(Kinship = round(Kin, 4)) %>%
select(Sire, Dam, Kinship, n) %>%
rename(`# Matings` = n)
- writeData(wb, "Mating Plan", mating_df)
-
- saveWorkbook(wb, file, overwrite = TRUE)
+
+ if (use_openxlsx) {
+ wb <- openxlsx::createWorkbook()
+
+ addWorksheet(wb, "README")
+ writeData(wb, "README", readme_text)
+
+ addWorksheet(wb, "Optimal Contributions")
+ writeData(wb, "Optimal Contributions", contrib_df)
+
+ addWorksheet(wb, "Mating Plan")
+ writeData(wb, "Mating Plan", mating_df)
+
+ saveWorkbook(wb, file, overwrite = TRUE)
+ } else {
+ sheets <- list(
+ README = data.frame(Text = readme_text, stringsAsFactors = FALSE),
+ `Optimal Contributions` = as.data.frame(contrib_df, stringsAsFactors = FALSE),
+ `Mating Plan` = as.data.frame(mating_df, stringsAsFactors = FALSE)
+ )
+
+ write_xlsx_pure(file, sheets)
+ }
}
)
}
diff --git a/scripts/serve_shinylive.R b/scripts/serve_shinylive.R
index b649e19..43c4660 100644
--- a/scripts/serve_shinylive.R
+++ b/scripts/serve_shinylive.R
@@ -28,7 +28,9 @@ cat(sprintf("Serving %s at http://%s:%d\n", dir_to_serve, host, port))
# Start server
srv <- httpuv::runStaticServer(dir_to_serve, port = port, host = host)
-url <- sprintf("http://%s:%d", host, port)
+# Open in editor mode to show code alongside the app
+url <- sprintf("http://%s:%d/AlloMate/edit/", host, port)
+cat(sprintf("Opening in editor mode: %s\n", url))
try(utils::browseURL(url), silent = TRUE)
# Keep the process alive
diff --git a/shinylive_export/app.json b/shinylive_export/app.json
deleted file mode 100644
index bd5a015..0000000
--- a/shinylive_export/app.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"name":"server.R","content":"# All packages are loaded in global.R\n# optiSel availability is checked in global.R\n\n# All functions are now loaded from the organized functions folder\n# See functions/load_all_functions.R for details\n\n#### Server Function ####\n\nserver <- function(input, output, session) {\n \n # Package status output\n output$package_status_text <- renderText({\n generate_package_status()\n })\n \n # WebR detection output\n output$webr_detected <- renderText({\n if (is_webr_environment()) {\n \"WebR detected\"\n } else {\n \"\"\n }\n })\n outputOptions(output, \"webr_detected\", suspendWhenHidden = FALSE)\n \n # Help button functionality\n observeEvent(input$help_btn, {\n updateTabsetPanel(session, \"main_tabs\", selected = \"Help\")\n })\n \n # View R Code button functionality\n observeEvent(input$view_r_code_btn, {\n updateTabsetPanel(session, \"main_tabs\", selected = \"R Code\")\n })\n \n # Back to top functionality\n observeEvent(input$back_to_top, {\n runjs(\"document.querySelector('.help-content').scrollTop = 0;\")\n })\n \n # Enhanced markdown to HTML conversion function\n markdown_to_html <- function(markdown_text) {\n # Split into lines for processing\n lines <- strsplit(markdown_text, \"\\n\")[[1]]\n html_lines <- character(length(lines))\n in_code_block <- FALSE\n in_list <- FALSE\n list_type <- \"\"\n \n for (i in seq_along(lines)) {\n line <- lines[i]\n \n # Handle code blocks\n if (grepl(\"^```\", line)) {\n if (!in_code_block) {\n html_lines[i] <- \"\"\n in_code_block <- TRUE\n } else {\n html_lines[i] <- \"<\/code><\/pre>\"\n in_code_block <- FALSE\n }\n next\n }\n \n if (in_code_block) {\n html_lines[i] <- paste0(\"\", line, \"<\/span>\")\n next\n }\n \n # Handle headers\n if (grepl(\"^# \", line)) {\n level <- nchar(gsub(\"^(#+).*\", \"\\\\1\", line))\n content <- gsub(\"^#+ \", \"\", line)\n # Add emoji support for main headers\n if (level == 1) {\n content <- paste0(\"🧬 \", content)\n } else if (level == 2) {\n content <- paste0(\"🚀 \", content)\n } else if (level == 3) {\n content <- paste0(\"📁 \", content)\n } else if (level == 4) {\n content <- paste0(\"🛠️ \", content)\n } else if (level == 5) {\n content <- paste0(\"📊 \", content)\n } else if (level == 6) {\n content <- paste0(\"🔧 \", content)\n }\n # Create anchor ID for TOC linking\n anchor <- tolower(gsub(\"[^a-zA-Z0-9\\\\s]\", \"\", content))\n anchor <- gsub(\"\\\\s+\", \"-\", anchor)\n \n html_lines[i] <- paste0(\"\", content, \"<\/h\", level, \">\")\n next\n }\n \n # Handle bold and italic\n line <- gsub(\"\\\\*\\\\*(.+?)\\\\*\\\\*\", \"\\\\1<\/strong>\", line)\n line <- gsub(\"\\\\*(.+?)\\\\*\", \"\\\\1<\/em>\", line)\n \n # Handle inline code\n line <- gsub(\"`(.+?)`\", \"\\\\1<\/code>\", line)\n \n # Handle links\n line <- gsub(\"\\\\[(.+?)\\\\]\\\\((.+?)\\\\)\", \"\\\\1<\/a>\", line)\n \n # Handle lists\n if (grepl(\"^[*-] \", line)) {\n content <- gsub(\"^[*-] \", \"\", line)\n if (!in_list) {\n html_lines[i] <- paste0(\"- \", content, \"<\/li>\")\n in_list <- TRUE\n list_type <- \"ul\"\n } else {\n html_lines[i] <- paste0(\"
- \", content, \"<\/li>\")\n }\n next\n }\n \n # Handle numbered lists\n if (grepl(\"^\\\\d+\\\\. \", line)) {\n content <- gsub(\"^\\\\d+\\\\. \", \"\", line)\n if (!in_list) {\n html_lines[i] <- paste0(\"
- \", content, \"<\/li>\")\n in_list <- TRUE\n list_type <- \"ol\"\n } else {\n html_lines[i] <- paste0(\"
- \", content, \"<\/li>\")\n }\n next\n }\n \n # Close lists when we encounter a non-list line\n if (in_list && !grepl(\"^[*-] \", line) && !grepl(\"^\\\\d+\\\\. \", line) && nchar(trimws(line)) > 0) {\n html_lines[i-1] <- paste0(html_lines[i-1], paste0(\"<\/\", list_type, \">\"))\n in_list <- FALSE\n list_type <- \"\"\n }\n \n # Handle horizontal rules\n if (grepl(\"^---$\", line)) {\n html_lines[i] <- \"
\"\n next\n }\n \n # Handle empty lines (paragraph breaks)\n if (nchar(trimws(line)) == 0) {\n html_lines[i] <- \"<\/p>\"\n next\n }\n \n # Regular text\n if (i == 1 || (i > 1 && nchar(trimws(html_lines[i-1])) == 0)) {\n html_lines[i] <- paste0(\"
\", line)\n } else {\n html_lines[i] <- line\n }\n }\n \n # Close any open lists\n if (in_list) {\n html_lines[length(html_lines)] <- paste0(html_lines[length(html_lines)], paste0(\"<\/\", list_type, \">\"))\n }\n \n # Close any open paragraphs\n if (length(html_lines) > 0 && grepl(\"^
\", html_lines[1])) {\n html_lines[1] <- paste0(html_lines[1], \"<\/p>\")\n }\n \n # Combine and clean up\n html_content <- paste(html_lines, collapse = \"\\n\")\n html_content <- gsub(\"<\/p>
<\/p>
\", \"<\/p>
\", html_content)\n html_content <- gsub(\"^<\/p>\", \"\", html_content)\n html_content <- gsub(\"<\/p>$\", \"\", html_content)\n \n return(html_content)\n }\n \n # Generate table of contents function\n generate_toc <- function(markdown_text) {\n lines <- strsplit(markdown_text, \"\\n\")[[1]]\n toc_items <- character(0)\n \n for (line in lines) {\n if (grepl(\"^# \", line)) {\n level <- nchar(gsub(\"^(#+).*\", \"\\\\1\", line))\n content <- gsub(\"^#+ \", \"\", line)\n \n # Create anchor for linking\n anchor <- tolower(gsub(\"[^a-zA-Z0-9\\\\s]\", \"\", content))\n anchor <- gsub(\"\\\\s+\", \"-\", anchor)\n \n # Indent based on header level\n indent <- paste(rep(\" \", level - 1), collapse = \"\")\n \n # Add to TOC\n toc_items <- c(toc_items, \n paste0('