# yeakubshakil/preeclampsia architecture

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

- Interactive diagram: https://gitdiagram.com/yeakubshakil/preeclampsia
- Repository: https://github.com/yeakubshakil/preeclampsia

## Overview

1. This repository is a notebook-driven analysis project for preeclampsia, not a packaged application. The main deliverables are Jupyter notebooks plus a data archive named `Data for ML_PE.zip`, with the README only indicating the project domain.

2. The architecture is centered on a single research workflow: load clinical/ML data, perform exploratory or cohort-specific analysis, then run predictive modeling. There is no evidence of a runtime service, API layer, or deployment boundary.

3. The notebooks split into two broad lanes:
   - `*_analysis.ipynb` notebooks for exploratory/statistical analysis
   - `*_predictive_modeling.ipynb` notebooks for model training and evaluation  
   This suggests analysis outputs feed into feature selection, cohort understanding, and model development.

4. There are also “common” and “large_common” notebook variants, which likely represent two dataset scales or cohort definitions. Architecturally, that implies the same analytical pipeline is reused across different data partitions rather than being implemented once in code modules.

5. The `pe_sle_hpt_hpth_*` naming indicates the project compares or stratifies multiple pregnancy-related conditions or cohorts. The notebooks likely serve as the main boundary between cohort assembly and downstream analysis, with each notebook focusing on a specific population slice.

6. The `Data for ML_PE.zip` archive is the primary data boundary. Since no scripts or data-processing packages are listed, the notebooks probably read directly from extracted files in that archive and produce derived tables, plots, and model artifacts inside the notebook environment.

7. The predictive modeling notebooks are the main “machine learning” subsystem. Their responsibilities are likely preprocessing, feature engineering, train/test splitting, model fitting, and performance assessment, all performed interactively rather than through a reusable library.

8. The analysis notebooks are the upstream interpretation subsystem. They likely generate descriptive statistics, cohort comparisons, and data-quality checks that inform the modeling notebooks and help validate the underlying dataset.

9. The repo’s workflow is likely manual and sequential: open a notebook, load the zipped dataset, run analysis cells, then run modeling cells. That means reproducibility depends more on notebook execution order and the bundled data than on a formal codebase structure.

10. For an architecture diagram, the main nodes are: dataset archive, exploratory analysis notebooks, common/large cohort analysis notebooks, predictive modeling notebooks, and notebook outputs. The only explicit external dependency visible from the repo structure is the Jupyter runtime itself, with no sign of services, databases, or production infrastructure.

Main entry points: [`Data for ML_PE.zip`](https://github.com/yeakubshakil/preeclampsia/blob/HEAD/Data%20for%20ML_PE.zip) (Data archive), [`pe_sle_hpt_hpth_predictive_modeling.ipynb`](https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_predictive_modeling.ipynb) (Predictive modeling), [`pe_sle_hpt_hpth_analysis.ipynb`](https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_analysis.ipynb) (Analysis), [`pe_sle_hpt_hpth_common_analysis.ipynb`](https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_common_analysis.ipynb) (Common analysis)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Data boundary"]
  node_archive[("Data archive<br/>input data<br/>[Data for ML_PE.zip]")]
end

subgraph group_notebooks["Notebook workflow"]
  node_analysis_main["Analysis<br/>exploratory notebook"]
  node_analysis_common["Common analysis<br/>exploratory notebook"]
  node_analysis_large_common["Large common analysis<br/>exploratory notebook"]
  node_model_main["Predictive modeling<br/>ml notebook"]
  node_model_large["Large modeling<br/>ml notebook"]
end

node_outputs["Notebook outputs<br/>derived results"]
node_jupyter(("Jupyter runtime<br/>execution environment"))

node_archive -->|"load"| node_analysis_main
node_archive -->|"load"| node_analysis_common
node_archive -->|"load"| node_analysis_large_common
node_archive -->|"load"| node_model_main
node_archive -->|"load"| node_model_large
node_analysis_main -->|"inform"| node_model_main
node_analysis_common -->|"inform"| node_model_main
node_analysis_large_common -->|"inform"| node_model_large
node_analysis_main -->|"produce"| node_outputs
node_analysis_common -->|"produce"| node_outputs
node_analysis_large_common -->|"produce"| node_outputs
node_model_main -->|"produce"| node_outputs
node_model_large -->|"produce"| node_outputs
node_jupyter -->|"run"| node_analysis_main
node_jupyter -->|"run"| node_analysis_common
node_jupyter -->|"run"| node_analysis_large_common
node_jupyter -->|"run"| node_model_main
node_jupyter -->|"run"| node_model_large

click node_archive "https://github.com/yeakubshakil/preeclampsia/blob/main/Data for ML_PE.zip"
click node_analysis_main "https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_analysis.ipynb"
click node_analysis_common "https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_common_analysis.ipynb"
click node_analysis_large_common "https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_large_common_analysis.ipynb"
click node_model_main "https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_predictive_modeling.ipynb"
click node_model_large "https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_large_predictive_modeling.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_archive toneBlue
class node_analysis_main,node_analysis_common,node_analysis_large_common,node_model_main,node_model_large toneAmber
class node_outputs,node_jupyter toneNeutral
```

## Components

### Data boundary

Primary input archive for the notebook workflow.

- [Data archive](https://github.com/yeakubshakil/preeclampsia/blob/HEAD/Data%20for%20ML_PE.zip): input data · Bundled clinical/ML dataset read by the notebooks. · `Data for ML_PE.zip`

### Notebook workflow

Exploratory analysis and predictive modeling notebooks reused across cohort scales.

- [Analysis](https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_analysis.ipynb): exploratory notebook · Main cohort and descriptive analysis notebook. · `pe_sle_hpt_hpth_analysis.ipynb`
- [Common analysis](https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_common_analysis.ipynb): exploratory notebook · Shared analysis flow for common cohort data. · `pe_sle_hpt_hpth_common_analysis.ipynb`
- [Large common analysis](https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_large_common_analysis.ipynb): exploratory notebook · Analysis variant for the larger common cohort slice. · `pe_sle_hpt_hpth_large_common_analysis.ipynb`
- [Predictive modeling](https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_predictive_modeling.ipynb): ml notebook · Main notebook for preprocessing, model fitting, and evaluation. · `pe_sle_hpt_hpth_predictive_modeling.ipynb`
- [Large modeling](https://github.com/yeakubshakil/preeclampsia/blob/main/pe_sle_hpt_hpth_large_predictive_modeling.ipynb): ml notebook · Modeling notebook tuned for the larger cohort partition. · `pe_sle_hpt_hpth_large_predictive_modeling.ipynb`

### Other components

- **Notebook outputs**: derived results · Plots, tables, fitted models, and other notebook-generated artifacts.
- **Jupyter runtime**: execution environment · Interactive notebook environment used to run the analysis workflow.

## Connections

- Data archive → Analysis: load · Analysis notebook reads the bundled data archive.
- Data archive → Common analysis: load · Common analysis notebook reads the bundled data archive.
- Data archive → Large common analysis: load · Large common analysis notebook reads the bundled data archive.
- Data archive → Predictive modeling: load · Modeling notebook reads the bundled data archive.
- Data archive → Large modeling: load · Large modeling notebook reads the bundled data archive.
- Analysis → Predictive modeling: inform · Exploratory findings guide feature selection and modeling choices.
- Common analysis → Predictive modeling: inform · Shared cohort analysis informs the main modeling workflow.
- Large common analysis → Large modeling: inform · Large-cohort analysis informs the large-scale modeling workflow.
- Analysis → Notebook outputs: produce · Analysis notebook generates tables and plots.
- Common analysis → Notebook outputs: produce · Common analysis notebook generates tables and plots.
- Large common analysis → Notebook outputs: produce · Large common analysis notebook generates tables and plots.
- Predictive modeling → Notebook outputs: produce · Modeling notebook generates fitted models and performance metrics.
- Large modeling → Notebook outputs: produce · Large modeling notebook generates fitted models and performance metrics.
- Jupyter runtime → Analysis: run · Notebook execution environment runs the analysis notebook.
- Jupyter runtime → Common analysis: run · Notebook execution environment runs the common analysis notebook.
- Jupyter runtime → Large common analysis: run · Notebook execution environment runs the large common analysis notebook.
- Jupyter runtime → Predictive modeling: run · Notebook execution environment runs the main predictive modeling notebook.
- Jupyter runtime → Large modeling: run · Notebook execution environment runs the large predictive modeling notebook.
