--- title: TRACER-Net emoji: 🧪 colorFrom: blue colorTo: indigo sdk: gradio sdk_version: 4.44.1 python_version: "3.10" app_file: run.py pinned: false startup_duration_timeout: 30m preload_from_hub: - BAAI/bge-m3 --- # TRACER-Net TRACER-Net is a Gradio application for pigment spectral recognition, CRN pathway tracing, and evidence-backed mural material analysis. ## Run ```powershell python app.py ``` or: ```powershell python run.py ``` ## Demo Examples Both analysis tabs ship with clickable examples and an **Instructions** accordion, so the app can be tried without preparing any data. - **Spectral Identification**: four modalities (Raman, ATR-FTIR, XRD, FORS) measured on the same specimen, under `examples/`. Click one row of *Demo spectra* and press Upload for a single-spectrum run, or press **Load 4-modality demo set** to stage all four for the multimodal fusion run. - **Pathway Tracing**: example queries such as `p-As₄S₄, As₂O₃`, `PbO₂`, `HgS`. The first one continues the spectral demo above. See `examples/README.md` for file formats, expected columns, and what each example demonstrates. ## Matching Metric Spectral Identification matches on full-spectrum **cosine similarity** by default, a pragmatic implementation choice for the present normalized spectral dataset rather than evidence of universal superiority. **Matching configuration** in that tab also offers **Pearson correlation**, which performs closely, is mean-centred and therefore insensitive to an additive baseline offset, and may be preferable under partial spectral-region loss. Negative correlation is reported as 0, so both metrics stay on the same 0-100% scale. The selected metric applies to every staged file, is named in the on-screen report, and is recorded as `metadata.similarity_metric` in the saved JSON report under `reports/`. ## Main Files - `app.py`: Gradio UI wiring and application callbacks. - `search_subgraph.py`: CRN tracing and pathway visualization. - `spectral_recognition.py`: spectral database loading, preprocessing, matching, and reporting. - `rag_module.py`: retrieval and generated pathway interpretation. - `mural_copilot.py`: chat/copilot response orchestration. - `tracernet/`: shared configuration, loaders, and utilities. ## Useful Environment Variables - `PATHWAY_LAYOUT_STYLE`: pathway-figure layout. Default: `reference`, a compact white-background CRN matching the original application style. Use `layered` for the labelled column view or `legacy` for the old renderer. - `PATHWAY_VISIBLE_NODES`: fixed total node budget for the reference renderer. Default: `15`. The selected path is always preserved; remaining places are filled by complete related routes and then nearest CRN nodes. Use `0` for the selected path only or `-1` for the full component. - `PATHWAY_CONTEXT_PATHS`: maximum related routes used by the optional `layered` renderer. Default: `8`. - `PATHWAY_CONTEXT_NODES`: node cap used by the optional `layered` renderer. Default: `14`. - `PATHWAY_STABLE_LAYOUT`: legacy-layout option; set to `0` to disable it. - `PATHWAY_SHOW_FIGURES`: set to `1` to open rendered pathway images from CLI. - `TRACE_DEBUG`: set to `1` to print verbose trace callback state. - `COPILOT_RETRIEVAL_THRESHOLD`: minimum normalized retrieval score used by Mural Copilot. Default: `0.38`. - `COPILOT_VERIFY_CLAIMS`: set to `0` only to disable the second-pass, quote-grounded sentence verification. Default: enabled. - `COPILOT_EXPAND_QUERIES`: set to `1` to enable optional LLM query expansion. It is disabled by default to reduce latency and API usage. - `COPILOT_DEBUG`: set to `1` to append the underlying error class and message to a failed Mural Copilot reply, so a backend failure can be diagnosed from the chat without opening the Space runtime logs. Off by default. ## Hugging Face deployment Configure `DEEPSEEK_API_KEY` in **Space Settings → Variables and secrets** as a secret. Never commit the key, a `.env` file, or `DEEPSEEK_API_KEY.txt` to the Space repository. If the language-model backend or evidence service is still starting, Mural Copilot returns a non-fatal availability message; spectral identification and pathway tracing remain usable.