# sarhnagniafariba-maker/escc-ml-biomarker-discovery architecture

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

- Interactive diagram: https://gitdiagram.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery
- Repository: https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery

## Overview

This repository is a research analysis for identifying ESCC gene signatures and classifying tumor versus normal samples. The documented workflow applies preprocessing, variance filtering, ANOVA feature selection, and standardization before evaluating Logistic Regression and Random Forest with LOOCV; metrics and permutation testing assess performance, while visualizations support interpretation. The README also identifies GEO GSE17351 and two data files. No notebook source was available, so edges reflect documented relationships only; the detailed implementation and exact data-file roles cannot be verified.

Main entry points: [`REduced_featres_conda.ipynb`](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb) (Analysis notebook), [`Data/GSE17351_series_matrix.txt`](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/Data/GSE17351_series_matrix.txt) (GSE17351 matrix), [`Data/expression_matrix.csv`](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/Data/expression_matrix.csv) (Expression matrix)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Expression data"]
  node_series["GSE17351 matrix"]
  node_expression["Expression matrix"]
end

subgraph group_prep["Feature preparation"]
  node_analysis["Analysis notebook"]
  node_preprocess["Preprocessing"]
  node_variance["Variance filtering"]
  node_anova["ANOVA selection"]
  node_standardize["Standardization"]
end

subgraph group_model["Classification"]
  node_loocv["LOOCV"]
  node_logistic["L1 Logistic Regression"]
  node_forest["Random Forest"]
end

subgraph group_eval["Evaluation"]
  node_metrics["Performance metrics"]
  node_permutation["Permutation testing"]
end

subgraph group_viz["Analysis outputs"]
  node_pca["PCA"]
  node_heatmap["Expression heatmap"]
  node_roc["ROC curves"]
  node_confusion["Confusion matrices"]
  node_importance["Feature importance"]
  node_signature["Stable gene signatures"]
end

node_geo(("GEO dataset"))

node_geo -->|"provides data"| node_series
node_series -->|"analyzed in"| node_analysis
node_expression -->|"analyzed in"| node_analysis
node_analysis -->|"performs"| node_preprocess
node_preprocess -->|"precedes"| node_variance
node_variance -->|"precedes"| node_anova
node_anova -->|"precedes"| node_standardize
node_standardize -->|"evaluated with"| node_loocv
node_loocv -->|"evaluates"| node_logistic
node_loocv -->|"evaluates"| node_forest
node_logistic -->|"measured by"| node_metrics
node_forest -->|"measured by"| node_metrics
node_metrics -->|"assessed by"| node_permutation
node_analysis -->|"visualizes with"| node_pca
node_analysis -->|"visualizes with"| node_heatmap
node_metrics -->|"visualizes with"| node_roc
node_metrics -->|"visualizes with"| node_confusion
node_analysis -->|"analyzes"| node_importance
node_importance -->|"supports interpretation of"| node_signature

click node_series "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/Data/GSE17351_series_matrix.txt"
click node_expression "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/Data/expression_matrix.csv"
click node_analysis "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_preprocess "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_variance "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_anova "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_standardize "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_loocv "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_logistic "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_forest "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_metrics "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_permutation "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_pca "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_heatmap "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_roc "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_confusion "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_importance "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"
click node_signature "https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb"

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_series,node_expression toneBlue
class node_analysis,node_preprocess,node_variance,node_anova,node_standardize toneAmber
class node_loocv,node_logistic,node_forest toneMint
class node_metrics,node_permutation toneRose
class node_pca,node_heatmap,node_roc,node_confusion,node_importance,node_signature,node_geo toneIndigo
```

## Components

### Expression data

- [GSE17351 matrix](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/Data/GSE17351_series_matrix.txt): `Data/GSE17351_series_matrix.txt`
- [Expression matrix](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/Data/expression_matrix.csv): `Data/expression_matrix.csv`

### Feature preparation

- [Analysis notebook](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [Preprocessing](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [Variance filtering](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [ANOVA selection](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [Standardization](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`

### Classification

- [LOOCV](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [L1 Logistic Regression](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [Random Forest](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`

### Evaluation

- [Performance metrics](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [Permutation testing](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`

### Analysis outputs

- [PCA](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [Expression heatmap](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [ROC curves](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [Confusion matrices](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [Feature importance](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`
- [Stable gene signatures](https://github.com/sarhnagniafariba-maker/escc-ml-biomarker-discovery/blob/main/REduced_featres_conda.ipynb): `REduced_featres_conda.ipynb`

### Other components

- **GEO dataset**

## Connections

- GEO dataset → GSE17351 matrix: provides data (evidence: `README.md`)
- GSE17351 matrix → Analysis notebook: analyzed in (evidence: `README.md`)
- Expression matrix → Analysis notebook: analyzed in (evidence: `README.md`)
- Analysis notebook → Preprocessing: performs (evidence: `README.md`)
- Preprocessing → Variance filtering: precedes (evidence: `README.md`)
- Variance filtering → ANOVA selection: precedes (evidence: `README.md`)
- ANOVA selection → Standardization: precedes (evidence: `README.md`)
- Standardization → LOOCV: evaluated with (evidence: `README.md`)
- LOOCV → L1 Logistic Regression: evaluates (evidence: `README.md`)
- LOOCV → Random Forest: evaluates (evidence: `README.md`)
- L1 Logistic Regression → Performance metrics: measured by (evidence: `README.md`)
- Random Forest → Performance metrics: measured by (evidence: `README.md`)
- Performance metrics → Permutation testing: assessed by (evidence: `README.md`)
- Analysis notebook → PCA: visualizes with (evidence: `README.md`)
- Analysis notebook → Expression heatmap: visualizes with (evidence: `README.md`)
- Performance metrics → ROC curves: visualizes with (evidence: `README.md`)
- Performance metrics → Confusion matrices: visualizes with (evidence: `README.md`)
- Analysis notebook → Feature importance: analyzes (evidence: `README.md`)
- Feature importance → Stable gene signatures: supports interpretation of (evidence: `README.md`)
