# arifakokab/parkinsons-vocal-biomarker-app architecture

> Architecture diagram of the GitHub repository arifakokab/parkinsons-vocal-biomarker-app, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/arifakokab/parkinsons-vocal-biomarker-app
- Repository: https://github.com/arifakokab/parkinsons-vocal-biomarker-app

## Overview

This repository documents two Parkinson’s voice-analysis workflows: a feature-based screening classifier and a longitudinal severity-change predictor. The screening notebook covers model development; the README describes a separate deployed app that processes short recordings and returns a thresholded result. The progression notebook covers visit-level sequence modeling and evaluation. Notebook internals are not available as source excerpts, so component-level relationships below rely on the README’s documented methods and workflow.

Main entry points: [`Classifier Model (part 1 of 2)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb`](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Classifier%20Model%20(part%201%20of%202)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb) (Random Forest), [`Severity Predictor (Part 2 of 2)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb`](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb) (Severity change)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_screen["Screening classifier"]
  node_screen_data[("Oxford detection data")]
  node_screen_features["Dysphonia features"]
  node_screen_model["Random Forest"]
  node_screen_eval["Classifier evaluation"]
end

subgraph group_deploy["Deployed screening"]
  node_screen_app["Screening web app"]
  node_audio_prep["Audio preparation"]
  node_audio_features["Audio feature extraction"]
  node_screen_result["Thresholded result"]
end

subgraph group_progress["Severity progression"]
  node_progress_data[("Oxford telemonitoring data")]
  node_visit_aggregate["Visit aggregation"]
  node_subject_normalize["Subject normalization"]
  node_sequence_build["Visit sequences"]
  node_severity_model["BiGRU CNN model"]
  node_delta_output["Severity change"]
  node_severity_result["Reconstructed severity"]
end

subgraph group_evaluation["Evaluation and interpretation"]
  node_progress_eval["Held-out evaluation"]
  node_change_flags["Change thresholds"]
end

node_voice_user(("Voice recorder"))

node_screen_data -->|"provides features"| node_screen_features
node_screen_features -->|"trains"| node_screen_model
node_screen_model -->|"evaluated as"| node_screen_eval
node_voice_user -->|"records audio"| node_screen_app
node_screen_app -->|"submits audio"| node_audio_prep
node_audio_prep -->|"normalizes audio"| node_audio_features
node_audio_features -->|"provides features"| node_screen_app
node_screen_app -->|"runs inference"| node_screen_result
node_screen_model -.->|"supplies model"| node_screen_app
node_progress_data -->|"provides visits"| node_visit_aggregate
node_visit_aggregate -->|"aggregates visits"| node_subject_normalize
node_subject_normalize -->|"normalizes features"| node_sequence_build
node_sequence_build -->|"supplies sequences"| node_severity_model
node_severity_model -->|"predicts change"| node_delta_output
node_delta_output -->|"reconstructs score"| node_severity_result
node_severity_result -->|"evaluated on"| node_progress_eval
node_delta_output -->|"compared with thresholds"| node_change_flags

click node_screen_features "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Classifier%20Model%20(part%201%20of%202)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb"
click node_screen_model "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Classifier%20Model%20(part%201%20of%202)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb"
click node_screen_eval "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Classifier%20Model%20(part%201%20of%202)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb"
click node_visit_aggregate "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb"
click node_subject_normalize "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb"
click node_sequence_build "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb"
click node_severity_model "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb"
click node_delta_output "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb"
click node_severity_result "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb"
click node_progress_eval "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb"
click node_change_flags "https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb"

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_screen_data,node_screen_features,node_screen_model,node_screen_eval toneBlue
class node_screen_app,node_audio_prep,node_audio_features,node_screen_result toneAmber
class node_progress_data,node_visit_aggregate,node_subject_normalize,node_sequence_build,node_severity_model,node_delta_output,node_severity_result toneMint
class node_progress_eval,node_change_flags toneRose
class node_voice_user toneIndigo
```

## Components

### Screening classifier

- **Oxford detection data**
- [Dysphonia features](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Classifier%20Model%20(part%201%20of%202)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb): `Classifier Model (part 1 of 2)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb`
- [Random Forest](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Classifier%20Model%20(part%201%20of%202)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb): `Classifier Model (part 1 of 2)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb`
- [Classifier evaluation](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Classifier%20Model%20(part%201%20of%202)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb): `Classifier Model (part 1 of 2)/ClassifierScreener_ParkinsonsDisease_Notebook1of2.ipynb`

### Deployed screening

- **Screening web app**
- **Audio preparation**
- **Audio feature extraction**
- **Thresholded result**

### Severity progression

- **Oxford telemonitoring data**
- [Visit aggregation](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb): `Severity Predictor (Part 2 of 2)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb`
- [Subject normalization](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb): `Severity Predictor (Part 2 of 2)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb`
- [Visit sequences](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb): `Severity Predictor (Part 2 of 2)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb`
- [BiGRU CNN model](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb): `Severity Predictor (Part 2 of 2)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb`
- [Severity change](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb): `Severity Predictor (Part 2 of 2)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb`
- [Reconstructed severity](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb): `Severity Predictor (Part 2 of 2)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb`

### Evaluation and interpretation

- [Held-out evaluation](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb): `Severity Predictor (Part 2 of 2)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb`
- [Change thresholds](https://github.com/arifakokab/parkinsons-vocal-biomarker-app/blob/main/Severity%20Predictor%20(Part%202%20of%202)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb): `Severity Predictor (Part 2 of 2)/ProgressionOfSeverity_ParkinsonsDisease_Notebook2of2.ipynb`

### Other components

- **Voice recorder**

## Connections

- Oxford detection data → Dysphonia features: provides features
- Dysphonia features → Random Forest: trains
- Random Forest → Classifier evaluation: evaluated as
- Voice recorder → Screening web app: records audio
- Screening web app → Audio preparation: submits audio
- Audio preparation → Audio feature extraction: normalizes audio
- Audio feature extraction → Screening web app: provides features
- Screening web app → Thresholded result: runs inference
- Random Forest → Screening web app: supplies model
- Oxford telemonitoring data → Visit aggregation: provides visits
- Visit aggregation → Subject normalization: aggregates visits
- Subject normalization → Visit sequences: normalizes features
- Visit sequences → BiGRU CNN model: supplies sequences
- BiGRU CNN model → Severity change: predicts change
- Severity change → Reconstructed severity: reconstructs score
- Reconstructed severity → Held-out evaluation: evaluated on
- Severity change → Change thresholds: compared with thresholds
