## ----eval = FALSE-------------------------------------------------------------
# install.packages("NetSurvProx")

## ----eval = FALSE-------------------------------------------------------------
# library(NetSurvProx)

## ----eval = FALSE-------------------------------------------------------------
# 
#  # --- SHARED REGULATORY SCHEME FOR INTERCONNECTED MODULES ---
# 
#     s1 <- 5
#     s2 <- 3
# 
#     targets <- 10
# 
#     shared_scheme <- list(
#       list(tfs = c(1, 3), shared = s1, unique = c(targets - s1, targets - s1)),
#       list(tfs = c(2, 4), shared = s2, unique = c(targets - s2, targets - s2)))
# 
#  # --- SIMULATE DATA USING Simulations() ---
# 
#     simul_data <- Simulations(
#         n             = 165,
#         r             = 40,
#         targets       = targets,
#         p_active      = 40,
#         rho           = 0.7,
#         rate          = 0.5,
#         b_true        = c(0.8, 1.2, -1.2, -0.8),
#         nsimul        = 1,
#         model         = "COXNet",
#         baseline      = "weibull",
#         phi           = 0.1,
#         sigma_true    = NULL,
#         breaks        = NULL,
#         hazards       = NULL,
#         shared_scheme = shared_scheme,
#         choice        = 1,
#         save          = FALSE,
#         save_path     = NULL,
#         seed          = 2026,
#         verbose       = FALSE)
# 
#   # --- EXTRACT COMPONENTS ---
# 
#    X     <- simul_data$X_list[[1]]
#    Y     <- simul_data$time_list[[1]]
#    delta <- simul_data$delta_list[[1]]
# 
#    L <- simul_data$L_list[[1]]
# 
#    beta_true <- as.vector(simul_data$beta_list[[1]])
# 

## ----eval = FALSE-------------------------------------------------------------
# 
#  # --- SEED FOR REPRODUCIBILITY ---
# 
#   set.seed(2026)
# 
#  # --- SPLIT (50/50) ---
# 
#    train_frac <- 0.5
#    train_idx  <- sample(seq_len(nrow(X)), size = floor(train_frac * nrow(X)), replace = FALSE)
#    test_idx   <- setdiff(seq_len(nrow(X)), train_idx)
# 
#    X_train <- X[train_idx, , drop = FALSE]
#    Y_train <- Y[train_idx]
#    delta_train <- delta[train_idx]
# 
#    X_test <- X[test_idx, , drop = FALSE]
#    Y_test <- Y[test_idx]
#    delta_test <- delta[test_idx]
# 

## ----eval = FALSE-------------------------------------------------------------
# 
#  # --- FIT THE ENTIRE PROCEDURE USING NetSurvProx() ---
# 
#    fit_simulation <- NetSurvProx(
#           X_train, Y_train, delta_train,
#           X_test, Y_test, delta_test,
#           L                 = L,
#           standardize_train = TRUE,
#           standardize_test  = TRUE,
#           model             = "COXNet",
#           dist              = NULL,
#           select_lambda     = TRUE,
#           alpha_grid        = c(0.3, 0.5, 0.7),
#           nlambda           = 50,
#           lambda_ratio      = 0.01,
#           nfolds            = 5,
#           method            = "median",
#           probs             = seq(0.25, 0.80, by = 0.05),
#           cutoffplot        = FALSE,
#           seed              = 2026,
#           value             = 2,
#           niter             = 1000,
#           conv              = 1e-3,
#           parallel_cv       = TRUE,
#           plotCV            = FALSE,
#           colors_pcv        = NULL,
#           errorbar          = FALSE,
#           ncore_max         = 5,
#           p_active          = 40,
#           times_auc         = NULL,
#           beta_true         = beta_true,
#           metrics           = c("CIndex", "FNR", "FPR", "NSR"),
#           verbose           = FALSE,
#           plot_test         = TRUE)
# 

## ----eval = FALSE-------------------------------------------------------------
# 
#  # --- PERFORMANCE RESULTS ---
# 
#   data.frame(fit_simulation$fit_testing$performance)
# 

## ----eval = FALSE-------------------------------------------------------------
# 
#  # --- LOAD DATASET ---
# 
#   data(LUADdataset)
# 

## ----eval = FALSE-------------------------------------------------------------
# 
#  # --- NETWORK BUIDING USING CreateNetwork() ---
# 
#   net_result <- CreateNetwork(
#       X            = LUADdataset$X_train,
#       doid         = "DOID:1324",
#       tissue       = "lung",
#       disease_file = NULL,
#       tissue_file  = NULL,
#       choice       = 1,
#       model        = NULL,
#       dist         = NULL)
# 
#  # --- FINAL LAPLACIAN MATRIX ---
# 
#   L <- net_result$L
# 
#  # --- DISEASE GENES AND SCORES ---
# 
#   disease_genes <- net_result$disease_genes$standard_name
# 

## ----eval = FALSE-------------------------------------------------------------
# 
#  # --- SCREENING USING VariableScreening() ---
# 
#     screening_res <- VariableScreening(
#         LUADdataset$X_train,
#         disease_genes = disease_genes,
#         screening     = "BMD")
# 
#  # --- LIST OF d SCREENED VARIABLES ---
# 
#     selected_genes <- screening_res$screen_vars
# 
#     index_screen   <- match(selected_genes, colnames(LUADdataset$X_train))
#     index_screen   <- index_screen[!is.na(index_screen)]
# 
#     X_train        <- as.matrix(LUADdataset$X_train[, index_screen])
#     X_test         <- as.matrix(LUADdataset$X_test[, index_screen])
#     L              <- L[index_screen, index_screen]
# 

## ----eval = FALSE-------------------------------------------------------------
# 
#  # --- FIT THE MODEL USING NetSurvProx_Training() ---
# 
#   fit_training <- NetSurvProx_Training(
#           X_train,
#           LUADdataset$Y_train,
#           LUADdataset$delta_train,
#           L             = L,
#           model         = "AFTNet",
#           dist          = "loglogistic",
#           select_lambda = TRUE,
#           alpha_grid    = c(0.3, 0.5, 0.7),
#           nlambda       = 50,
#           lambda_ratio  = 0.01,
#           nfolds        = 5,
#           method        = "median",
#           probs         = seq(0.25, 0.80, by = 0.05),
#           cutoffplot    = TRUE,
#           seed          = 2026,
#           value         = 2,
#           niter         = 1000,
#           conv          = 1e-3,
#           parallel      = TRUE,
#           plotCV        = FALSE,
#           colors_pcv    = NULL,
#           errorbar      = FALSE,
#           ncore_max     = 5,
#           standardize   = TRUE,
#           verbose       = FALSE,
#           palette       = NULL)
# 
#  # --- ESTIMATED REGRESSION COEFFICIENTS ---
# 
#     beta <- fit_training$beta
# 
#  # --- OPTIMAL CUT-OFF FOR STRATIFICATION ---
# 
#     opt_cutoff <- fit_training$cutoff.opt
# 

## ----eval = FALSE-------------------------------------------------------------
# 
#  # --- PATHWAY ANALYSIS USIGN PathwayDashboard() ---
# 
#     genes_list <- rownames(beta)[beta != 0]
# 
#     PathwayDashboard(
#         genes_list,
#         useKeggAPI       = TRUE,
#         pathwayFile      = NULL,
#         nodesCols        = c("#5C7997", "#F5C59F"),
#         diseaseNodes     = TRUE,
#         disease_file     = disease_genes,
#         top_percent      = 20,
#         batch_size       = 10,
#         background_genes = colnames(X_train),
#         min_genes        = 2,
#         top_n            = 10,
#         db_name          = "org.Hs.eg.db",
#         organism         = "hsa",
#         out_dir          = NULL,
#         open_browser     = TRUE,
#         verbose          = FALSE)
# 

## ----eval = FALSE-------------------------------------------------------------
# 
#   # --- FIT THE MODEL USING NetSurvProx_Testing() ---
# 
#   fit_testing <- NetSurvProx_Testing(
#                     X_train,
#                     standardize = TRUE,
#                     LUADdataset$Y_train,
#                     LUADdataset$delta_train,
#                     X_test,
#                     LUADdataset$Y_test,
#                     LUADdataset$delta_test,
#                     model = "AFTNet",
#                     dist  = "loglogistic",
#                     beta, opt_cutoff,
#                     times_auc = NULL,
#                     metrics   = c("CIndex", "NSR", "AUC"),
#                     verbose   = FALSE,
#                     plot      = FALSE,
#                     palette   = NULL)
# 

## ----eval = FALSE-------------------------------------------------------------
# 
#  # --- PERFORMANCE RESULTS ---
# 
#   data.frame(fit_testing$performance)
# 

## -----------------------------------------------------------------------------

  sessionInfo()


