Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

agriDesignR Banner

Release R version R-CMD-check Codecov test coverage pkgdown documentation License Shiny GUI Engines


🌱 agriDesignR agriDesignR Hex Logo

Motor Asistido de Decisión, Diagnóstico y Modelos Mixtos para Ciencias Agronómicas y Biológicas

agriDesignR es un paquete de R diseñado para resolver una necesidad crítica en la investigación agrícola, biotecnología vegetal y biología experimental: cerrar la brecha entre el diseño experimental sobre el papel y la parametrización estadística rigurosa.

Documentación: guías pkgdown · planificación · modelos mixtos · diagnósticos y remedios · aplicación Shiny · contribuir · reportar un error

A diferencia de paquetes que asumen que el usuario ya conoce de antemano la parametrización matemática exacta (lme4, glmmTMB, aov), agriDesignR actúa como un árbitro metodológico y motor de decisión asistido integral:

  1. Antes de Sembrar (Pre-Ensayo): Diagnostica gradientes ambientales en invernaderos/campos, recomienda el diseño óptimo (DCA, DBCA, Factorial, Split-Plot, Split-Split-Plot, Cuadro Latino), calcula réplicas mínimas para garantizar poder estadístico, dibuja el croquis espacial 2D de las mesas con unidades experimentales (macetas) y genera la plantilla CSV lista para fenotipar.
  2. Después de Cosechar (Post-Ensayo): Audita supuestos, ajusta tanto ANOVA Clásico Tradicional (aov / lm) como Modelos Lineales Mixtos (LMM / GLMM) con grados de libertad Kenward-Roger / Satterthwaite, descompone interacciones en efectos simples, aplica remedios automáticos (Box-Cox / varIdent), evalúa la Eficiencia Relativa del Bloqueo (Cochran & Cox) y genera figuras vectoriales estilo Nature e informes doctorales en Markdown.
  3. Interfaz Interactiva: Incluye una aplicación web completa en Bootstrap 5 (launch_app()).

🎯 Árbol de Decisión Riguroso: ¿Cuándo usar cada Diseño?

agriDesignR incorpora reglas de decisión metodológicas estrictas para prevenir malas prácticas (como confundir factoriales con parcelas divididas o crear bloques innecesarios):

 ¿Existe heterogeneidad espacial o temporal?
 │
 ┌────────────────────────┴────────────────────────┐
 NO SÍ
 │ │
 ¿Ambiente 100% homogéneo? ¿Cuántos gradientes existen?
 (Cámara de cultivo, in vitro, sustrato uniforme) │
 │ ┌────────────────┴────────────────┐
 🌿 DCA / CRD 1 GRADIENTE 2 GRADIENTES
 (Completamente al Azar) (Mesas de invernadero, pendiente) (Luz + Ventilación)
 Modelo: lm(y ~ Tratamiento) │ │
 ¿Hay restricción física 🏛️ CUADRO LATINO
 al aplicar un factor? Modelo: lm(y ~ Fila + Col + Trt)
 │
 ┌───────────────┴───────────────┐
 NO SÍ (Macro-factor: temperatura de
 │ cámara, riego por inundación)
 🌾 DBCA / RCBD │
 (Bloques Completos al Azar) 🌱 SPLIT-PLOT
 Modelo: lm(y ~ Bloque + Trt) (Parcelas Divididas)
 o lm(y ~ Bloque + FactorA * FactorB) Error A: (1 | Bloque:FactorA)
 Error B: Residual

📋 Criterios Metodológicos:

  • DCA (Completamente al Azar / CRD): Usar únicamente cuando el ambiente es 100% homogéneo (cámaras de cultivo, fitotrones, placas Petri in vitro). Si no hay gradiente, bloquear reduce grados de libertad del error residual y disminuye el poder estadístico.
  • DBCA (Bloques Completos al Azar / RCBD): Usar cuando existe un gradiente (ej: mesas de invernadero, gradiente de luz o pendiente de campo). Todos los tratamientos deben poder aleatorizarse de forma independiente dentro de cada mesa/bloque.
  • Split-Plot (Parcelas Divididas): Usar ESTRICTAMENTE cuando existe una restricción física en la aleatorización (ej: la temperatura se aplica a la mesa completa y los genotipos se aleatorizan dentro de cada mesa). NUNCA usar Split-Plot solo por tener 2 factores. Si ambos factores se pueden aleatorizar maceta por maceta, se DEBE usar un DBCA Factorial.
  • Split-Split-Plot (Parcelas Sub-Subdivididas): Cuando existen dos niveles jerárquicos de restricción física (3 factores).
  • Cuadro Latino (Latin Square): Cuando existen dos gradientes perpendiculares (ej: Filas en sentido de la luz y Columnas en sentido de los extractores de aire).
  • Medidas Repetidas (Repeated Measures): Cuando la misma maceta/planta se evalúa a lo largo del tiempo ($T_1, T_2, \dots, T_k$).

🗺️ Croquis Espaciales 2D del Invernadero y Unidades Experimentales

generate_layout() y plot(layout) generan el croquis espacial de siembra detallando cada Mesa / Bloque, Posición de Maceta y Código Único de Unidad Experimental (Plot_ID):

Croquis 2D Invernadero Split-Plot


📊 Marco Estadístico Dual: ANOVA Clásico vs. Modelos Mixtos

agriDesignR ofrece soporte de primer nivel para ambas aproximaciones estadísticas:

Característica 🏛️ ANOVA Clásico Tradicional (aov / lm) 🚀 Modelos Lineales Mixtos (lme4 / glmmTMB)
Cuándo Elegirlo Diseños perfectamente balanceados, bloques fijos de invernadero, tablas estándar para tesis de pregrado/magíster. Datos desbalanceados, macetas/plantas perdidas, estructuras jerárquicas reales (Split-Plot), bloques como muestra aleatoria.
Pruebas de Hipótesis Pruebas F exactas (Sumas de Cuadrados Tipo I, II, III). Pruebas F con corrección de Kenward-Roger o Satterthwaite.
Comparaciones Múltiples TukeyHSD(), Fisher LSD, Duncan, Scheffé. emmeans con ajuste Tukey, descomposición en efectos simples (by = ...).
Sintaxis R aov(Y ~ Bloque + FactorA * FactorB, data) lmer(Y ~ FactorA * FactorB + (1|Bloque), data)

📦 Instalación

Puedes instalar la versión oficial de desarrollo directamente desde GitHub con remotes:

# Instalar remotes si no lo tienes instalado
if (!requireNamespace("remotes", quietly = TRUE)) {
 install.packages("remotes")
}
# Instalar agriDesignR
remotes::install_github("PALP31/agriDesignR")

🚀 Guía de Uso Rápido (Paso a Paso)

1. Planificación Pre-Ensayo y Croquis de Siembra 2D

library(agriDesignR)
# Diagnosticar si necesitas DCA, DBCA o Split-Plot para tu invernadero
plan <- plan_experiment(
 setting = "greenhouse",
 treatments = list(
 temperature = c("22C", "36C"),
 genotype = paste0("G", 1:5)
 ),
 whole_plot_factor = "temperature",
 sub_plot_factor = "genotype",
 spatial_gradients = "table_to_table"
)
print(plan)
# Generar el croquis aleatorizado de las mesas y exportar plantilla CSV para fenotipar
layout_siembra <- generate_layout(
 design = "Split-Plot",
 treatments = list(temperature = c("22C", "36C"), genotype = paste0("G", 1:5)),
 replications = 4,
 seed = 123,
 output_csv = "plantilla_siembra_invernadero.csv"
)
# Dibujar el mapa 2D de las mesas y macetas
plot(layout_siembra)

2. Opción A: Análisis con ANOVA Clásico Tradicional & Tukey HSD

# Cargar datos de trigo
data("wheat_splitplot")
# 1. Sugerencia de sintaxis para ANOVA y Modelos Mixtos
diag <- check_design(wheat_splitplot, response = "grain_yield", main_plot = "temperature", sub_plot = "genotype", block = "block")
sugg <- suggest_model(diag)
print(sugg)
# 2. Ajuste mediante ANOVA clásico
fit_aov <- aov(grain_yield ~ block + temperature * genotype, data = wheat_splitplot)
summary(fit_aov)
# 3. Comparaciones múltiples estándar de Tukey
TukeyHSD(fit_aov, "genotype")

3. Opción B: Modelos Mixtos (lme4), Efectos Simples y Remedios

# 1. Ajuste con grados de libertad Kenward-Roger y semáforo de supuestos
fit_lmm <- fit_experiment(
 data = wheat_splitplot,
 response = "grain_yield",
 main_plot = "temperature",
 sub_plot = "genotype",
 block = "block"
)
print(fit_lmm)
# 2. Descomposición en Efectos Simples (Genotipos dentro de cada Temperatura)
post_simples <- agri_posthoc(fit_lmm, trt = "genotype", by = "temperature", method = "tukey")
print(post_simples)
# 3. Remedios automáticos ante heterocedasticidad (Box-Cox / varIdent)
rem <- remedy(fit_lmm, method = "auto")
print(rem)
# 4. Eficiencia Relativa del Bloqueo (Cochran & Cox / Kempthorne)
eff <- calc_design_efficiency(fit_lmm)
print(eff)
# 5. Ranking Biológico y Tamaños de Efecto (Cohen's d vs Control G1)
rnk <- agri_ranking(fit_lmm, trt = "genotype", control = "G1")
print(rnk)

La decisión sobre el bloque es explícita e independiente del motor: block_as = "auto" conserva el comportamiento histórico, "fixed" incluye block como efecto fijo y "random" usa (1 | block) con lme4, nlme o glmmTMB. Cuando se grafican dos tratamientos, plot_publication() compara por defecto los niveles de group_var dentro de cada nivel de x_var; use trt y by para definir otra familia de comparaciones.


4. Figuras Listas para Publicación (Estilo Nature / Crop Science)

# Generar figura de barras con letras de significancia y paleta académica
p <- plot_publication(
 fit_lmm,
 type = "bar",
 error_bar = "se",
 palette = "forest",
 title = "Durum Wheat Grain Yield under Heat Stress",
 ylab = "Grain Yield (g / plant ± SE)"
)
print(p)
# ggplot2::ggsave("figura_trigo_publicacion.pdf", p, width = 8, height = 5)

Figura Científica agriDesignR


5. Informe Científico Automatizado en Markdown

# Genera un reporte doctoral completo con metodología, supuestos y tablas
informe <- experiment_report(fit_lmm, output_file = "informe_cientifico_trigo.md")
print(informe)

6. Aplicación Web Interactiva (launch_app())

Para investigadores o estudiantes que prefieran una interfaz visual:

library(agriDesignR)
launch_app()

🧪 Datasets Agronómicos Integrados

  • wheat_splitplot: Ensayo Split-Plot de estrés por calor (Control vs 36°C) en 5 genotipos de trigo duro (Triticum durum) con 4 bloques.
  • maize_3way_factorial: Ensayo trifactorial (Temperatura $\times$ Riego $\times$ Genotipo) en maíz evaluando biomasa y SPAD.
  • tomato_rcbd: Ensayo DBCA de fertilización nitrogenada en tomate con unidades perdidas y covariable de densidad de plantas.
  • maize_repeated: Medidas repetidas longitudinales de biomasa en maíz bajo 3 regímenes de riego a lo largo de 5 semanas.
  • fungicide_crd: Ensayo DCA con variable discreta (conteos) para modelos Poisson y pruebas no paramétricas (Kruskal-Wallis / Dunn).

Referencias metodológicas

Las decisiones estadísticas deben seguir el diseño y el estimando del estudio. agriDesignR ofrece automatización auditable, no reemplaza la revisión metodológica. Referencias completas están en inst/REFERENCES.bib:


👨‍💻 Autor & Contacto

  • Autor: Paul Lopez (Estudiante del Doctorado en Biotecnología Vegetal | Profesor Universitario de Aplicaciones Estadísticas (Pregrado))
  • Afiliación: Pontificia Universidad Católica de Chile
  • GitHub: @PALP31
  • Licencia: MIT License (2026)

About

Assisted Experimental Design, Topology Planning, and Mixed Models Engine for Agricultural and Biological Sciences in R

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /