# abd19990044-commits/uv-vis-spectrum-studio architecture

> Architecture diagram of the GitHub repository abd19990044-commits/uv-vis-spectrum-studio, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/abd19990044-commits/uv-vis-spectrum-studio
- Repository: https://github.com/abd19990044-commits/uv-vis-spectrum-studio

## Overview

UV-Vis Spectrum Studio is a scientific desktop/web application for importing and processing spectra, exploring analytical results, and saving or exporting work. The principal workflow runs from analyst-selected input through the Streamlit application, spectral processing and analysis, then visualization or project/export output. Separate branches cover calibration and method validation, multicomponent analysis, peak fitting, quality diagnostics, and chemometrics. The README documents additional Fourier/wavelet capabilities; source excerpts do not establish their detailed call paths, so those links are omitted. Edges reflect excerpts, SOURCE INDEX references, or README statements.

Main entry points: [`uvvis_studio/main_app.py`](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/main_app.py) (Spectrum workspace), [`uvvis_studio/advanced_suite_ui.py`](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/advanced_suite_ui.py) (Advanced analysis UI), [`uvvis_studio/chemometrics_basic_ui.py`](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/chemometrics_basic_ui.py) (Chemometrics UI), [`uvvis_studio/chemometrics_advanced_ui.py`](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/chemometrics_advanced_ui.py) (Advanced chemometrics UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Application experience"]
  node_app["Spectrum workspace<br/>[main_app.py]"]
  node_chem_ui["Chemometrics UI"]
  node_advanced_ui["Advanced analysis UI"]
  node_chem_advanced_ui["Advanced chemometrics UI"]
end

subgraph group_spectra["Spectral workflow"]
  node_spectrum_input["Spectrum import<br/>[io.py]"]
  node_processing["Spectral processing<br/>[transforms.py]"]
  node_analysis["Spectrum analysis<br/>[analysis.py]"]
  node_quality["Quality diagnostics<br/>[quality.py]"]
end

subgraph group_methods["Analytical methods"]
  node_chem_core["Chemometrics<br/>[chemometrics.py]"]
  node_chem_advanced["Advanced chemometrics"]
  node_quantitation["Quantitation<br/>[quantitation.py]"]
  node_validation["Method validation<br/>[validation.py]"]
  node_multicomponent["Multicomponent analysis<br/>[multicomponent.py]"]
  node_peakfit["Peak fitting<br/>[peakfit.py]"]
end

subgraph group_projects["Projects and output"]
  node_workspace_state["Workspace state<br/>[workspace_state.py]"]
  node_project["Project archives<br/>[project.py]"]
  node_export["Publication export<br/>[export.py]"]
end

node_analyst(("Analyst"))
node_spectrum_files["Spectrum files"]
node_project_files["Project files"]
node_export_files["Export files"]

node_analyst -->|"uses"| node_app
node_analyst -->|"selects"| node_spectrum_files
node_app -->|"imports"| node_spectrum_input
node_spectrum_files -->|"reads"| node_spectrum_input
node_app -->|"applies"| node_processing
node_app -->|"uses"| node_analysis
node_app -.->|"uses"| node_quality
node_app -->|"uses"| node_quantitation
node_app -->|"uses"| node_validation
node_app -->|"updates"| node_workspace_state
node_app -->|"loads and saves"| node_project
node_app -->|"exports"| node_export
node_app -->|"renders"| node_chem_ui
node_chem_ui -->|"calls"| node_chem_core
node_chem_ui -.->|"offers"| node_chem_advanced_ui
node_chem_advanced_ui -->|"uses"| node_chem_core
node_chem_advanced_ui -->|"uses"| node_chem_advanced
node_app -->|"renders"| node_advanced_ui
node_advanced_ui -->|"calls"| node_quality
node_advanced_ui -->|"calls"| node_multicomponent
node_advanced_ui -->|"calls"| node_peakfit
node_advanced_ui -->|"calls"| node_validation
node_validation -->|"uses"| node_quantitation
node_project -->|"restores"| node_workspace_state
node_project -->|"reads and writes"| node_project_files
node_export -->|"writes"| node_export_files

click node_app "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/main_app.py"
click node_chem_ui "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/chemometrics_basic_ui.py"
click node_advanced_ui "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/advanced_suite_ui.py"
click node_chem_advanced_ui "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/chemometrics_advanced_ui.py"
click node_spectrum_input "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/io.py"
click node_processing "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/transforms.py"
click node_analysis "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/analysis.py"
click node_quality "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/quality.py"
click node_chem_core "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/chemometrics.py"
click node_chem_advanced "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/chemometrics_advanced.py"
click node_quantitation "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/quantitation.py"
click node_validation "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/validation.py"
click node_multicomponent "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/multicomponent.py"
click node_peakfit "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/peakfit.py"
click node_workspace_state "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/workspace_state.py"
click node_project "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/project.py"
click node_export "https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/export.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_chem_ui,node_advanced_ui,node_chem_advanced_ui toneBlue
class node_spectrum_input,node_processing,node_analysis,node_quality toneAmber
class node_chem_core,node_chem_advanced,node_quantitation,node_validation,node_multicomponent,node_peakfit toneMint
class node_workspace_state,node_project,node_export toneRose
class node_analyst,node_spectrum_files,node_project_files,node_export_files toneIndigo
```

## Components

### Application experience

- [Spectrum workspace](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/main_app.py): `uvvis_studio/main_app.py`
- [Chemometrics UI](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/chemometrics_basic_ui.py): `uvvis_studio/chemometrics_basic_ui.py`
- [Advanced analysis UI](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/advanced_suite_ui.py): `uvvis_studio/advanced_suite_ui.py`
- [Advanced chemometrics UI](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/chemometrics_advanced_ui.py): `uvvis_studio/chemometrics_advanced_ui.py`

### Spectral workflow

- [Spectrum import](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/io.py): `uvvis_studio/io.py`
- [Spectral processing](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/transforms.py): `uvvis_studio/transforms.py`
- [Spectrum analysis](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/analysis.py): `uvvis_studio/analysis.py`
- [Quality diagnostics](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/quality.py): `uvvis_studio/quality.py`

### Analytical methods

- [Chemometrics](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/chemometrics.py): `uvvis_studio/chemometrics.py`
- [Advanced chemometrics](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/chemometrics_advanced.py): `uvvis_studio/chemometrics_advanced.py`
- [Quantitation](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/quantitation.py): `uvvis_studio/quantitation.py`
- [Method validation](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/validation.py): `uvvis_studio/validation.py`
- [Multicomponent analysis](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/multicomponent.py): `uvvis_studio/multicomponent.py`
- [Peak fitting](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/peakfit.py): `uvvis_studio/peakfit.py`

### Projects and output

- [Workspace state](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/workspace_state.py): `uvvis_studio/workspace_state.py`
- [Project archives](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/project.py): `uvvis_studio/project.py`
- [Publication export](https://github.com/abd19990044-commits/uv-vis-spectrum-studio/blob/main/uvvis_studio/export.py): `uvvis_studio/export.py`

### Other components

- **Analyst**
- **Spectrum files**
- **Project files**
- **Export files**

## Connections

- Analyst → Spectrum workspace: uses (evidence: `README.md`)
- Analyst → Spectrum files: selects (evidence: `README.md`)
- Spectrum workspace → Spectrum import: imports (evidence: `uvvis_studio/main_app.py`)
- Spectrum files → Spectrum import: reads (evidence: `README.md`)
- Spectrum workspace → Spectral processing: applies (evidence: `uvvis_studio/main_app.py`)
- Spectrum workspace → Spectrum analysis: uses (evidence: `uvvis_studio/main_app.py`)
- Spectrum workspace → Quality diagnostics: uses
- Spectrum workspace → Quantitation: uses (evidence: `uvvis_studio/main_app.py`)
- Spectrum workspace → Method validation: uses (evidence: `uvvis_studio/main_app.py`)
- Spectrum workspace → Workspace state: updates (evidence: `uvvis_studio/main_app.py`)
- Spectrum workspace → Project archives: loads and saves (evidence: `uvvis_studio/main_app.py`)
- Spectrum workspace → Publication export: exports (evidence: `uvvis_studio/main_app.py`)
- Spectrum workspace → Chemometrics UI: renders (evidence: `uvvis_studio/main_app.py`)
- Chemometrics UI → Chemometrics: calls (evidence: `uvvis_studio/chemometrics_basic_ui.py`)
- Chemometrics UI → Advanced chemometrics UI: offers (evidence: `uvvis_studio/chemometrics_advanced_ui.py`)
- Advanced chemometrics UI → Chemometrics: uses (evidence: `uvvis_studio/chemometrics_advanced_ui.py`)
- Advanced chemometrics UI → Advanced chemometrics: uses (evidence: `uvvis_studio/chemometrics_advanced_ui.py`)
- Spectrum workspace → Advanced analysis UI: renders (evidence: `uvvis_studio/main_app.py`)
- Advanced analysis UI → Quality diagnostics: calls (evidence: `uvvis_studio/advanced_suite_ui.py`)
- Advanced analysis UI → Multicomponent analysis: calls (evidence: `uvvis_studio/advanced_suite_ui.py`)
- Advanced analysis UI → Peak fitting: calls (evidence: `uvvis_studio/advanced_suite_ui.py`)
- Advanced analysis UI → Method validation: calls (evidence: `uvvis_studio/advanced_suite_ui.py`)
- Method validation → Quantitation: uses (evidence: `uvvis_studio/validation.py`)
- Project archives → Workspace state: restores (evidence: `uvvis_studio/project.py`)
- Project archives → Project files: reads and writes (evidence: `README.md`)
- Publication export → Export files: writes (evidence: `README.md`)
