C2MV commited on
Commit
0ef96b9
verified
1 Parent(s): ed5561e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -29
app.py CHANGED
@@ -315,7 +315,7 @@ def actualizar_analisis(df, n_replicas, unidad_medida, absorbancia_blanco, *repl
315
 
316
  return estado, fig, informe, df
317
 
318
- def actualizar_graficos(df, n_replicas, unidad_medida, absorbancia_blanco,
319
  palette_puntos, estilo_puntos,
320
  palette_linea_ajuste, estilo_linea_ajuste,
321
  palette_linea_ideal, estilo_linea_ideal,
@@ -324,12 +324,6 @@ def actualizar_graficos(df, n_replicas, unidad_medida, absorbancia_blanco,
324
  if df is None or df.empty:
325
  return None
326
 
327
- # Ajustar valores de absorbancia reales por el valor del blanco
328
- for i in range(1, n_replicas + 1):
329
- col_real = f"Concentraci贸n Real {i} ({unidad_medida})"
330
- df[col_real] = pd.to_numeric(df[col_real], errors='coerce')
331
- df[col_real] = df[col_real] - absorbancia_blanco
332
-
333
  # Asegurarse de que los c谩lculos est茅n actualizados
334
  df = calcular_promedio_desviacion(df, n_replicas, unidad_medida)
335
 
@@ -484,6 +478,26 @@ def exportar_latex(df, informe_md):
484
 
485
  return filename # Retornamos el nombre del archivo
486
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
487
  # Funciones de ejemplo
488
  def cargar_ejemplo_ufc(n_replicas):
489
  df = generar_tabla(7, 2000000, "UFC", n_replicas)
@@ -505,18 +519,6 @@ def cargar_ejemplo_od(n_replicas):
505
  df[f"Concentraci贸n Real {i} (OD)"] = valores_reales
506
  return 1.0, "OD", 7, df
507
 
508
- def limpiar_datos(n_replicas):
509
- df = generar_tabla(7, 2000000, "UFC", n_replicas)
510
- return (
511
- 2000000, # Concentraci贸n Inicial
512
- "UFC", # Unidad de Medida
513
- 7, # N煤mero de filas
514
- df, # Tabla Output
515
- "", # Estado Output
516
- None, # Gr谩ficos Output
517
- "" # Informe Output
518
- )
519
-
520
  def generar_datos_sinteticos_evento(df, n_replicas, unidad_medida, absorbancia_blanco):
521
  df = df.copy()
522
  col_predicha_num = "Concentraci贸n Predicha Num茅rica"
@@ -561,14 +563,14 @@ with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
561
  with gr.Tab("馃摑 Datos de Calibraci贸n"):
562
  with gr.Row():
563
  concentracion_input = gr.Number(
564
- value=2000000,
565
  label="Concentraci贸n Inicial",
566
- precision=0
567
  )
568
  unidad_input = gr.Textbox(
569
- value="UFC",
570
  label="Unidad de Medida",
571
- placeholder="UFC, OD, etc..."
572
  )
573
  filas_slider = gr.Slider(
574
  minimum=1,
@@ -601,6 +603,7 @@ with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
601
  calcular_btn = gr.Button("馃攧 Calcular", variant="primary")
602
  limpiar_btn = gr.Button("馃棏 Limpiar Datos", variant="secondary")
603
  ajustar_decimales_btn = gr.Button("馃洜 Ajustar Decimales", variant="secondary")
 
604
 
605
  with gr.Row():
606
  ejemplo_ufc_btn = gr.Button("馃搵 Cargar Ejemplo UFC", variant="secondary")
@@ -695,7 +698,7 @@ with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
695
  graficar_btn.click(
696
  fn=actualizar_graficos,
697
  inputs=[
698
- tabla_output, replicas_slider, unidad_input, absorbancia_blanco_input,
699
  palette_puntos_dropdown, estilo_puntos_dropdown,
700
  palette_linea_ajuste_dropdown, estilo_linea_ajuste_dropdown,
701
  palette_linea_ideal_dropdown, estilo_linea_ideal_dropdown,
@@ -712,6 +715,13 @@ with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
712
  outputs=[concentracion_input, unidad_input, filas_slider, tabla_output, estado_output, graficos_output, informe_output]
713
  )
714
 
 
 
 
 
 
 
 
715
  # Eventos de los botones de ejemplo
716
  ejemplo_ufc_btn.click(
717
  fn=cargar_ejemplo_ufc,
@@ -804,13 +814,13 @@ with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
804
  # Inicializar la interfaz con el ejemplo base
805
  def iniciar_con_ejemplo():
806
  n_replicas = 1
807
- df = generar_tabla(7, 2000000, "UFC", n_replicas)
808
  # Valores reales de ejemplo
809
- df[f"Concentraci贸n Real 1 (UFC)"] = [2000000, 1600000, 1200000, 800000, 400000, 200000, 100000]
810
- estado, fig, informe, df = actualizar_analisis(df, n_replicas, "UFC", 0.0)
811
  return (
812
- 2000000,
813
- "UFC",
814
  7,
815
  df,
816
  estado,
 
315
 
316
  return estado, fig, informe, df
317
 
318
+ def actualizar_graficos(df, n_replicas, unidad_medida,
319
  palette_puntos, estilo_puntos,
320
  palette_linea_ajuste, estilo_linea_ajuste,
321
  palette_linea_ideal, estilo_linea_ideal,
 
324
  if df is None or df.empty:
325
  return None
326
 
 
 
 
 
 
 
327
  # Asegurarse de que los c谩lculos est茅n actualizados
328
  df = calcular_promedio_desviacion(df, n_replicas, unidad_medida)
329
 
 
478
 
479
  return filename # Retornamos el nombre del archivo
480
 
481
+ def limpiar_datos(n_replicas):
482
+ df = generar_tabla(7, 1.0, "OD", n_replicas)
483
+ return (
484
+ 1.0, # Concentraci贸n Inicial
485
+ "OD", # Unidad de Medida
486
+ 7, # N煤mero de filas
487
+ df, # Tabla Output
488
+ "", # Estado Output
489
+ None, # Gr谩ficos Output
490
+ "" # Informe Output
491
+ )
492
+
493
+ def subir_datos_replica(df, n_replicas, unidad_medida, datos_replica):
494
+ df = df.copy()
495
+ for i, dato in enumerate(datos_replica):
496
+ if dato is not None:
497
+ col_real = f"Concentraci贸n Real {i + 1} ({unidad_medida})"
498
+ df.at[0, col_real] = dato
499
+ return df
500
+
501
  # Funciones de ejemplo
502
  def cargar_ejemplo_ufc(n_replicas):
503
  df = generar_tabla(7, 2000000, "UFC", n_replicas)
 
519
  df[f"Concentraci贸n Real {i} (OD)"] = valores_reales
520
  return 1.0, "OD", 7, df
521
 
 
 
 
 
 
 
 
 
 
 
 
 
522
  def generar_datos_sinteticos_evento(df, n_replicas, unidad_medida, absorbancia_blanco):
523
  df = df.copy()
524
  col_predicha_num = "Concentraci贸n Predicha Num茅rica"
 
563
  with gr.Tab("馃摑 Datos de Calibraci贸n"):
564
  with gr.Row():
565
  concentracion_input = gr.Number(
566
+ value=1.0,
567
  label="Concentraci贸n Inicial",
568
+ precision=2
569
  )
570
  unidad_input = gr.Textbox(
571
+ value="OD",
572
  label="Unidad de Medida",
573
+ placeholder="OD, UFC, etc..."
574
  )
575
  filas_slider = gr.Slider(
576
  minimum=1,
 
603
  calcular_btn = gr.Button("馃攧 Calcular", variant="primary")
604
  limpiar_btn = gr.Button("馃棏 Limpiar Datos", variant="secondary")
605
  ajustar_decimales_btn = gr.Button("馃洜 Ajustar Decimales", variant="secondary")
606
+ subir_datos_btn = gr.Button("馃摛 Subir Datos de R茅plica", variant="secondary")
607
 
608
  with gr.Row():
609
  ejemplo_ufc_btn = gr.Button("馃搵 Cargar Ejemplo UFC", variant="secondary")
 
698
  graficar_btn.click(
699
  fn=actualizar_graficos,
700
  inputs=[
701
+ tabla_output, replicas_slider, unidad_input,
702
  palette_puntos_dropdown, estilo_puntos_dropdown,
703
  palette_linea_ajuste_dropdown, estilo_linea_ajuste_dropdown,
704
  palette_linea_ideal_dropdown, estilo_linea_ideal_dropdown,
 
715
  outputs=[concentracion_input, unidad_input, filas_slider, tabla_output, estado_output, graficos_output, informe_output]
716
  )
717
 
718
+ # Evento para subir datos de r茅plica
719
+ subir_datos_btn.click(
720
+ fn=subir_datos_replica,
721
+ inputs=[tabla_output, replicas_slider, unidad_input, *replica_inputs],
722
+ outputs=tabla_output
723
+ )
724
+
725
  # Eventos de los botones de ejemplo
726
  ejemplo_ufc_btn.click(
727
  fn=cargar_ejemplo_ufc,
 
814
  # Inicializar la interfaz con el ejemplo base
815
  def iniciar_con_ejemplo():
816
  n_replicas = 1
817
+ df = generar_tabla(7, 1.0, "OD", n_replicas)
818
  # Valores reales de ejemplo
819
+ df[f"Concentraci贸n Real 1 (OD)"] = [1.00, 0.80, 0.60, 0.40, 0.20, 0.10, 0.05]
820
+ estado, fig, informe, df = actualizar_analisis(df, n_replicas, "OD", 0.0)
821
  return (
822
+ 1.0,
823
+ "OD",
824
  7,
825
  df,
826
  estado,