# sanjaykris20/pathological-myopia architecture

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

- Interactive diagram: https://gitdiagram.com/sanjaykris20/pathological-myopia
- Repository: https://github.com/sanjaykris20/pathological-myopia

## Overview

This repository documents a research pipeline for analyzing pathological myopia in fundus photographs. Public datasets are harmonized, quality-checked, split by group, and preprocessed before a six-model classification benchmark and validation-based selection. The selected Swin-Tiny backbone supports classification, severity, fovea localization, and annotation-dependent segmentation; outputs also support quantitative phenotyping and explainability, followed by final evaluation. The tree contains only a notebook and README, with no source excerpts, so the graph reflects documented workflow relationships rather than inspected implementation calls.

Main entry points: [`pathological-myopia.ipynb`](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb) (Swin-Tiny encoder)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Data preparation"]
  node_harmonization["Dataset harmonization"]
  node_quality["Quality control"]
  node_split["Group-aware split"]
  node_preprocessing["Retinal preprocessing"]
end

subgraph group_benchmark["Model benchmarking"]
  node_benchmark_models["Six-model benchmark"]
  node_selection["Validation selection"]
  node_optimization["Controlled optimization"]
end

subgraph group_multitask["Multi-task analysis"]
  node_swin_encoder["Swin-Tiny encoder"]
  node_pm_classification["PM classification"]
  node_severity["Severity assessment"]
  node_fovea["Fovea localization"]
  node_segmentation["Lesion segmentation"]
end

subgraph group_interpretation["Interpretation"]
  node_phenotyping["Quantitative phenotyping"]
  node_explainability["Grad-CAM analysis"]
  node_evaluation["Final evaluation"]
end

node_datasets[("Public fundus datasets")]

node_datasets -->|"harmonizes"| node_harmonization
node_harmonization -->|"quality checks"| node_quality
node_quality -->|"splits groups"| node_split
node_split -->|"prepares images"| node_preprocessing
node_preprocessing -->|"feeds benchmark"| node_benchmark_models
node_benchmark_models -->|"reports validation"| node_selection
node_selection -->|"selects benchmark"| node_optimization
node_selection -->|"selects backbone"| node_swin_encoder
node_preprocessing -->|"feeds images"| node_swin_encoder
node_swin_encoder -->|"shares features"| node_pm_classification
node_swin_encoder -->|"shares features"| node_severity
node_swin_encoder -->|"shares features"| node_fovea
node_swin_encoder -->|"shares features"| node_segmentation
node_segmentation -->|"supplies masks"| node_phenotyping
node_segmentation -->|"supports mask analysis"| node_explainability
node_pm_classification -->|"evaluated in"| node_evaluation
node_severity -->|"evaluated in"| node_evaluation
node_fovea -->|"evaluated in"| node_evaluation
node_phenotyping -->|"reported in"| node_evaluation
node_explainability -->|"reported in"| node_evaluation

click node_harmonization "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_quality "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_split "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_preprocessing "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_benchmark_models "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_selection "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_optimization "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_swin_encoder "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_pm_classification "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_severity "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_fovea "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_segmentation "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_phenotyping "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_explainability "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb"
click node_evaluation "https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.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_harmonization,node_quality,node_split,node_preprocessing toneBlue
class node_benchmark_models,node_selection,node_optimization,node_datasets toneAmber
class node_swin_encoder,node_pm_classification,node_severity,node_fovea,node_segmentation toneMint
class node_phenotyping,node_explainability,node_evaluation toneRose
```

## Components

### Data preparation

- [Dataset harmonization](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [Quality control](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [Group-aware split](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [Retinal preprocessing](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`

### Model benchmarking

- [Six-model benchmark](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [Validation selection](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [Controlled optimization](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`

### Multi-task analysis

- [Swin-Tiny encoder](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [PM classification](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [Severity assessment](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [Fovea localization](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [Lesion segmentation](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`

### Interpretation

- [Quantitative phenotyping](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [Grad-CAM analysis](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`
- [Final evaluation](https://github.com/sanjaykris20/pathological-myopia/blob/main/pathological-myopia.ipynb): `pathological-myopia.ipynb`

### Other components

- **Public fundus datasets**

## Connections

- Public fundus datasets → Dataset harmonization: harmonizes (evidence: `README.md`)
- Dataset harmonization → Quality control: quality checks (evidence: `README.md`)
- Quality control → Group-aware split: splits groups (evidence: `README.md`)
- Group-aware split → Retinal preprocessing: prepares images (evidence: `README.md`)
- Retinal preprocessing → Six-model benchmark: feeds benchmark (evidence: `README.md`)
- Six-model benchmark → Validation selection: reports validation (evidence: `README.md`)
- Validation selection → Controlled optimization: selects benchmark (evidence: `README.md`)
- Validation selection → Swin-Tiny encoder: selects backbone (evidence: `README.md`)
- Retinal preprocessing → Swin-Tiny encoder: feeds images (evidence: `README.md`)
- Swin-Tiny encoder → PM classification: shares features (evidence: `README.md`)
- Swin-Tiny encoder → Severity assessment: shares features (evidence: `README.md`)
- Swin-Tiny encoder → Fovea localization: shares features (evidence: `README.md`)
- Swin-Tiny encoder → Lesion segmentation: shares features (evidence: `README.md`)
- Lesion segmentation → Quantitative phenotyping: supplies masks (evidence: `README.md`)
- Lesion segmentation → Grad-CAM analysis: supports mask analysis (evidence: `README.md`)
- PM classification → Final evaluation: evaluated in (evidence: `README.md`)
- Severity assessment → Final evaluation: evaluated in (evidence: `README.md`)
- Fovea localization → Final evaluation: evaluated in (evidence: `README.md`)
- Quantitative phenotyping → Final evaluation: reported in (evidence: `README.md`)
- Grad-CAM analysis → Final evaluation: reported in (evidence: `README.md`)
