# laurenmbell/networks architecture

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

## Overview

This repository is a collection of research scripts for reconstructing and interrogating multi-omic correlation networks, rather than a packaged application. The broad workflow is to preprocess tissue/metabolite measurements, calculate correlations and FDR tables, then summarize or interrogate network edges and directions. Related scripts cover CSF, FECI, PLS/CPX, and plasma analyses; additional tools map biological node types and reverse inferred edge directions. The README describes the overall purpose, but most scripts appear standalone: excerpts do not establish a shared runtime orchestrator or links between analysis stages, so those connections are not asserted.

Main entry points: [`CSF_ESP/CSF-ESP.py`](https://github.com/laurenmbell/networks/blob/main/CSF_ESP/CSF-ESP.py) (CSF edge prediction), [`inverse_puc/reverse_puc.py`](https://github.com/laurenmbell/networks/blob/main/inverse_puc/reverse_puc.py) (Reverse PUC)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_csf["CSF analyses"]
  node_csf_preprocess["CSF preprocessing<br/>[preprocessing.py]"]
  node_ctx_preprocess["CTX preprocessing<br/>[preprocessing.py]"]
  node_rbn_preprocess["RBN preprocessing<br/>[preprocessing.py]"]
  node_str_preprocess["STR preprocessing<br/>[preprocessing.py]"]
  node_csf_correlations["CSF correlations"]
  node_csf_fdr["CSF FDR tables<br/>[fdr_table.py]"]
  node_csf_properties["CSF properties"]
end

subgraph group_cross_omic["Cross-omic analyses"]
  node_feci_analysis["FECI analysis"]
  node_feci_cpx["FECI CPX analysis"]
  node_feci_pls["FECI PLS analysis"]
  node_pls_cpx["PLS CPX analysis<br/>[filter_rename.py]"]
  node_plasma_properties["Plasma properties"]
end

subgraph group_network["Network interrogation"]
  node_csf_esp["CSF edge prediction<br/>[CSF-ESP.py]"]
  node_edge_signs["Edge sign prediction"]
  node_reverse_puc["Reverse PUC<br/>[reverse_puc.py]"]
  node_network_properties["Network properties"]
end

subgraph group_mapping["Node mapping"]
  node_type_map["Biological type map<br/>[type_map.py]"]
  node_typemap["Tissue edge mapping<br/>[typemap.py]"]
  node_bibc["BIBC calculation<br/>[calc_bibc.py]"]
  node_analysis_table["CSF analysis table"]
end

subgraph group_metabolomics["Metabolomics tools"]
  node_metabolomics_eda["Metabolomics EDA<br/>[eda.py]"]
  node_pubchem["PubChem lookup<br/>[pubchem_rest.py]"]
  node_duplicate_analysis["Duplicate analysis"]
end

node_researcher(("Researcher"))

node_researcher -->|"runs"| node_csf_esp
node_csf_esp -.->|"implements method"| node_reverse_puc

click node_csf_preprocess "https://github.com/laurenmbell/networks/blob/main/CSF-CPX/preprocessing.py"
click node_ctx_preprocess "https://github.com/laurenmbell/networks/blob/main/CSF-CTX/preprocessing.py"
click node_rbn_preprocess "https://github.com/laurenmbell/networks/blob/main/CSF-RBN/preprocessing.py"
click node_str_preprocess "https://github.com/laurenmbell/networks/blob/main/CSF-STR/preprocessing.py"
click node_csf_correlations "https://github.com/laurenmbell/networks/blob/main/CSF/compute_correlations.py"
click node_csf_fdr "https://github.com/laurenmbell/networks/blob/main/CSF/fdr_table.py"
click node_csf_properties "https://github.com/laurenmbell/networks/blob/main/CSF/network_property.py"
click node_feci_analysis "https://github.com/laurenmbell/networks/tree/main/FECI/feci_analysis"
click node_feci_cpx "https://github.com/laurenmbell/networks/blob/main/FECI-CPX/pooled_correlation.py"
click node_feci_pls "https://github.com/laurenmbell/networks/blob/main/FECI-PLS/pooled_correlation.py"
click node_pls_cpx "https://github.com/laurenmbell/networks/blob/main/PLS-CPX/filter_rename.py"
click node_plasma_properties "https://github.com/laurenmbell/networks/blob/main/PLASMA/plasma_analysis/network_prop_table.py"
click node_csf_esp "https://github.com/laurenmbell/networks/blob/main/CSF_ESP/CSF-ESP.py"
click node_edge_signs "https://github.com/laurenmbell/networks/blob/main/CSF_ESP/CSF-brain_edge_signs/edge_sign_prediction.py"
click node_reverse_puc "https://github.com/laurenmbell/networks/blob/main/inverse_puc/reverse_puc.py"
click node_network_properties "https://github.com/laurenmbell/networks/blob/main/network_properties_old/network_prop_table.py"
click node_type_map "https://github.com/laurenmbell/networks/blob/main/bibc/type_map.py"
click node_typemap "https://github.com/laurenmbell/networks/blob/main/bibc/typemap.py"
click node_bibc "https://github.com/laurenmbell/networks/blob/main/bibc/calc_bibc.py"
click node_analysis_table "https://github.com/laurenmbell/networks/blob/main/CSF_analysis/CSF_analysis_table.py"
click node_metabolomics_eda "https://github.com/laurenmbell/networks/blob/main/metabolomics_analysis/eda.py"
click node_pubchem "https://github.com/laurenmbell/networks/blob/main/metabolomics_analysis/pubchem_rest.py"
click node_duplicate_analysis "https://github.com/laurenmbell/networks/blob/main/metabolomics_analysis/duplicate%20analysis%20/duplicate_analysis.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_csf_preprocess,node_ctx_preprocess,node_rbn_preprocess,node_str_preprocess,node_csf_correlations,node_csf_fdr,node_csf_properties toneBlue
class node_feci_analysis,node_feci_cpx,node_feci_pls,node_pls_cpx,node_plasma_properties toneAmber
class node_csf_esp,node_edge_signs,node_reverse_puc,node_network_properties toneMint
class node_type_map,node_typemap,node_bibc,node_analysis_table toneRose
class node_metabolomics_eda,node_pubchem,node_duplicate_analysis,node_researcher toneIndigo
```

## Components

### CSF analyses

- [CSF preprocessing](https://github.com/laurenmbell/networks/blob/main/CSF-CPX/preprocessing.py): `CSF-CPX/preprocessing.py`
- [CTX preprocessing](https://github.com/laurenmbell/networks/blob/main/CSF-CTX/preprocessing.py): `CSF-CTX/preprocessing.py`
- [RBN preprocessing](https://github.com/laurenmbell/networks/blob/main/CSF-RBN/preprocessing.py): `CSF-RBN/preprocessing.py`
- [STR preprocessing](https://github.com/laurenmbell/networks/blob/main/CSF-STR/preprocessing.py): `CSF-STR/preprocessing.py`
- [CSF correlations](https://github.com/laurenmbell/networks/blob/main/CSF/compute_correlations.py): `CSF/compute_correlations.py`
- [CSF FDR tables](https://github.com/laurenmbell/networks/blob/main/CSF/fdr_table.py): `CSF/fdr_table.py`
- [CSF properties](https://github.com/laurenmbell/networks/blob/main/CSF/network_property.py): `CSF/network_property.py`

### Cross-omic analyses

- [FECI analysis](https://github.com/laurenmbell/networks/tree/main/FECI/feci_analysis): `FECI/feci_analysis`
- [FECI CPX analysis](https://github.com/laurenmbell/networks/blob/main/FECI-CPX/pooled_correlation.py): `FECI-CPX/pooled_correlation.py`
- [FECI PLS analysis](https://github.com/laurenmbell/networks/blob/main/FECI-PLS/pooled_correlation.py): `FECI-PLS/pooled_correlation.py`
- [PLS CPX analysis](https://github.com/laurenmbell/networks/blob/main/PLS-CPX/filter_rename.py): `PLS-CPX/filter_rename.py`
- [Plasma properties](https://github.com/laurenmbell/networks/blob/main/PLASMA/plasma_analysis/network_prop_table.py): `PLASMA/plasma_analysis/network_prop_table.py`

### Network interrogation

- [CSF edge prediction](https://github.com/laurenmbell/networks/blob/main/CSF_ESP/CSF-ESP.py): `CSF_ESP/CSF-ESP.py`
- [Edge sign prediction](https://github.com/laurenmbell/networks/blob/main/CSF_ESP/CSF-brain_edge_signs/edge_sign_prediction.py): `CSF_ESP/CSF-brain_edge_signs/edge_sign_prediction.py`
- [Reverse PUC](https://github.com/laurenmbell/networks/blob/main/inverse_puc/reverse_puc.py): `inverse_puc/reverse_puc.py`
- [Network properties](https://github.com/laurenmbell/networks/blob/main/network_properties_old/network_prop_table.py): `network_properties_old/network_prop_table.py`

### Node mapping

- [Biological type map](https://github.com/laurenmbell/networks/blob/main/bibc/type_map.py): `bibc/type_map.py`
- [Tissue edge mapping](https://github.com/laurenmbell/networks/blob/main/bibc/typemap.py): `bibc/typemap.py`
- [BIBC calculation](https://github.com/laurenmbell/networks/blob/main/bibc/calc_bibc.py): `bibc/calc_bibc.py`
- [CSF analysis table](https://github.com/laurenmbell/networks/blob/main/CSF_analysis/CSF_analysis_table.py): `CSF_analysis/CSF_analysis_table.py`

### Metabolomics tools

- [Metabolomics EDA](https://github.com/laurenmbell/networks/blob/main/metabolomics_analysis/eda.py): `metabolomics_analysis/eda.py`
- [PubChem lookup](https://github.com/laurenmbell/networks/blob/main/metabolomics_analysis/pubchem_rest.py): `metabolomics_analysis/pubchem_rest.py`
- [Duplicate analysis](https://github.com/laurenmbell/networks/blob/main/metabolomics_analysis/duplicate%20analysis%20/duplicate_analysis.py): `metabolomics_analysis/duplicate analysis /duplicate_analysis.py`

### Other components

- **Researcher**

## Connections

- Researcher → CSF edge prediction: runs (evidence: `CSF_ESP/CSF-ESP.py`)
- CSF edge prediction → Reverse PUC: implements method
