# crisprking/nka-pump-genomics architecture

> Architecture diagram of the GitHub repository crisprking/nka-pump-genomics, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/crisprking/nka-pump-genomics
- Repository: https://github.com/crisprking/nka-pump-genomics

## Overview

This repository is a reproducible genomics analysis of disease-associated variants in Na⁺/K⁺-ATPase subunits. Its principal workflow gathers and aligns sequences, derives conservation, maps and validates ClinVar variants, adds population and predictor evidence, then tests biological associations and produces reports. The graph preserves documented structure, topology, paralogue and classifier analyses as capabilities. Sampled source confirms the variant, population and statistical wiring; connections for unsampled pipeline stages are limited to documented inputs and outputs rather than inferred from their numbering.

Main entry points: [`results`](https://github.com/crisprking/nka-pump-genomics/tree/main/results) (Analysis tables), [`scripts/03_variants.py`](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/03_variants.py) (ClinVar variants), [`scripts/06_analysis.py`](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/06_analysis.py) (Association analysis), [`scripts/00_fetch_sequences.py`](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/00_fetch_sequences.py) (Fetch sequences)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_sequence["Sequence analysis"]
  node_fetch["Fetch sequences"]
  node_align["Align orthologues<br/>[01_align.py]"]
  node_conserve["Conservation scores<br/>[02_conservation.py]"]
  node_canonical["Canonical sequences<br/>[canonical.fasta]"]
  node_alignments["Sequence alignments"]
end

subgraph group_evidence["Variant evidence"]
  node_clinvar["ClinVar variants<br/>[03_variants.py]"]
  node_variant_lib["Variant mapping<br/>[variants.py]"]
  node_qc["Quality gates<br/>[qc.py]"]
  node_population["gnomAD evidence<br/>[04_population.py]"]
  node_alphamissense["AlphaMissense evidence"]
end

subgraph group_analysis["Statistical analysis"]
  node_structures["Structure analysis"]
  node_topology["Topology analysis"]
  node_integrate["Evidence integration"]
  node_analysis_script["Association analysis<br/>[06_analysis.py]"]
  node_model["Variant classifiers<br/>[model.py]"]
  node_stats["Statistical tests<br/>[stats.py]"]
end

subgraph group_outputs["Results and reporting"]
  node_results[("Analysis tables")]
  node_report["Report generation<br/>[07_report.py]"]
  node_reports["Reports and figures"]
end

node_researcher(("Researcher"))
node_external_sources(("External databases"))

node_researcher -->|"runs pipeline"| node_fetch
node_fetch -->|"fetches sequences"| node_external_sources
node_fetch -->|"writes sequences"| node_canonical
node_align -->|"reads sequences"| node_canonical
node_align -->|"writes alignments"| node_alignments
node_conserve -->|"reads alignments"| node_alignments
node_conserve -->|"writes scores"| node_results
node_clinvar -->|"maps variants"| node_variant_lib
node_clinvar -->|"queries ClinVar and VEP"| node_external_sources
node_clinvar -->|"validates residues"| node_canonical
node_clinvar -->|"records mapping QC"| node_qc
node_clinvar -->|"writes variants"| node_results
node_population -->|"queries gnomAD"| node_external_sources
node_population -->|"writes population evidence"| node_results
node_alphamissense -->|"writes predictions"| node_results
node_structures -->|"records structure analyses"| node_results
node_topology -->|"records enrichment"| node_results
node_integrate -->|"writes integrated evidence"| node_results
node_analysis_script -->|"reads analysis inputs"| node_results
node_analysis_script -->|"computes permutations and intervals"| node_stats
node_analysis_script -->|"scores classifiers"| node_model
node_analysis_script -->|"writes statistics and validation"| node_results
node_report -->|"reads results"| node_results
node_report -->|"produces reports"| node_reports

click node_fetch "https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/00_fetch_sequences.py"
click node_align "https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/01_align.py"
click node_conserve "https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/02_conservation.py"
click node_canonical "https://github.com/crisprking/nka-pump-genomics/blob/main/data/reference/canonical.fasta"
click node_alignments "https://github.com/crisprking/nka-pump-genomics/tree/main/data/alignments"
click node_clinvar "https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/03_variants.py"
click node_variant_lib "https://github.com/crisprking/nka-pump-genomics/blob/main/src/nka/variants.py"
click node_qc "https://github.com/crisprking/nka-pump-genomics/blob/main/src/nka/qc.py"
click node_population "https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/04_population.py"
click node_alphamissense "https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/05_alphamissense.py"
click node_structures "https://github.com/crisprking/nka-pump-genomics/tree/main/scripts"
click node_topology "https://github.com/crisprking/nka-pump-genomics/tree/main/scripts"
click node_integrate "https://github.com/crisprking/nka-pump-genomics/tree/main/scripts"
click node_analysis_script "https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/06_analysis.py"
click node_model "https://github.com/crisprking/nka-pump-genomics/blob/main/src/nka/model.py"
click node_stats "https://github.com/crisprking/nka-pump-genomics/blob/main/src/nka/stats.py"
click node_results "https://github.com/crisprking/nka-pump-genomics/tree/main/results"
click node_report "https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/07_report.py"
click node_reports "https://github.com/crisprking/nka-pump-genomics/tree/main/docs"

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_fetch,node_align,node_conserve,node_canonical,node_alignments toneBlue
class node_clinvar,node_variant_lib,node_qc,node_population,node_alphamissense,node_external_sources toneAmber
class node_structures,node_topology,node_integrate,node_analysis_script,node_model,node_stats toneMint
class node_results,node_report,node_reports toneRose
class node_researcher toneIndigo
```

## Components

### Sequence analysis

- [Fetch sequences](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/00_fetch_sequences.py): `scripts/00_fetch_sequences.py`
- [Align orthologues](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/01_align.py): `scripts/01_align.py`
- [Conservation scores](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/02_conservation.py): `scripts/02_conservation.py`
- [Canonical sequences](https://github.com/crisprking/nka-pump-genomics/blob/main/data/reference/canonical.fasta): `data/reference/canonical.fasta`
- [Sequence alignments](https://github.com/crisprking/nka-pump-genomics/tree/main/data/alignments): `data/alignments`

### Variant evidence

- [ClinVar variants](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/03_variants.py): `scripts/03_variants.py`
- [Variant mapping](https://github.com/crisprking/nka-pump-genomics/blob/main/src/nka/variants.py): `src/nka/variants.py`
- [Quality gates](https://github.com/crisprking/nka-pump-genomics/blob/main/src/nka/qc.py): `src/nka/qc.py`
- [gnomAD evidence](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/04_population.py): `scripts/04_population.py`
- [AlphaMissense evidence](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/05_alphamissense.py): `scripts/05_alphamissense.py`

### Statistical analysis

- [Structure analysis](https://github.com/crisprking/nka-pump-genomics/tree/main/scripts): `scripts`
- [Topology analysis](https://github.com/crisprking/nka-pump-genomics/tree/main/scripts): `scripts`
- [Evidence integration](https://github.com/crisprking/nka-pump-genomics/tree/main/scripts): `scripts`
- [Association analysis](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/06_analysis.py): `scripts/06_analysis.py`
- [Variant classifiers](https://github.com/crisprking/nka-pump-genomics/blob/main/src/nka/model.py): `src/nka/model.py`
- [Statistical tests](https://github.com/crisprking/nka-pump-genomics/blob/main/src/nka/stats.py): `src/nka/stats.py`

### Results and reporting

- [Analysis tables](https://github.com/crisprking/nka-pump-genomics/tree/main/results): `results`
- [Report generation](https://github.com/crisprking/nka-pump-genomics/blob/main/scripts/07_report.py): `scripts/07_report.py`
- [Reports and figures](https://github.com/crisprking/nka-pump-genomics/tree/main/docs): `docs`

### Other components

- **Researcher**
- **External databases**

## Connections

- Researcher → Fetch sequences: runs pipeline
- Fetch sequences → External databases: fetches sequences
- Fetch sequences → Canonical sequences: writes sequences
- Align orthologues → Canonical sequences: reads sequences
- Align orthologues → Sequence alignments: writes alignments
- Conservation scores → Sequence alignments: reads alignments
- Conservation scores → Analysis tables: writes scores
- ClinVar variants → Variant mapping: maps variants
- ClinVar variants → External databases: queries ClinVar and VEP
- ClinVar variants → Canonical sequences: validates residues
- ClinVar variants → Quality gates: records mapping QC
- ClinVar variants → Analysis tables: writes variants
- gnomAD evidence → External databases: queries gnomAD
- gnomAD evidence → Analysis tables: writes population evidence
- AlphaMissense evidence → Analysis tables: writes predictions
- Structure analysis → Analysis tables: records structure analyses
- Topology analysis → Analysis tables: records enrichment
- Evidence integration → Analysis tables: writes integrated evidence
- Association analysis → Analysis tables: reads analysis inputs
- Association analysis → Statistical tests: computes permutations and intervals
- Association analysis → Variant classifiers: scores classifiers
- Association analysis → Analysis tables: writes statistics and validation
- Report generation → Analysis tables: reads results
- Report generation → Reports and figures: produces reports
