--- title: Uric-Acid Colorimetric Concentration Predictor emoji: 🧪 colorFrom: blue colorTo: green sdk: gradio sdk_version: 5.9.1 python_version: "3.11" app_file: app.py pinned: false license: mit --- # Uric-Acid Colorimetric Concentration Predictor Interactive demo for the smartphone-based colorimetric uric-acid (UA) biosensor built on a bimetallic Ag–Cu micro-flower (Ag-Cu-MF) nanozyme + TMB chemistry. Enter the **R, G, B** of an oxidised-TMB reaction well and the **buffer**; if you have the same phone's **blank** (0 μM) reading, enable *Use per-device blank* for best accuracy. Four models predict UA concentration in parallel and the **ANN** released with the manuscript is highlighted. ## Models | Model | Description | Held-out R² | RMSE (μM) | |---|---|---|---| | Linear (raw RGB) | per-buffer OLS on R, G, B | 0.587 | 128.5 | | Linear (ΔRGB) | per-buffer OLS on ΔR, ΔG, ΔB | 0.722 | 105.4 | | Random Forest | 500 trees, depth 10, all features | 0.893 | 65.3 | | **ANN (this work)** | 5-seed MLP-Wide-Reg [128, 64] ensemble | **0.874** | **70.9** | Metrics are the published values on the 28-sample held-out fold (one random replicate per buffer × concentration cell). ΔRGB = blank − measurement, computed per device. Features are R, G, B, ΔR, ΔG, ΔB plus a 4-D one-hot buffer code. ## Files - `app.py` — Gradio interface - `model.pt` — 5-seed ANN ensemble + fitted scaler - `rf_model.pkl` — Random Forest reference - `baselines_linear.json` — per-buffer linear coefficients (raw RGB and ΔRGB) - `mean_blanks.json` — cohort-mean blank RGB per buffer (fallback) - `inference.py` — standalone (non-UI) inference helper ## Caveats - Trained on a single Ag-Cu-MF + TMB chemistry, four buffers, six phones. - Predictions are clamped at 0 μM and are most reliable within 0–600 μM. - Mean-blank fallback is approximate for devices far from the training cohort. - Research use only; **not a medical device**.