File size: 3,462 Bytes
8da03c5
 
f3f77c0
8da03c5
 
 
 
 
ec7a2ea
8da03c5
ec7a2ea
 
 
8da03c5
ec7a2ea
 
 
8da03c5
ec7a2ea
 
 
8da03c5
ec7a2ea
 
 
8da03c5
ec7a2ea
 
 
8da03c5
ec7a2ea
 
 
8da03c5
ec7a2ea
 
 
8da03c5
ec7a2ea
 
 
8da03c5
ec7a2ea
 
 
8da03c5
ec7a2ea
8da03c5
 
ec7a2ea
8da03c5
ec7a2ea
 
8da03c5
ec7a2ea
 
 
8da03c5
 
 
 
090a5ef
ec7a2ea
8da03c5
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# UI.py

import gradio as gr
from interface import process_and_plot

def create_interface():
    # Definir los componentes de entrada
    inputs = [
        gr.File(label="Sube tu archivo Excel"),
        # Ecuaciones de Biomasa
        gr.Textbox(label="Ecuación de Biomasa 1", value="xo*exp(um*t)"),
        gr.Textbox(label="Ecuación de Biomasa 2", value=""),
        gr.Textbox(label="Ecuación de Biomasa 3", value=""),
        # Parámetros de Biomasa
        gr.Textbox(label="Parámetros de Biomasa 1", value="xo, um"),
        gr.Textbox(label="Parámetros de Biomasa 2", value=""),
        gr.Textbox(label="Parámetros de Biomasa 3", value=""),
        # Límites de Biomasa
        gr.Textbox(label="Límites de Biomasa 1", value="[ (0, np.inf), (0, np.inf) ]"),
        gr.Textbox(label="Límites de Biomasa 2", value=""),
        gr.Textbox(label="Límites de Biomasa 3", value=""),
        # Ecuaciones de Sustrato
        gr.Textbox(label="Ecuación de Sustrato 1", value="so - k1*X(t)"),
        gr.Textbox(label="Ecuación de Sustrato 2", value=""),
        gr.Textbox(label="Ecuación de Sustrato 3", value=""),
        # Parámetros de Sustrato
        gr.Textbox(label="Parámetros de Sustrato 1", value="so, k1"),
        gr.Textbox(label="Parámetros de Sustrato 2", value=""),
        gr.Textbox(label="Parámetros de Sustrato 3", value=""),
        # Límites de Sustrato
        gr.Textbox(label="Límites de Sustrato 1", value="[ (0, np.inf), (0, np.inf) ]"),
        gr.Textbox(label="Límites de Sustrato 2", value=""),
        gr.Textbox(label="Límites de Sustrato 3", value=""),
        # Ecuaciones de Producto
        gr.Textbox(label="Ecuación de Producto 1", value="po + k2*X(t)"),
        gr.Textbox(label="Ecuación de Producto 2", value=""),
        gr.Textbox(label="Ecuación de Producto 3", value=""),
        # Parámetros de Producto
        gr.Textbox(label="Parámetros de Producto 1", value="po, k2"),
        gr.Textbox(label="Parámetros de Producto 2", value=""),
        gr.Textbox(label="Parámetros de Producto 3", value=""),
        # Límites de Producto
        gr.Textbox(label="Límites de Producto 1", value="[ (0, np.inf), (0, np.inf) ]"),
        gr.Textbox(label="Límites de Producto 2", value=""),
        gr.Textbox(label="Límites de Producto 3", value=""),
        # Opciones de visualización
        gr.Dropdown(
            choices=['best', 'upper right', 'upper left', 'lower right', 'lower left'],
            label="Posición de la Leyenda",
            value='best'
        ),
        gr.Checkbox(label="Mostrar Leyenda", value=True),
        gr.Checkbox(label="Mostrar Parámetros", value=True),
        # Contadores de ecuaciones
        gr.Number(label="Número de Ecuaciones de Biomasa", value=1, precision=0),
        gr.Number(label="Número de Ecuaciones de Sustrato", value=1, precision=0),
        gr.Number(label="Número de Ecuaciones de Producto", value=1, precision=0),
    ]

    # Definir los componentes de salida
    outputs = [
        gr.Image(type="pil", label="Gráfica Resultante"),
        gr.Textbox(label="Análisis del Modelo"),
    ]

    # Crear la interfaz
    interface = gr.Interface(
        fn=process_and_plot,
        inputs=inputs,
        outputs=outputs,
        title="Modelo de Bioproceso",
        description="Sube un archivo Excel con tus datos experimentales para ajustar el modelo y visualizar los resultados.",
    )

    return interface