## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse  = TRUE,
  comment   = "#>",
  eval      = FALSE
)

## ----install-cran-------------------------------------------------------------
# install.packages("easyLSEA")

## ----install-github-----------------------------------------------------------
# # install.packages("remotes")
# remotes::install_github("DavidGO464/easyLSEA")

## ----install-fgsea------------------------------------------------------------
# BiocManager::install("fgsea")

## ----quickstart---------------------------------------------------------------
# library(easyLSEA)
# 
# resultado <- easyLSEA(
#   data      = mis_datos_lipidicos,
#   lipid_col = "LipidName",
#   fc_col    = "logFC",
#   pval_col  = "P.Value",
#   case_lbl  = "NASH",
#   ref_lbl   = "Control",
#   engine    = "both",  # ejecutar KS y fgsea
#   min_rank  = "E"      # incluir todos los ranks excepto P y NA (por defecto)
# )

## ----meta---------------------------------------------------------------------
# resultado$meta$date
# resultado$meta$case_lbl
# resultado$meta$n_lipids

## ----lsea---------------------------------------------------------------------
# # Resultados KS — una fila por conjunto lipídico por nivel de agrupación
# head(resultado$lsea$ks)
# 
# # Resultados fgsea
# head(resultado$lsea$fgsea)
# 
# # Tabla combinada con columna de Convergencia
# head(resultado$lsea$combined)

## ----chains-------------------------------------------------------------------
# # Long format — una fila por cadena acilo por lípido
# head(resultado$chains$parsed)
# 
# # Resumen del estado de parseo — una fila por lípido
# head(resultado$chains$summary)
# 
# # Wide format — una fila por lípido con posiciones sn y totales
# head(resultado$chains$wide)

## ----plots-list---------------------------------------------------------------
# # Ver todos los plots disponibles
# names(resultado$plots$lsea)
# names(resultado$plots$chains)

## ----input--------------------------------------------------------------------
# # Datos anotados con LipidClass, LipidCategory_LMAPS, etc.
# head(resultado$input$data)
# 
# # Columnas de agrupación evaluadas
# resultado$input$group_cols

## ----view-plots---------------------------------------------------------------
# # Bubble plot KS — todas las clases lipídicas
# resultado$plots$lsea$bubble_ks_01_Class
# 
# # Bubble plot fgsea — solo conjuntos significativos
# resultado$plots$lsea$bubble_fgsea_sig_01_Class
# 
# # Gráfico de distribución — nivel de clase lipídica
# resultado$plots$lsea$dist_01_Class

## ----bubble-label-------------------------------------------------------------
# # Regenerar plots mostrando solo FDR y n
# plots <- plot_lsea(
#   resultado$lsea,
#   case_lbl     = "NASH",
#   ref_lbl      = "Control",
#   bubble_label = c("FDR", "n")
# )

## ----export-------------------------------------------------------------------
# export_lsea(
#   resultado,
#   dir    = tempdir(),
#   format = c("csv", "excel", "pdf")
# )

## ----advanced-separate--------------------------------------------------------
# # Paso 1: anotar
# anotado <- annotate_lipids(mis_datos_lipidicos, lipid_col = "LipidName")
# 
# # Paso 2: ejecutar el enriquecimiento
# lsea_res <- run_lsea(
#   data      = anotado,
#   fc_col    = "logFC",
#   engine    = "both",
#   case_lbl  = "NASH",
#   ref_lbl   = "Control"
# )
# 
# # Paso 3: generar plots manualmente
# plots <- plot_lsea(
#   lsea_res,
#   case_lbl     = "NASH",
#   ref_lbl      = "Control",
#   fdr_thresh   = 0.05,
#   bubble_label = c("FDR", "DS", "NES", "n")
# )
# 
# # Paso 4: gráfico de distribución para un nivel específico
# p_dist <- plot_distribution(
#   data        = anotado,
#   lsea_result = lsea_res,
#   group_col   = "LipidClass",
#   case_lbl    = "NASH",
#   ref_lbl     = "Control"
# )

## ----fgsea-rank---------------------------------------------------------------
# # Por defecto: pi-valor = signo(logFC) × −log10(P.Value)
# # Combina magnitud del efecto y significancia estadística
# 
# # Alternativa: solo logFC
# resultado_fc <- easyLSEA(
#   data        = mis_datos_lipidicos,
#   engine      = "fgsea",
#   fgsea_rank  = "logFC"
# )
# 
# # Alternativa: estadístico t de LIMMA (requiere columna 't')
# resultado_t <- easyLSEA(
#   data        = mis_datos_lipidicos,
#   engine      = "fgsea",
#   fgsea_rank  = "t_stat"
# )

## ----thresholds---------------------------------------------------------------
# resultado <- easyLSEA(
#   data        = mis_datos_lipidicos,
#   min_n       = 5L,      # mínimo 5 lípidos por conjunto
#   n_perm      = 5000L,   # más permutaciones para DS_perm_pval
#   fgsea_nperm = 20000L   # más permutaciones para fgsea
# )

## ----min-rank-----------------------------------------------------------------
# # Por defecto: incluye todos excepto P y NA
# resultado_todos <- easyLSEA(data = mis_datos_lipidicos, min_rank = "E")
# 
# # Estricto: solo anotaciones de alta confianza (A y B)
# resultado_estricto <- easyLSEA(data = mis_datos_lipidicos, min_rank = "B")
# 
# # O directamente en parse_lipid_chains
# cadenas_estrictas <- parse_lipid_chains(anotado, min_rank = "B")
# table(cadenas_estrictas$summary$status)

## ----session, eval = TRUE-----------------------------------------------------
sessionInfo()

