# saireddy957/skincancer_project architecture

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

- Interactive diagram: https://gitdiagram.com/saireddy957/skincancer_project
- Repository: https://github.com/saireddy957/skincancer_project

## Overview

This is a research workflow for HAM10000 skin-lesion classification, not a deployed diagnostic service. A user selects training, evaluation, or ACO optimization through the CLI; data loading and preprocessing feed a CNN model, whose checkpoints can then be evaluated and reported. The README also describes image-only and multimodal comparisons, lesion-level splits, and multitask outputs, but sampled implementation excerpts do not establish all of those details; the graph emphasizes verified runtime behavior and notes this evidence limit.

Main entry points: [`src/train.py`](https://github.com/saireddy957/skincancer_project/blob/main/src/train.py) (Training and validation), [`src/evaluate.py`](https://github.com/saireddy957/skincancer_project/blob/main/src/evaluate.py) (Model evaluation), [`main.py`](https://github.com/saireddy957/skincancer_project/blob/main/main.py) (CLI modes), [`src/dataset.py`](https://github.com/saireddy957/skincancer_project/blob/main/src/dataset.py) (Dataset and transforms)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Workflow entry"]
  node_cli["CLI modes<br/>[main.py]"]
end

subgraph group_data["Data preparation"]
  node_ham[("HAM10000 files")]
  node_dataset["Dataset and transforms<br/>[dataset.py]"]
end

subgraph group_learning["Model learning"]
  node_model["CNN model factory<br/>[model.py]"]
  node_trainer["Training and validation<br/>[train.py]"]
  node_optimizer["ACO search<br/>[aco.py]"]
  node_utils["Training utilities<br/>[utils.py]"]
end

subgraph group_results["Evaluation and results"]
  node_checkpoint[("Model checkpoints")]
  node_evaluator["Model evaluation<br/>[evaluate.py]"]
  node_artifacts["Evaluation artifacts"]
  node_comparison["Reported comparison"]
end

node_user(("Research user"))

node_user -->|"selects mode"| node_cli
node_cli -->|"starts training"| node_trainer
node_cli -->|"starts evaluation"| node_evaluator
node_cli -->|"starts search"| node_optimizer
node_ham -->|"provides images and metadata"| node_dataset
node_trainer -->|"loads samples"| node_dataset
node_trainer -->|"creates and trains"| node_model
node_trainer -->|"saves and plots"| node_utils
node_trainer -->|"writes checkpoints"| node_checkpoint
node_optimizer -->|"trains candidates"| node_trainer
node_evaluator -->|"loads test samples"| node_dataset
node_evaluator -->|"creates model"| node_model
node_evaluator -->|"loads checkpoint"| node_utils
node_checkpoint -->|"supplies weights"| node_evaluator
node_evaluator -->|"writes reports and plots"| node_artifacts

click node_cli "https://github.com/saireddy957/skincancer_project/blob/main/main.py"
click node_dataset "https://github.com/saireddy957/skincancer_project/blob/main/src/dataset.py"
click node_model "https://github.com/saireddy957/skincancer_project/blob/main/src/model.py"
click node_trainer "https://github.com/saireddy957/skincancer_project/blob/main/src/train.py"
click node_optimizer "https://github.com/saireddy957/skincancer_project/blob/main/src/aco.py"
click node_utils "https://github.com/saireddy957/skincancer_project/blob/main/src/utils.py"
click node_checkpoint "https://github.com/saireddy957/skincancer_project/tree/main/models"
click node_evaluator "https://github.com/saireddy957/skincancer_project/blob/main/src/evaluate.py"
click node_artifacts "https://github.com/saireddy957/skincancer_project/tree/main/results"
click node_comparison "https://github.com/saireddy957/skincancer_project/blob/main/results/model_comparison.csv"

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_cli,node_user toneBlue
class node_ham,node_dataset toneAmber
class node_model,node_trainer,node_optimizer,node_utils toneMint
class node_checkpoint,node_evaluator,node_artifacts,node_comparison toneRose
```

## Components

### Workflow entry

- [CLI modes](https://github.com/saireddy957/skincancer_project/blob/main/main.py): `main.py`

### Data preparation

- **HAM10000 files**
- [Dataset and transforms](https://github.com/saireddy957/skincancer_project/blob/main/src/dataset.py): `src/dataset.py`

### Model learning

- [CNN model factory](https://github.com/saireddy957/skincancer_project/blob/main/src/model.py): `src/model.py`
- [Training and validation](https://github.com/saireddy957/skincancer_project/blob/main/src/train.py): `src/train.py`
- [ACO search](https://github.com/saireddy957/skincancer_project/blob/main/src/aco.py): `src/aco.py`
- [Training utilities](https://github.com/saireddy957/skincancer_project/blob/main/src/utils.py): `src/utils.py`

### Evaluation and results

- [Model checkpoints](https://github.com/saireddy957/skincancer_project/tree/main/models): `models`
- [Model evaluation](https://github.com/saireddy957/skincancer_project/blob/main/src/evaluate.py): `src/evaluate.py`
- [Evaluation artifacts](https://github.com/saireddy957/skincancer_project/tree/main/results): `results`
- [Reported comparison](https://github.com/saireddy957/skincancer_project/blob/main/results/model_comparison.csv): `results/model_comparison.csv`

### Other components

- **Research user**

## Connections

- Research user → CLI modes: selects mode (evidence: `main.py`)
- CLI modes → Training and validation: starts training (evidence: `main.py`)
- CLI modes → Model evaluation: starts evaluation (evidence: `main.py`)
- CLI modes → ACO search: starts search (evidence: `main.py`)
- HAM10000 files → Dataset and transforms: provides images and metadata (evidence: `src/dataset.py`)
- Training and validation → Dataset and transforms: loads samples (evidence: `src/train.py`)
- Training and validation → CNN model factory: creates and trains (evidence: `src/train.py`)
- Training and validation → Training utilities: saves and plots (evidence: `src/train.py`)
- Training and validation → Model checkpoints: writes checkpoints (evidence: `src/train.py`)
- ACO search → Training and validation: trains candidates (evidence: `src/aco.py`)
- Model evaluation → Dataset and transforms: loads test samples (evidence: `src/evaluate.py`)
- Model evaluation → CNN model factory: creates model (evidence: `src/evaluate.py`)
- Model evaluation → Training utilities: loads checkpoint (evidence: `src/evaluate.py`)
- Model checkpoints → Model evaluation: supplies weights (evidence: `src/evaluate.py`)
- Model evaluation → Evaluation artifacts: writes reports and plots (evidence: `src/evaluate.py`)
