# dc-777/tcga-pancan-multiomics architecture

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

- Interactive diagram: https://gitdiagram.com/dc-777/tcga-pancan-multiomics
- Repository: https://github.com/dc-777/tcga-pancan-multiomics

## Overview

This repository is a TCGA pan-cancer multiomics survival-analysis pipeline. Its main workflow obtains cohort data, aligns expression, mutation, copy-number and clinical records, derives MOFA+ factors, evaluates survival models, and interprets signals to prioritize therapeutic targets. Separate branches provide exploratory clustering and dimensionality reduction, modality ablation, and causal validation. The README documents these capabilities; sampled source confirms key preprocessing, factorization, model, and ablation behavior. Some downstream links are therefore documented rather than verified from their implementation.

Main entry points: [`src/preprocess.py`](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/preprocess.py) (Omics alignment), [`src/unsupervised/mofa_analysis.py`](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/unsupervised/mofa_analysis.py) (MOFA+ factors), [`src/analysis/did_causal_layer.py`](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/analysis/did_causal_layer.py) (Causal validation), [`src/supervised/shap_analysis.py`](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/supervised/shap_analysis.py) (SHAP attribution)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Cohort data"]
  node_download["TCGA download<br/>[download_tcga.py]"]
  node_cohort[("TCGA cohort files")]
  node_preprocess["Omics alignment<br/>[preprocess.py]"]
end

subgraph group_discovery["Molecular discovery"]
  node_dimred["PCA and UMAP<br/>[dim_reduction.py]"]
  node_clusters["Subtype clustering<br/>[clustering.py]"]
  node_mofa["MOFA+ factors<br/>[mofa_analysis.py]"]
end

subgraph group_prediction["Survival prediction"]
  node_cox["Cox models<br/>[cox_models.py]"]
  node_deepsurv["DeepSurv<br/>[deepsurv.py]"]
  node_comparison["Model comparison"]
end

subgraph group_interpretation["Validation and delivery"]
  node_shap["SHAP attribution<br/>[shap_analysis.py]"]
  node_markers["Gene attribution<br/>[marker_analysis.py]"]
  node_ablation["Modality ablation"]
  node_causal["Causal validation"]
  node_targets["Therapeutic targets"]
  node_dashboard["Interactive dashboard<br/>[dashboard.html]"]
  node_manuscript["Manuscripts"]
end

node_analyst(("Analyst"))
node_xena{{"UCSC Xena"}}

node_analyst -->|"requests data"| node_download
node_download -->|"downloads from"| node_xena
node_download -->|"saves cohort"| node_cohort
node_cohort -->|"loads and aligns"| node_preprocess
node_preprocess -->|"provides modalities"| node_mofa
node_preprocess -->|"provides expression"| node_dimred
node_preprocess -->|"provides features"| node_clusters
node_preprocess -->|"builds survival features"| node_cox
node_preprocess -->|"supplies cohort data"| node_deepsurv
node_mofa -->|"factor inputs"| node_comparison
node_comparison -.->|"attributes predictions"| node_shap
node_cox -->|"explains risk"| node_shap
node_deepsurv -->|"explains risk"| node_shap
node_shap -->|"traces factors to genes"| node_markers
node_mofa -->|"compares modalities"| node_ablation
node_comparison -->|"scores conditions"| node_ablation
node_mofa -.->|"supports causal analysis"| node_causal
node_markers -->|"informs nominations"| node_targets
node_causal -->|"validates candidates"| node_targets
node_targets -->|"appears in"| node_dashboard
node_causal -->|"reports findings"| node_dashboard
node_ablation -->|"reports comparison"| node_dashboard
node_causal -.->|"documents results"| node_manuscript

click node_download "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/download_tcga.py"
click node_cohort "https://github.com/dc-777/tcga-pancan-multiomics/tree/master/data"
click node_preprocess "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/preprocess.py"
click node_dimred "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/unsupervised/dim_reduction.py"
click node_clusters "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/unsupervised/clustering.py"
click node_mofa "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/unsupervised/mofa_analysis.py"
click node_cox "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/supervised/cox_models.py"
click node_deepsurv "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/supervised/deepsurv.py"
click node_comparison "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/supervised/model_comparison.py"
click node_shap "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/supervised/shap_analysis.py"
click node_markers "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/analysis/marker_analysis.py"
click node_ablation "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/analysis/modality_ablation.py"
click node_causal "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/analysis/did_causal_layer.py"
click node_targets "https://github.com/dc-777/tcga-pancan-multiomics/tree/master/src/analysis"
click node_dashboard "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/results/dashboard.html"
click node_manuscript "https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/analysis/build_manuscript.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_download,node_cohort,node_preprocess toneBlue
class node_dimred,node_clusters,node_mofa toneAmber
class node_cox,node_deepsurv,node_comparison toneMint
class node_shap,node_markers,node_ablation,node_causal,node_targets,node_dashboard,node_manuscript toneRose
class node_analyst,node_xena toneIndigo
```

## Components

### Cohort data

- [TCGA download](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/download_tcga.py): `download_tcga.py`
- [TCGA cohort files](https://github.com/dc-777/tcga-pancan-multiomics/tree/master/data): `data`
- [Omics alignment](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/preprocess.py): `src/preprocess.py`

### Molecular discovery

- [PCA and UMAP](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/unsupervised/dim_reduction.py): `src/unsupervised/dim_reduction.py`
- [Subtype clustering](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/unsupervised/clustering.py): `src/unsupervised/clustering.py`
- [MOFA+ factors](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/unsupervised/mofa_analysis.py): `src/unsupervised/mofa_analysis.py`

### Survival prediction

- [Cox models](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/supervised/cox_models.py): `src/supervised/cox_models.py`
- [DeepSurv](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/supervised/deepsurv.py): `src/supervised/deepsurv.py`
- [Model comparison](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/supervised/model_comparison.py): `src/supervised/model_comparison.py`

### Validation and delivery

- [SHAP attribution](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/supervised/shap_analysis.py): `src/supervised/shap_analysis.py`
- [Gene attribution](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/analysis/marker_analysis.py): `src/analysis/marker_analysis.py`
- [Modality ablation](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/analysis/modality_ablation.py): `src/analysis/modality_ablation.py`
- [Causal validation](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/analysis/did_causal_layer.py): `src/analysis/did_causal_layer.py`
- [Therapeutic targets](https://github.com/dc-777/tcga-pancan-multiomics/tree/master/src/analysis): `src/analysis`
- [Interactive dashboard](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/results/dashboard.html): `results/dashboard.html`
- [Manuscripts](https://github.com/dc-777/tcga-pancan-multiomics/blob/master/src/analysis/build_manuscript.py): `src/analysis/build_manuscript.py`

### Other components

- **Analyst**
- **UCSC Xena**

## Connections

- Analyst → TCGA download: requests data (evidence: `README.md`)
- TCGA download → UCSC Xena: downloads from (evidence: `README.md`)
- TCGA download → TCGA cohort files: saves cohort (evidence: `README.md`)
- TCGA cohort files → Omics alignment: loads and aligns (evidence: `src/preprocess.py`)
- Omics alignment → MOFA+ factors: provides modalities (evidence: `src/unsupervised/mofa_analysis.py`)
- Omics alignment → PCA and UMAP: provides expression (evidence: `src/unsupervised/dim_reduction.py`)
- Omics alignment → Subtype clustering: provides features (evidence: `src/unsupervised/clustering.py`)
- Omics alignment → Cox models: builds survival features (evidence: `src/supervised/cox_models.py`)
- Omics alignment → DeepSurv: supplies cohort data (evidence: `src/supervised/deepsurv.py`)
- MOFA+ factors → Model comparison: factor inputs (evidence: `README.md`)
- Model comparison → SHAP attribution: attributes predictions
- Cox models → SHAP attribution: explains risk (evidence: `src/supervised/shap_analysis.py`)
- DeepSurv → SHAP attribution: explains risk (evidence: `src/supervised/shap_analysis.py`)
- SHAP attribution → Gene attribution: traces factors to genes (evidence: `README.md`)
- MOFA+ factors → Modality ablation: compares modalities (evidence: `src/analysis/modality_ablation.py`)
- Model comparison → Modality ablation: scores conditions (evidence: `src/analysis/modality_ablation.py`)
- MOFA+ factors → Causal validation: supports causal analysis
- Gene attribution → Therapeutic targets: informs nominations (evidence: `README.md`)
- Causal validation → Therapeutic targets: validates candidates (evidence: `README.md`)
- Therapeutic targets → Interactive dashboard: appears in (evidence: `README.md`)
- Causal validation → Interactive dashboard: reports findings (evidence: `README.md`)
- Modality ablation → Interactive dashboard: reports comparison (evidence: `README.md`)
- Causal validation → Manuscripts: documents results
