# miseplastic/firstmise architecture

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

- Interactive diagram: https://gitdiagram.com/miseplastic/firstmise
- Repository: https://github.com/miseplastic/firstmise

## Overview

This is a microplastic-detection dataset research repository, currently focused on auditing train/validation data for image integrity, possible duplicates, and annotation-layout similarities. The documented workflow uses a notebook to create an image inventory, then an audit script to analyze the datasets and produce artifacts summarized in a report. Group-based splitting and YOLOv5s evaluation are planned, not implemented. The graph preserves those research-planning records but does not depict them as runtime stages; unsampled notebook behavior is included only as documented in the README.

Main entry points: [`scripts/report01_audit.py`](https://github.com/miseplastic/firstmise/blob/main/scripts/report01_audit.py) (Audit runner), [`notebook/01_data_inventory.ipynb`](https://github.com/miseplastic/firstmise/blob/main/notebook/01_data_inventory.ipynb) (Inventory notebook), [`artifacts`](https://github.com/miseplastic/firstmise/tree/main/artifacts) (Audit artifacts), [`train`](https://github.com/miseplastic/firstmise/tree/main/train) (Train data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Dataset"]
  node_train_data[("Train data")]
  node_valid_data[("Validation data")]
end

subgraph group_audit["Data audit"]
  node_inventory_notebook["Inventory notebook"]
  node_inventory["Image inventory<br/>[data_inventory.csv]"]
  node_audit_script["Audit runner<br/>[report01_audit.py]"]
  node_integrity["Image integrity<br/>[report01_audit.py]"]
  node_duplicate_analysis["Duplicate analysis<br/>[report01_audit.py]"]
  node_box_analysis["Box statistics<br/>[report01_audit.py]"]
  node_audit_outputs["Audit artifacts"]
end

subgraph group_research["Research records"]
  node_report["Audit report<br/>[REPORT_01.md]"]
  node_research_plan["Research plan<br/>[RESEARCH_PLAN.md]"]
  node_worklog["Work log<br/>[WORKLOG.md]"]
end

node_researcher(("Researcher"))

node_researcher -->|"runs"| node_inventory_notebook
node_train_data -->|"inventories"| node_inventory_notebook
node_valid_data -->|"inventories"| node_inventory_notebook
node_inventory_notebook -->|"generates"| node_inventory
node_researcher -->|"runs"| node_audit_script
node_train_data -->|"reads"| node_audit_script
node_valid_data -->|"reads"| node_audit_script
node_inventory -->|"loads"| node_audit_script
node_audit_script -->|"runs"| node_integrity
node_audit_script -->|"runs"| node_duplicate_analysis
node_audit_script -->|"runs"| node_box_analysis
node_integrity -->|"writes"| node_audit_outputs
node_duplicate_analysis -->|"writes"| node_audit_outputs
node_box_analysis -->|"writes"| node_audit_outputs
node_researcher -->|"reviews"| node_report
node_researcher -->|"reviews"| node_research_plan
node_researcher -->|"reviews"| node_worklog

click node_train_data "https://github.com/miseplastic/firstmise/tree/main/train"
click node_valid_data "https://github.com/miseplastic/firstmise/tree/main/valid"
click node_inventory_notebook "https://github.com/miseplastic/firstmise/blob/main/notebook/01_data_inventory.ipynb"
click node_inventory "https://github.com/miseplastic/firstmise/blob/main/artifacts/data_inventory.csv"
click node_audit_script "https://github.com/miseplastic/firstmise/blob/main/scripts/report01_audit.py"
click node_integrity "https://github.com/miseplastic/firstmise/blob/main/scripts/report01_audit.py"
click node_duplicate_analysis "https://github.com/miseplastic/firstmise/blob/main/scripts/report01_audit.py"
click node_box_analysis "https://github.com/miseplastic/firstmise/blob/main/scripts/report01_audit.py"
click node_audit_outputs "https://github.com/miseplastic/firstmise/tree/main/artifacts"
click node_report "https://github.com/miseplastic/firstmise/blob/main/docs/REPORT_01.md"
click node_research_plan "https://github.com/miseplastic/firstmise/blob/main/docs/RESEARCH_PLAN.md"
click node_worklog "https://github.com/miseplastic/firstmise/blob/main/docs/WORKLOG.md"

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_train_data,node_valid_data toneBlue
class node_inventory_notebook,node_inventory,node_audit_script,node_integrity,node_duplicate_analysis,node_box_analysis,node_audit_outputs toneAmber
class node_report,node_research_plan,node_worklog toneMint
class node_researcher toneIndigo
```

## Components

### Dataset

- [Train data](https://github.com/miseplastic/firstmise/tree/main/train): `train`
- [Validation data](https://github.com/miseplastic/firstmise/tree/main/valid): `valid`

### Data audit

- [Inventory notebook](https://github.com/miseplastic/firstmise/blob/main/notebook/01_data_inventory.ipynb): `notebook/01_data_inventory.ipynb`
- [Image inventory](https://github.com/miseplastic/firstmise/blob/main/artifacts/data_inventory.csv): `artifacts/data_inventory.csv`
- [Audit runner](https://github.com/miseplastic/firstmise/blob/main/scripts/report01_audit.py): `scripts/report01_audit.py`
- [Image integrity](https://github.com/miseplastic/firstmise/blob/main/scripts/report01_audit.py): `scripts/report01_audit.py`
- [Duplicate analysis](https://github.com/miseplastic/firstmise/blob/main/scripts/report01_audit.py): `scripts/report01_audit.py`
- [Box statistics](https://github.com/miseplastic/firstmise/blob/main/scripts/report01_audit.py): `scripts/report01_audit.py`
- [Audit artifacts](https://github.com/miseplastic/firstmise/tree/main/artifacts): `artifacts`

### Research records

- [Audit report](https://github.com/miseplastic/firstmise/blob/main/docs/REPORT_01.md): `docs/REPORT_01.md`
- [Research plan](https://github.com/miseplastic/firstmise/blob/main/docs/RESEARCH_PLAN.md): `docs/RESEARCH_PLAN.md`
- [Work log](https://github.com/miseplastic/firstmise/blob/main/docs/WORKLOG.md): `docs/WORKLOG.md`

### Other components

- **Researcher**

## Connections

- Researcher → Inventory notebook: runs (evidence: `README.md`)
- Train data → Inventory notebook: inventories (evidence: `README.md`)
- Validation data → Inventory notebook: inventories (evidence: `README.md`)
- Inventory notebook → Image inventory: generates (evidence: `README.md`)
- Researcher → Audit runner: runs (evidence: `README.md`)
- Train data → Audit runner: reads (evidence: `scripts/report01_audit.py`)
- Validation data → Audit runner: reads (evidence: `scripts/report01_audit.py`)
- Image inventory → Audit runner: loads (evidence: `scripts/report01_audit.py`)
- Audit runner → Image integrity: runs (evidence: `scripts/report01_audit.py`)
- Audit runner → Duplicate analysis: runs (evidence: `scripts/report01_audit.py`)
- Audit runner → Box statistics: runs (evidence: `scripts/report01_audit.py`)
- Image integrity → Audit artifacts: writes (evidence: `scripts/report01_audit.py`)
- Duplicate analysis → Audit artifacts: writes (evidence: `scripts/report01_audit.py`)
- Box statistics → Audit artifacts: writes (evidence: `scripts/report01_audit.py`)
- Researcher → Audit report: reviews (evidence: `README.md`)
- Researcher → Research plan: reviews (evidence: `README.md`)
- Researcher → Work log: reviews (evidence: `README.md`)
