# sajjadeslamkhah/drg-pancancer architecture

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

- Interactive diagram: https://gitdiagram.com/sajjadeslamkhah/drg-pancancer
- Repository: https://github.com/sajjadeslamkhah/drg-pancancer

## Overview

DRG-PanCancer is a reproducible TCGA pan-cancer analysis, not a general-purpose software service. Its main workflow downloads public cohort data, prepares tumour samples and DRG scores, runs biological and prognostic analyses, and produces manuscript results. A separate revision program adds robustness and adjustment analyses; figure and table scripts consume pipeline outputs. The README documents these capabilities, but the excerpts do not expose most internal call paths, so the graph keeps those links at the documented pipeline level.

Main entry points: [`src/drg_pancancer_pipeline.py`](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py) (Pan-cancer pipeline), [`src/drg_v3_revision.py`](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py) (Revision analyses), [`src/make_main_figures.py`](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/make_main_figures.py) (Figure assembly), [`src/make_tables.py`](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/make_tables.py) (Table assembly)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_analysis["Main analysis"]
  node_pipeline["Pan-cancer pipeline"]
  node_download["Data acquisition"]
  node_cohort["Cohort and scores"]
  node_tumor_normal["Tumour-normal tests"]
  node_survival["Survival analyses"]
  node_metabolic["Metabolic programmes"]
  node_clinical_genomic["Clinical and genomic"]
  node_lasso["LASSO-Cox validation"]
  node_main_results["Main result tables"]
end

subgraph group_revision["Revision analyses"]
  node_revision_runner["Revision analyses<br/>[drg_v3_revision.py]"]
  node_nulls["Matched-set nulls<br/>[drg_v3_revision.py]"]
  node_adjustments["Clinical adjustments<br/>[drg_v3_revision.py]"]
  node_ph_checks["Proportional-hazards checks<br/>[drg_v3_revision.py]"]
  node_benchmarks["LASSO benchmarks<br/>[drg_v3_revision.py]"]
  node_revision_results["Revision result files<br/>[drg_v3_revision.py]"]
end

subgraph group_outputs["Manuscript outputs"]
  node_figure_builder["Figure assembly"]
  node_figures["Manuscript figures"]
  node_table_builder["Table assembly<br/>[make_tables.py]"]
  node_tables["Manuscript tables<br/>[make_tables.py]"]
end

node_researcher(("Researcher"))
node_tcga[("Public TCGA data")]

node_researcher -->|"runs"| node_pipeline
node_tcga -->|"provides data"| node_download
node_pipeline -->|"downloads"| node_download
node_pipeline -->|"prepares samples"| node_cohort
node_pipeline -->|"compares"| node_tumor_normal
node_pipeline -->|"analyses survival"| node_survival
node_pipeline -->|"analyses programmes"| node_metabolic
node_pipeline -->|"tests subgroups"| node_clinical_genomic
node_pipeline -->|"validates models"| node_lasso
node_pipeline -->|"writes results"| node_main_results
node_researcher -->|"runs"| node_revision_runner
node_revision_runner -->|"reads outputs"| node_main_results
node_revision_runner -->|"tests nulls"| node_nulls
node_revision_runner -->|"adjusts models"| node_adjustments
node_revision_runner -->|"checks hazards"| node_ph_checks
node_revision_runner -->|"benchmarks models"| node_benchmarks
node_revision_runner -->|"writes results"| node_revision_results
node_researcher -->|"runs"| node_figure_builder
node_main_results -->|"reads tables"| node_figure_builder
node_figure_builder -->|"assembles"| node_figures
node_researcher -->|"runs"| node_table_builder
node_main_results -->|"reads tables"| node_table_builder
node_table_builder -->|"builds"| node_tables

click node_pipeline "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py"
click node_download "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py"
click node_cohort "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py"
click node_tumor_normal "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py"
click node_survival "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py"
click node_metabolic "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py"
click node_clinical_genomic "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py"
click node_lasso "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py"
click node_main_results "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py"
click node_revision_runner "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py"
click node_nulls "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py"
click node_adjustments "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py"
click node_ph_checks "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py"
click node_benchmarks "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py"
click node_revision_results "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py"
click node_figure_builder "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/make_main_figures.py"
click node_figures "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/make_main_figures.py"
click node_table_builder "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/make_tables.py"
click node_tables "https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/make_tables.py"

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_pipeline,node_download,node_cohort,node_tumor_normal,node_survival,node_metabolic,node_clinical_genomic,node_lasso,node_main_results toneBlue
class node_revision_runner,node_nulls,node_adjustments,node_ph_checks,node_benchmarks,node_revision_results,node_tcga toneAmber
class node_figure_builder,node_figures,node_table_builder,node_tables toneMint
class node_researcher toneIndigo
```

## Components

### Main analysis

- [Pan-cancer pipeline](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py): `src/drg_pancancer_pipeline.py`
- [Data acquisition](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py): `src/drg_pancancer_pipeline.py`
- [Cohort and scores](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py): `src/drg_pancancer_pipeline.py`
- [Tumour-normal tests](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py): `src/drg_pancancer_pipeline.py`
- [Survival analyses](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py): `src/drg_pancancer_pipeline.py`
- [Metabolic programmes](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py): `src/drg_pancancer_pipeline.py`
- [Clinical and genomic](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py): `src/drg_pancancer_pipeline.py`
- [LASSO-Cox validation](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py): `src/drg_pancancer_pipeline.py`
- [Main result tables](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_pancancer_pipeline.py): `src/drg_pancancer_pipeline.py`

### Revision analyses

- [Revision analyses](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py): `src/drg_v3_revision.py`
- [Matched-set nulls](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py): `src/drg_v3_revision.py`
- [Clinical adjustments](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py): `src/drg_v3_revision.py`
- [Proportional-hazards checks](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py): `src/drg_v3_revision.py`
- [LASSO benchmarks](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py): `src/drg_v3_revision.py`
- [Revision result files](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/drg_v3_revision.py): `src/drg_v3_revision.py`

### Manuscript outputs

- [Figure assembly](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/make_main_figures.py): `src/make_main_figures.py`
- [Manuscript figures](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/make_main_figures.py): `src/make_main_figures.py`
- [Table assembly](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/make_tables.py): `src/make_tables.py`
- [Manuscript tables](https://github.com/sajjadeslamkhah/drg-pancancer/blob/main/src/make_tables.py): `src/make_tables.py`

### Other components

- **Researcher**
- **Public TCGA data**

## Connections

- Researcher → Pan-cancer pipeline: runs (evidence: `README.md`)
- Public TCGA data → Data acquisition: provides data (evidence: `README.md`)
- Pan-cancer pipeline → Data acquisition: downloads (evidence: `README.md`)
- Pan-cancer pipeline → Cohort and scores: prepares samples (evidence: `README.md`)
- Pan-cancer pipeline → Tumour-normal tests: compares (evidence: `README.md`)
- Pan-cancer pipeline → Survival analyses: analyses survival (evidence: `README.md`)
- Pan-cancer pipeline → Metabolic programmes: analyses programmes (evidence: `README.md`)
- Pan-cancer pipeline → Clinical and genomic: tests subgroups (evidence: `README.md`)
- Pan-cancer pipeline → LASSO-Cox validation: validates models (evidence: `README.md`)
- Pan-cancer pipeline → Main result tables: writes results (evidence: `README.md`)
- Researcher → Revision analyses: runs (evidence: `README.md`)
- Revision analyses → Main result tables: reads outputs (evidence: `src/drg_v3_revision.py`)
- Revision analyses → Matched-set nulls: tests nulls (evidence: `README.md`)
- Revision analyses → Clinical adjustments: adjusts models (evidence: `README.md`)
- Revision analyses → Proportional-hazards checks: checks hazards (evidence: `README.md`)
- Revision analyses → LASSO benchmarks: benchmarks models (evidence: `README.md`)
- Revision analyses → Revision result files: writes results (evidence: `README.md`)
- Researcher → Figure assembly: runs (evidence: `README.md`)
- Main result tables → Figure assembly: reads tables (evidence: `src/make_main_figures.py`)
- Figure assembly → Manuscript figures: assembles (evidence: `README.md`)
- Researcher → Table assembly: runs (evidence: `README.md`)
- Main result tables → Table assembly: reads tables (evidence: `src/make_tables.py`)
- Table assembly → Manuscript tables: builds (evidence: `README.md`)
