# ritikadawadi/g-quadruplex-snp-research architecture

> Architecture diagram of the GitHub repository ritikadawadi/g-quadruplex-snp-research, 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/ritikadawadi/g-quadruplex-snp-research
- Repository: https://github.com/ritikadawadi/g-quadruplex-snp-research

## Overview

This repository is a reproducible genomics analysis project studying whether germline ClinVar SNVs in G-rich sequence alter predicted G-quadruplex stability in cancer-gene regulatory regions. Its principal workflow selects transcripts and extracts TSS, 5′UTR, and 3′UTR sequences; predicts reference motifs; identifies overlapping variants; constructs mutant sequences; predicts mutant motifs; and compares the results. Separate analysis scripts produce comparison, clinical, COSMIC-context, positional, and poster outputs. The pipeline links below follow the README; sampled excerpts show implementation details for several stages, but unsampled scripts are represented only at their documented subsystem level.

Main entry points: [`compare_mutant_wild`](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/compare_mutant_wild) (Comparison Tables), [`results_compare_figures`](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/results_compare_figures) (Analysis Results), [`scripts/run_qgrs_on_multifasta.py`](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/run_qgrs_on_multifasta.py) (QGRS Runner), [`scripts/select_transcripts_and_extract_regions.py`](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/select_transcripts_and_extract_regions.py) (Transcript Extraction)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_regions["Genes &amp; Regions"]
  node_gene_catalog["Cancer Gene List<br/>[oncogens.tsv]"]
  node_genome_annotation["Genome &amp; Annotation"]
  node_transcript_regions["Transcript Extraction"]
  node_region_data["Region Coordinates"]
  node_reference_fasta["Reference Sequences"]
end

subgraph group_variants["Variant Analysis"]
  node_clinvar["ClinVar Variants"]
  node_utr_discovery["UTR Variant Discovery"]
  node_tss_discovery["TSS Variant Discovery"]
  node_variant_hits["QGRS Variant Overlaps"]
  node_mutant_builder["Mutant Sequence Builder"]
  node_mutant_fasta["Mutant Sequences"]
end

subgraph group_qgrs["QGRS Comparison"]
  node_reference_qgrs["Reference QGRS"]
  node_qgrs_runner["QGRS Runner"]
  node_qgrs_engine["qgrs-cpp"]
  node_mutant_qgrs["Mutant QGRS"]
  node_comparison["Wild-Mutant Comparison"]
  node_comparison_data["Comparison Tables"]
end

subgraph group_reporting["Reporting &amp; Interpretation"]
  node_comparison_figures["Comparison Figures"]
  node_clinical_figures["Clinical Impact"]
  node_cosmic_figures["COSMIC Context"]
  node_distinct_reports["Distinct Change Reports"]
  node_positional_heatmap["Positional G-score"]
  node_poster_figures["Poster Core Figures"]
  node_top_gene_tables["Top-Gene Tables"]
  node_results["Analysis Results"]
end

node_analyst(("Researcher"))

node_analyst -->|"starts analysis"| node_transcript_regions
node_gene_catalog -->|"selects genes"| node_transcript_regions
node_genome_annotation -->|"provides annotation"| node_transcript_regions
node_transcript_regions -->|"writes coordinates"| node_region_data
node_transcript_regions -->|"extracts sequences"| node_reference_fasta
node_reference_fasta -->|"provides sequences"| node_qgrs_runner
node_qgrs_runner -->|"runs prediction"| node_qgrs_engine
node_qgrs_runner -->|"writes reference hits"| node_reference_qgrs
node_reference_qgrs -->|"provides motifs"| node_utr_discovery
node_reference_qgrs -->|"provides motifs"| node_tss_discovery
node_region_data -->|"provides regions"| node_utr_discovery
node_region_data -->|"provides regions"| node_tss_discovery
node_clinvar -->|"provides variants"| node_utr_discovery
node_clinvar -->|"provides variants"| node_tss_discovery
node_utr_discovery -->|"writes overlaps"| node_variant_hits
node_tss_discovery -->|"writes overlaps"| node_variant_hits
node_variant_hits -->|"selects G-related SNVs"| node_mutant_builder
node_reference_fasta -->|"provides reference sequence"| node_mutant_builder
node_mutant_builder -->|"writes mutants"| node_mutant_fasta
node_mutant_fasta -->|"provides sequences"| node_qgrs_runner
node_qgrs_runner -->|"writes mutant hits"| node_mutant_qgrs
node_reference_qgrs -->|"provides reference results"| node_comparison
node_mutant_qgrs -->|"provides mutant results"| node_comparison
node_mutant_fasta -->|"provides manifest"| node_comparison
node_comparison -->|"writes deltas"| node_comparison_data
node_comparison_data -->|"summarizes changes"| node_comparison_figures
node_comparison_data -->|"analyzes significance"| node_clinical_figures
node_comparison_data -->|"joins cancer context"| node_cosmic_figures
node_comparison_data -->|"reports distinct changes"| node_distinct_reports
node_comparison_data -->|"maps positional effects"| node_positional_heatmap
node_comparison_data -->|"summarizes results"| node_poster_figures
node_comparison_data -->|"ranks genes"| node_top_gene_tables
node_comparison_figures -->|"writes figures"| node_results
node_clinical_figures -->|"writes figures"| node_results
node_cosmic_figures -->|"writes figures"| node_results
node_distinct_reports -->|"writes reports"| node_results
node_positional_heatmap -->|"writes figures"| node_results
node_poster_figures -->|"writes figures"| node_results
node_top_gene_tables -->|"writes tables"| node_results

click node_gene_catalog "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/gene/oncogens.tsv"
click node_genome_annotation "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/data/reference"
click node_transcript_regions "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/select_transcripts_and_extract_regions.py"
click node_region_data "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/data/regions"
click node_reference_fasta "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/data/fasta"
click node_reference_qgrs "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/initial_fasta"
click node_qgrs_runner "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/run_qgrs_on_multifasta.py"
click node_qgrs_engine "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/qgrs-cpp"
click node_clinvar "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/data/clinvar"
click node_utr_discovery "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/find_spliced_qgrs_clinvar_snps.py"
click node_tss_discovery "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/find_tss_qgrs_clinvar_snps.py"
click node_variant_hits "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/initial_snp"
click node_mutant_builder "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/create_mutant_fasta_from_g_related_snps.py"
click node_mutant_fasta "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/mutant_fasta"
click node_mutant_qgrs "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/mutant_qgrs"
click node_comparison "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/compare_qgrs_wild_vs_mutant.py"
click node_comparison_data "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/compare_mutant_wild"
click node_comparison_figures "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_compare_figures.py"
click node_clinical_figures "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_bio_clinical_gscore_impact_figures.py"
click node_cosmic_figures "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_cosmic_context_figures.py"
click node_distinct_reports "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/write_distinct_change_reports.py"
click node_positional_heatmap "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_positional_gscore_heatmap.py"
click node_poster_figures "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_final_poster_core_figures.py"
click node_top_gene_tables "https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_top_gene_clinvar_table_figures.py"
click node_results "https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/results_compare_figures"

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_gene_catalog,node_genome_annotation,node_transcript_regions,node_region_data,node_reference_fasta toneBlue
class node_clinvar,node_utr_discovery,node_tss_discovery,node_variant_hits,node_mutant_builder,node_mutant_fasta toneAmber
class node_reference_qgrs,node_qgrs_runner,node_qgrs_engine,node_mutant_qgrs,node_comparison,node_comparison_data toneMint
class node_comparison_figures,node_clinical_figures,node_cosmic_figures,node_distinct_reports,node_positional_heatmap,node_poster_figures,node_top_gene_tables,node_results toneRose
class node_analyst toneIndigo
```

## Components

### Genes & Regions

- [Cancer Gene List](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/gene/oncogens.tsv): `gene/oncogens.tsv`
- [Genome & Annotation](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/data/reference): `data/reference`
- [Transcript Extraction](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/select_transcripts_and_extract_regions.py): `scripts/select_transcripts_and_extract_regions.py`
- [Region Coordinates](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/data/regions): `data/regions`
- [Reference Sequences](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/data/fasta): `data/fasta`

### Variant Analysis

- [ClinVar Variants](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/data/clinvar): `data/clinvar`
- [UTR Variant Discovery](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/find_spliced_qgrs_clinvar_snps.py): `scripts/find_spliced_qgrs_clinvar_snps.py`
- [TSS Variant Discovery](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/find_tss_qgrs_clinvar_snps.py): `scripts/find_tss_qgrs_clinvar_snps.py`
- [QGRS Variant Overlaps](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/initial_snp): `initial_snp`
- [Mutant Sequence Builder](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/create_mutant_fasta_from_g_related_snps.py): `scripts/create_mutant_fasta_from_g_related_snps.py`
- [Mutant Sequences](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/mutant_fasta): `mutant_fasta`

### QGRS Comparison

- [Reference QGRS](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/initial_fasta): `initial_fasta`
- [QGRS Runner](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/run_qgrs_on_multifasta.py): `scripts/run_qgrs_on_multifasta.py`
- [qgrs-cpp](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/qgrs-cpp): `qgrs-cpp`
- [Mutant QGRS](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/mutant_qgrs): `mutant_qgrs`
- [Wild-Mutant Comparison](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/compare_qgrs_wild_vs_mutant.py): `scripts/compare_qgrs_wild_vs_mutant.py`
- [Comparison Tables](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/compare_mutant_wild): `compare_mutant_wild`

### Reporting & Interpretation

- [Comparison Figures](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_compare_figures.py): `scripts/make_compare_figures.py`
- [Clinical Impact](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_bio_clinical_gscore_impact_figures.py): `scripts/make_bio_clinical_gscore_impact_figures.py`
- [COSMIC Context](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_cosmic_context_figures.py): `scripts/make_cosmic_context_figures.py`
- [Distinct Change Reports](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/write_distinct_change_reports.py): `scripts/write_distinct_change_reports.py`
- [Positional G-score](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_positional_gscore_heatmap.py): `scripts/make_positional_gscore_heatmap.py`
- [Poster Core Figures](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_final_poster_core_figures.py): `scripts/make_final_poster_core_figures.py`
- [Top-Gene Tables](https://github.com/ritikadawadi/g-quadruplex-snp-research/blob/main/scripts/make_top_gene_clinvar_table_figures.py): `scripts/make_top_gene_clinvar_table_figures.py`
- [Analysis Results](https://github.com/ritikadawadi/g-quadruplex-snp-research/tree/main/results_compare_figures): `results_compare_figures`

### Other components

- **Researcher**

## Connections

- Researcher → Transcript Extraction: starts analysis (evidence: `README.md`)
- Cancer Gene List → Transcript Extraction: selects genes (evidence: `README.md`)
- Genome & Annotation → Transcript Extraction: provides annotation (evidence: `README.md`)
- Transcript Extraction → Region Coordinates: writes coordinates (evidence: `README.md`)
- Transcript Extraction → Reference Sequences: extracts sequences (evidence: `README.md`)
- Reference Sequences → QGRS Runner: provides sequences (evidence: `README.md`)
- QGRS Runner → qgrs-cpp: runs prediction (evidence: `README.md`)
- QGRS Runner → Reference QGRS: writes reference hits (evidence: `README.md`)
- Reference QGRS → UTR Variant Discovery: provides motifs (evidence: `README.md`)
- Reference QGRS → TSS Variant Discovery: provides motifs (evidence: `README.md`)
- Region Coordinates → UTR Variant Discovery: provides regions (evidence: `README.md`)
- Region Coordinates → TSS Variant Discovery: provides regions (evidence: `README.md`)
- ClinVar Variants → UTR Variant Discovery: provides variants (evidence: `README.md`)
- ClinVar Variants → TSS Variant Discovery: provides variants (evidence: `README.md`)
- UTR Variant Discovery → QGRS Variant Overlaps: writes overlaps (evidence: `README.md`)
- TSS Variant Discovery → QGRS Variant Overlaps: writes overlaps (evidence: `README.md`)
- QGRS Variant Overlaps → Mutant Sequence Builder: selects G-related SNVs (evidence: `README.md`)
- Reference Sequences → Mutant Sequence Builder: provides reference sequence (evidence: `README.md`)
- Mutant Sequence Builder → Mutant Sequences: writes mutants (evidence: `README.md`)
- Mutant Sequences → QGRS Runner: provides sequences (evidence: `README.md`)
- QGRS Runner → Mutant QGRS: writes mutant hits (evidence: `README.md`)
- Reference QGRS → Wild-Mutant Comparison: provides reference results (evidence: `README.md`)
- Mutant QGRS → Wild-Mutant Comparison: provides mutant results (evidence: `README.md`)
- Mutant Sequences → Wild-Mutant Comparison: provides manifest (evidence: `README.md`)
- Wild-Mutant Comparison → Comparison Tables: writes deltas (evidence: `README.md`)
- Comparison Tables → Comparison Figures: summarizes changes (evidence: `README.md`)
- Comparison Tables → Clinical Impact: analyzes significance (evidence: `README.md`)
- Comparison Tables → COSMIC Context: joins cancer context (evidence: `README.md`)
- Comparison Tables → Distinct Change Reports: reports distinct changes (evidence: `README.md`)
- Comparison Tables → Positional G-score: maps positional effects (evidence: `README.md`)
- Comparison Tables → Poster Core Figures: summarizes results (evidence: `README.md`)
- Comparison Tables → Top-Gene Tables: ranks genes (evidence: `README.md`)
- Comparison Figures → Analysis Results: writes figures (evidence: `README.md`)
- Clinical Impact → Analysis Results: writes figures (evidence: `README.md`)
- COSMIC Context → Analysis Results: writes figures (evidence: `README.md`)
- Distinct Change Reports → Analysis Results: writes reports (evidence: `README.md`)
- Positional G-score → Analysis Results: writes figures (evidence: `README.md`)
- Poster Core Figures → Analysis Results: writes figures (evidence: `README.md`)
- Top-Gene Tables → Analysis Results: writes tables (evidence: `README.md`)
