File size: 7,996 Bytes
7718056 f3f77c0 e573349 8da03c5 4ff26a2 8da03c5 4ff26a2 7718056 4ff26a2 7718056 4ff26a2 7718056 4ff26a2 7718056 4ff26a2 7718056 39cf1b1 7718056 4ff26a2 7718056 4ff26a2 7718056 4ff26a2 7718056 4ff26a2 7718056 39cf1b1 7718056 4ff26a2 7718056 4ff26a2 7718056 4ff26a2 7718056 e573349 4ff26a2 7718056 4ff26a2 8da03c5 4ff26a2 |
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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
# UI.py
import gradio as gr
from interface import process_and_plot # Asegúrate de que la ruta es correcta
def create_interface():
"""
Esta función crea la interfaz de usuario y la devuelve para que pueda ser lanzada
desde app.py utilizando demo.launch().
"""
with gr.Blocks() as demo:
# Título de la interfaz
gr.Markdown("# Modelado de Bioprocesos con Ajuste de Datos")
with gr.Row():
with gr.Column():
# Subir archivo Excel
file_input = gr.File(label="Subir archivo Excel", file_types=[".xlsx"])
# Entradas de ecuaciones de Biomasa
biomass_eq1 = gr.Textbox(
label="Ecuación de Biomasa 1",
value="(xo * exp(um * t)) / (1 - (xo / xm) * (1 - exp(um * t)))"
)
biomass_eq2 = gr.Textbox(label="Ecuación de Biomasa 2", value="")
biomass_eq3 = gr.Textbox(label="Ecuación de Biomasa 3", value="")
# Parámetros de Biomasa
biomass_param1 = gr.Textbox(
label="Parámetros de Biomasa 1 (separados por coma)",
value="xo, xm, um"
)
biomass_param2 = gr.Textbox(label="Parámetros de Biomasa 2 (separados por coma)", value="")
biomass_param3 = gr.Textbox(label="Parámetros de Biomasa 3 (separados por coma)", value="")
# Límites de los parámetros para Biomasa
biomass_bound1 = gr.Textbox(
label="Límites de Parámetros de Biomasa 1 (formato: (low, high) para cada parámetro)",
value="(0, inf), (0, inf), (0, inf)"
)
biomass_bound2 = gr.Textbox(
label="Límites de Parámetros de Biomasa 2 (formato: (low, high) para cada parámetro)",
value=""
)
biomass_bound3 = gr.Textbox(
label="Límites de Parámetros de Biomasa 3 (formato: (low, high) para cada parámetro)",
value=""
)
# Número de ecuaciones de Biomasa
biomass_eq_count = gr.Number(
label="Número de ecuaciones de Biomasa",
value=1,
precision=0
)
with gr.Column():
# Entradas de ecuaciones de Sustrato
substrate_eq1 = gr.Textbox(
label="Ecuación de Sustrato 1",
value="so - p * X(t) - q * log(1 - (xo / xm) * (1 - exp(um * t)))"
)
substrate_eq2 = gr.Textbox(label="Ecuación de Sustrato 2", value="")
substrate_eq3 = gr.Textbox(label="Ecuación de Sustrato 3", value="")
# Parámetros de Sustrato
substrate_param1 = gr.Textbox(
label="Parámetros de Sustrato 1 (separados por coma)",
value="so, p, q"
)
substrate_param2 = gr.Textbox(label="Parámetros de Sustrato 2 (separados por coma)", value="")
substrate_param3 = gr.Textbox(label="Parámetros de Sustrato 3 (separados por coma)", value="")
# Límites de los parámetros para Sustrato
substrate_bound1 = gr.Textbox(
label="Límites de Parámetros de Sustrato 1 (formato: (low, high) para cada parámetro)",
value="(0, inf), (0, inf), (0, inf)"
)
substrate_bound2 = gr.Textbox(
label="Límites de Parámetros de Sustrato 2 (formato: (low, high) para cada parámetro)",
value=""
)
substrate_bound3 = gr.Textbox(
label="Límites de Parámetros de Sustrato 3 (formato: (low, high) para cada parámetro)",
value=""
)
# Número de ecuaciones de Sustrato
substrate_eq_count = gr.Number(
label="Número de ecuaciones de Sustrato",
value=1,
precision=0
)
with gr.Column():
# Entradas de ecuaciones de Producto
product_eq1 = gr.Textbox(
label="Ecuación de Producto 1",
value="po + alpha * X(t) + beta * log(1 - (xo / xm) * (1 - exp(um * t)))"
)
product_eq2 = gr.Textbox(label="Ecuación de Producto 2", value="")
product_eq3 = gr.Textbox(label="Ecuación de Producto 3", value="")
# Parámetros de Producto
product_param1 = gr.Textbox(
label="Parámetros de Producto 1 (separados por coma)",
value="po, alpha, beta"
)
product_param2 = gr.Textbox(label="Parámetros de Producto 2 (separados por coma)", value="")
product_param3 = gr.Textbox(label="Parámetros de Producto 3 (separados por coma)", value="")
# Límites de los parámetros para Producto
product_bound1 = gr.Textbox(
label="Límites de Parámetros de Producto 1 (formato: (low, high) para cada parámetro)",
value="(0, inf), (0, inf), (0, inf)"
)
product_bound2 = gr.Textbox(
label="Límites de Parámetros de Producto 2 (formato: (low, high) para cada parámetro)",
value=""
)
product_bound3 = gr.Textbox(
label="Límites de Parámetros de Producto 3 (formato: (low, high) para cada parámetro)",
value=""
)
# Número de ecuaciones de Producto
product_eq_count = gr.Number(
label="Número de ecuaciones de Producto",
value=1,
precision=0
)
# Opciones de visualización
show_legend = gr.Checkbox(label="Mostrar leyenda", value=True)
show_params = gr.Checkbox(label="Mostrar parámetros ajustados", value=True)
legend_position = gr.Dropdown(
label="Posición de la leyenda",
choices=['best', 'upper right', 'upper left', 'lower right', 'lower left'],
value='best'
)
# Botón para procesar y graficar
submit_button = gr.Button("Procesar y graficar")
# Salidas: imagen del gráfico y análisis
image_output = gr.Image(label="Gráfico generado")
analysis_output = gr.Textbox(label="Análisis del Modelo", lines=10)
# Conexión entre el botón y la función process_and_plot
submit_button.click(
fn=process_and_plot,
inputs=[
file_input,
biomass_eq1, biomass_eq2, biomass_eq3,
biomass_param1, biomass_param2, biomass_param3,
biomass_bound1, biomass_bound2, biomass_bound3,
substrate_eq1, substrate_eq2, substrate_eq3,
substrate_param1, substrate_param2, substrate_param3,
substrate_bound1, substrate_bound2, substrate_bound3,
product_eq1, product_eq2, product_eq3,
product_param1, product_param2, product_param3,
product_bound1, product_bound2, product_bound3,
legend_position,
show_legend,
show_params,
biomass_eq_count,
substrate_eq_count,
product_eq_count
],
outputs=[image_output, analysis_output]
)
return demo
|