# saezlab/partipy_paper architecture

> Architecture diagram of the GitHub repository saezlab/partipy_paper, 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/saezlab/partipy_paper
- Repository: https://github.com/saezlab/partipy_paper

## Overview

ParTIpy’s repository is a research-reproduction suite for archetypal analysis (AA) and Pareto task inference (PTI), rather than the implementation of the ParTIpy library itself. Researchers run data-specific scripts to prepare single-cell or spatial datasets, compare AA initialization and optimization strategies, evaluate coreset accuracy and runtime, and measure memory use; separate example scripts demonstrate analyses. Benchmark summaries and figures report results. README descriptions establish the major experiment branches, while sampled source confirms dataset loading, preprocessing, and AA calls; unsampled internals are represented at directory level, with uncertain links left out.

Main entry points: [`output`](https://github.com/saezlab/partipy_paper/tree/main/output) (Results and figures), [`code/utils/data_utils.py`](https://github.com/saezlab/partipy_paper/blob/main/code/utils/data_utils.py) (Dataset loaders), [`code/benchmark_algorithms`](https://github.com/saezlab/partipy_paper/tree/main/code/benchmark_algorithms) (AA algorithm benchmarks), [`code/benchmark_coresets`](https://github.com/saezlab/partipy_paper/tree/main/code/benchmark_coresets) (Coreset experiments)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Data access"]
  node_datasets[("Omics datasets")]
  node_loaders["Dataset loaders<br/>[data_utils.py]"]
  node_constants["Paths and seeds<br/>[const.py]"]
end

subgraph group_experiments["Experiments"]
  node_algo["AA algorithm benchmarks"]
  node_coresets["Coreset experiments"]
  node_memory["Memory benchmarks"]
  node_comparisons["PCHA comparisons"]
end

subgraph group_analysis["Examples"]
  node_examples["Omics examples"]
end

subgraph group_results["Result summaries"]
  node_meta_algo["Algorithm summaries<br/>[bench_meta.py]"]
  node_meta_coreset["Coreset summaries<br/>[coreset_meta.py]"]
  node_meta_coreset_v2["Coreset v2 summaries<br/>[coreset_meta_v2.py]"]
  node_meta_memory["Memory summaries<br/>[memory_meta.py]"]
  node_outputs["Results and figures"]
end

node_researcher(("Researcher"))

node_researcher -->|"runs benchmarks"| node_algo
node_researcher -->|"runs experiments"| node_coresets
node_researcher -->|"runs benchmarks"| node_memory
node_researcher -->|"runs examples"| node_examples
node_loaders -->|"downloads data"| node_datasets
node_algo -->|"loads datasets"| node_loaders
node_coresets -->|"loads datasets"| node_loaders
node_memory -->|"loads datasets"| node_loaders
node_comparisons -->|"loads datasets"| node_loaders
node_algo -->|"uses settings"| node_constants
node_coresets -->|"uses settings"| node_constants
node_memory -->|"uses settings"| node_constants
node_algo -.->|"writes results"| node_outputs
node_coresets -.->|"writes results"| node_outputs
node_memory -.->|"writes results"| node_outputs
node_comparisons -.->|"writes results"| node_outputs
node_examples -.->|"loads datasets"| node_loaders
node_meta_algo -.->|"summarizes results"| node_outputs
node_meta_coreset -.->|"summarizes results"| node_outputs
node_meta_coreset_v2 -.->|"summarizes results"| node_outputs
node_meta_memory -.->|"summarizes results"| node_outputs

click node_loaders "https://github.com/saezlab/partipy_paper/blob/main/code/utils/data_utils.py"
click node_constants "https://github.com/saezlab/partipy_paper/blob/main/code/utils/const.py"
click node_algo "https://github.com/saezlab/partipy_paper/tree/main/code/benchmark_algorithms"
click node_coresets "https://github.com/saezlab/partipy_paper/tree/main/code/benchmark_coresets"
click node_memory "https://github.com/saezlab/partipy_paper/tree/main/code/benchmark_memory"
click node_comparisons "https://github.com/saezlab/partipy_paper/tree/main/code/benchmark_other"
click node_examples "https://github.com/saezlab/partipy_paper/tree/main/code/examples"
click node_meta_algo "https://github.com/saezlab/partipy_paper/blob/main/code/benchmark_algorithms/bench_meta.py"
click node_meta_coreset "https://github.com/saezlab/partipy_paper/blob/main/code/benchmark_coresets/coreset_meta.py"
click node_meta_coreset_v2 "https://github.com/saezlab/partipy_paper/blob/main/code/benchmark_coresets/coreset_meta_v2.py"
click node_meta_memory "https://github.com/saezlab/partipy_paper/blob/main/code/benchmark_memory/memory_meta.py"
click node_outputs "https://github.com/saezlab/partipy_paper/tree/main/output"

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_datasets,node_loaders,node_constants toneBlue
class node_algo,node_coresets,node_memory,node_comparisons toneAmber
class node_examples toneMint
class node_meta_algo,node_meta_coreset,node_meta_coreset_v2,node_meta_memory,node_outputs toneRose
class node_researcher toneIndigo
```

## Components

### Data access

- **Omics datasets**
- [Dataset loaders](https://github.com/saezlab/partipy_paper/blob/main/code/utils/data_utils.py): `code/utils/data_utils.py`
- [Paths and seeds](https://github.com/saezlab/partipy_paper/blob/main/code/utils/const.py): `code/utils/const.py`

### Experiments

- [AA algorithm benchmarks](https://github.com/saezlab/partipy_paper/tree/main/code/benchmark_algorithms): `code/benchmark_algorithms`
- [Coreset experiments](https://github.com/saezlab/partipy_paper/tree/main/code/benchmark_coresets): `code/benchmark_coresets`
- [Memory benchmarks](https://github.com/saezlab/partipy_paper/tree/main/code/benchmark_memory): `code/benchmark_memory`
- [PCHA comparisons](https://github.com/saezlab/partipy_paper/tree/main/code/benchmark_other): `code/benchmark_other`

### Examples

- [Omics examples](https://github.com/saezlab/partipy_paper/tree/main/code/examples): `code/examples`

### Result summaries

- [Algorithm summaries](https://github.com/saezlab/partipy_paper/blob/main/code/benchmark_algorithms/bench_meta.py): `code/benchmark_algorithms/bench_meta.py`
- [Coreset summaries](https://github.com/saezlab/partipy_paper/blob/main/code/benchmark_coresets/coreset_meta.py): `code/benchmark_coresets/coreset_meta.py`
- [Coreset v2 summaries](https://github.com/saezlab/partipy_paper/blob/main/code/benchmark_coresets/coreset_meta_v2.py): `code/benchmark_coresets/coreset_meta_v2.py`
- [Memory summaries](https://github.com/saezlab/partipy_paper/blob/main/code/benchmark_memory/memory_meta.py): `code/benchmark_memory/memory_meta.py`
- [Results and figures](https://github.com/saezlab/partipy_paper/tree/main/output): `output`

### Other components

- **Researcher**

## Connections

- Researcher → AA algorithm benchmarks: runs benchmarks (evidence: `README.md`)
- Researcher → Coreset experiments: runs experiments (evidence: `README.md`)
- Researcher → Memory benchmarks: runs benchmarks (evidence: `README.md`)
- Researcher → Omics examples: runs examples (evidence: `README.md`)
- Dataset loaders → Omics datasets: downloads data (evidence: `code/utils/data_utils.py`)
- AA algorithm benchmarks → Dataset loaders: loads datasets (evidence: `code/benchmark_algorithms/lupus_bench.py`)
- Coreset experiments → Dataset loaders: loads datasets (evidence: `code/benchmark_coresets/lupus_coreset.py`)
- Memory benchmarks → Dataset loaders: loads datasets (evidence: `code/benchmark_memory/k562_memory_bench.py`)
- PCHA comparisons → Dataset loaders: loads datasets (evidence: `code/benchmark_other/ms_pypcha.py`)
- AA algorithm benchmarks → Paths and seeds: uses settings (evidence: `code/benchmark_algorithms/lupus_bench.py`)
- Coreset experiments → Paths and seeds: uses settings (evidence: `code/benchmark_coresets/lupus_coreset.py`)
- Memory benchmarks → Paths and seeds: uses settings (evidence: `code/benchmark_memory/k562_memory_bench.py`)
- AA algorithm benchmarks → Results and figures: writes results
- Coreset experiments → Results and figures: writes results
- Memory benchmarks → Results and figures: writes results
- PCHA comparisons → Results and figures: writes results
- Omics examples → Dataset loaders: loads datasets
- Algorithm summaries → Results and figures: summarizes results
- Coreset summaries → Results and figures: summarizes results
- Coreset v2 summaries → Results and figures: summarizes results
- Memory summaries → Results and figures: summarizes results
