# d7125/repression-domain-transfer-audit architecture

> Architecture diagram of the GitHub repository d7125/repression-domain-transfer-audit, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/d7125/repression-domain-transfer-audit
- Repository: https://github.com/d7125/repression-domain-transfer-audit

## Overview

This repository is a reproducibility and analysis suite for auditing whether sequence models trained on the rTetR repression screen transfer to the dCas9/CD43 context. Its workflow assembles screen-derived tile data, creates sequence embeddings and homology-aware splits, trains and evaluates models, then runs biological and robustness analyses. The README documents the overall stages; sampled source confirms selected model and evaluation dependencies. Many analysis scripts are indexed but unsampled, so their internal calls are not inferred.

Main entry points: [`aduy_code/build_master.py`](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/build_master.py) (Shared tile table), [`aduy_code/train_cnn.py`](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/train_cnn.py) (Training loop), [`aduy_code/prepare_data.py`](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/prepare_data.py) (Data preparation), [`aduy_code/cnn_model.py`](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/cnn_model.py) (Motif CNN)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Data assembly"]
  node_tileprep["Tile preparation<br/>[predata_v2.py]"]
  node_prepare["Data preparation<br/>[prepare_data.py]"]
  node_fasta["FASTA export<br/>[make_fasta.py]"]
  node_embed["ESM embeddings"]
  node_master[("Shared tile table<br/>[build_master.py]")]
end

subgraph group_models["Sequence modeling"]
  node_cnn["Motif CNN<br/>[cnn_model.py]"]
  node_trainer["Training loop<br/>[train_cnn.py]"]
  node_classifytrain["Classifier training<br/>[train_classify.py]"]
end

subgraph group_evaluation["Transfer evaluation"]
  node_cd43["CD43 training<br/>[cd43_model.py]"]
  node_retest["Retest validation<br/>[retest_validate.py]"]
  node_retestseeds["Retest reruns<br/>[retest_seeds.py]"]
  node_topk["Top-k transfer<br/>[cd43_topk2.py]"]
  node_tabular["Tabular baseline"]
  node_variants["CD43 variants<br/>[cd43_variants.py]"]
  node_classifier["Confirmed-hit classifier"]
  node_effector["CD43 sequence join"]
end

subgraph group_analysis["Biological analysis"]
  node_saliency["Motif saliency"]
  node_composition["Composition controls"]
  node_variance["Variance decomposition<br/>[icc_variance.py]"]
  node_domains["Domain clustering<br/>[cluster_domains.py]"]
  node_robustness["Robustness analyses"]
  node_figures["Paper figures"]
  node_paper_numbers["Paper number summary<br/>[paper_numbers.py]"]
end

node_papers["Published screens"]
node_mmseqs["MMseqs2 clusters"]
node_pfam[("Pfam database")]

node_papers -->|"supplies tables"| node_tileprep
node_tileprep -->|"prepares tiles"| node_prepare
node_prepare -->|"provides sequences"| node_fasta
node_fasta -->|"clusters sequences"| node_mmseqs
node_mmseqs -->|"groups splits"| node_trainer
node_embed -->|"provides embeddings"| node_trainer
node_prepare -->|"builds shared table"| node_master
node_master -->|"provides tile data"| node_trainer
node_trainer -->|"uses model"| node_cnn
node_master -->|"provides labels"| node_cd43
node_trainer -->|"provides training utilities"| node_cd43
node_master -->|"provides retest data"| node_retest
node_trainer -->|"provides training utilities"| node_retest
node_master -->|"provides measurements"| node_retestseeds
node_master -->|"provides CD43 labels"| node_topk
node_trainer -->|"provides model utilities"| node_topk
node_master -->|"provides measured features"| node_tabular
node_topk -->|"compares saved predictions"| node_tabular
node_master -->|"provides variant labels"| node_variants
node_trainer -->|"provides model utilities"| node_variants
node_master -->|"provides hit labels"| node_classifier
node_classifytrain -->|"runs classifier"| node_classifier
node_cnn -->|"provides model"| node_classifier
node_trainer -->|"provides training utilities"| node_saliency
node_cnn -->|"provides saliency model"| node_saliency
node_master -.->|"supplies analysis data"| node_composition
node_master -.->|"supplies screen measurements"| node_variance
node_pfam -.->|"annotates domains"| node_domains
node_effector -->|"joins screen tiles"| node_master
node_master -->|"supports variants"| node_robustness
node_paper_numbers -.->|"summarizes results"| node_figures

click node_tileprep "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/predata_v2.py"
click node_prepare "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/prepare_data.py"
click node_fasta "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/make_fasta.py"
click node_embed "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/extract_per_residue.py"
click node_master "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/build_master.py"
click node_cnn "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/cnn_model.py"
click node_trainer "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/train_cnn.py"
click node_cd43 "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/cd43_model.py"
click node_retest "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/retest_validate.py"
click node_retestseeds "https://github.com/d7125/repression-domain-transfer-audit/blob/main/run/rev2/retest_seeds.py"
click node_topk "https://github.com/d7125/repression-domain-transfer-audit/blob/main/run/rev2/cd43_topk2.py"
click node_tabular "https://github.com/d7125/repression-domain-transfer-audit/blob/main/run/rev2/cd43_tabular_baseline.py"
click node_variants "https://github.com/d7125/repression-domain-transfer-audit/blob/main/run/rev3/cd43_variants.py"
click node_classifier "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/classify_confirmed.py"
click node_classifytrain "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/train_classify.py"
click node_saliency "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/saliency_vs_motif.py"
click node_composition "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/composition_control.py"
click node_variance "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/icc_variance.py"
click node_domains "https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/cluster_domains.py"
click node_effector "https://github.com/d7125/repression-domain-transfer-audit/tree/main/run/effector2"
click node_robustness "https://github.com/d7125/repression-domain-transfer-audit/tree/main/run/rev3"
click node_figures "https://github.com/d7125/repression-domain-transfer-audit/tree/main/figures"
click node_paper_numbers "https://github.com/d7125/repression-domain-transfer-audit/blob/main/run/rev2/paper_numbers.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_tileprep,node_prepare,node_fasta,node_embed,node_master,node_papers toneBlue
class node_cnn,node_trainer,node_classifytrain,node_pfam toneAmber
class node_cd43,node_retest,node_retestseeds,node_topk,node_tabular,node_variants,node_classifier,node_effector toneMint
class node_saliency,node_composition,node_variance,node_domains,node_robustness,node_figures,node_paper_numbers toneRose
class node_mmseqs toneIndigo
```

## Components

### Data assembly

- [Tile preparation](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/predata_v2.py): `aduy_code/predata_v2.py`
- [Data preparation](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/prepare_data.py): `aduy_code/prepare_data.py`
- [FASTA export](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/make_fasta.py): `aduy_code/make_fasta.py`
- [ESM embeddings](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/extract_per_residue.py): `aduy_code/extract_per_residue.py`
- [Shared tile table](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/build_master.py): `aduy_code/build_master.py`

### Sequence modeling

- [Motif CNN](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/cnn_model.py): `aduy_code/cnn_model.py`
- [Training loop](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/train_cnn.py): `aduy_code/train_cnn.py`
- [Classifier training](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/train_classify.py): `aduy_code/train_classify.py`

### Transfer evaluation

- [CD43 training](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/cd43_model.py): `aduy_code/cd43_model.py`
- [Retest validation](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/retest_validate.py): `aduy_code/retest_validate.py`
- [Retest reruns](https://github.com/d7125/repression-domain-transfer-audit/blob/main/run/rev2/retest_seeds.py): `run/rev2/retest_seeds.py`
- [Top-k transfer](https://github.com/d7125/repression-domain-transfer-audit/blob/main/run/rev2/cd43_topk2.py): `run/rev2/cd43_topk2.py`
- [Tabular baseline](https://github.com/d7125/repression-domain-transfer-audit/blob/main/run/rev2/cd43_tabular_baseline.py): `run/rev2/cd43_tabular_baseline.py`
- [CD43 variants](https://github.com/d7125/repression-domain-transfer-audit/blob/main/run/rev3/cd43_variants.py): `run/rev3/cd43_variants.py`
- [Confirmed-hit classifier](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/classify_confirmed.py): `aduy_code/classify_confirmed.py`
- [CD43 sequence join](https://github.com/d7125/repression-domain-transfer-audit/tree/main/run/effector2): `run/effector2`

### Biological analysis

- [Motif saliency](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/saliency_vs_motif.py): `aduy_code/saliency_vs_motif.py`
- [Composition controls](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/composition_control.py): `aduy_code/composition_control.py`
- [Variance decomposition](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/icc_variance.py): `aduy_code/icc_variance.py`
- [Domain clustering](https://github.com/d7125/repression-domain-transfer-audit/blob/main/aduy_code/cluster_domains.py): `aduy_code/cluster_domains.py`
- [Robustness analyses](https://github.com/d7125/repression-domain-transfer-audit/tree/main/run/rev3): `run/rev3`
- [Paper figures](https://github.com/d7125/repression-domain-transfer-audit/tree/main/figures): `figures`
- [Paper number summary](https://github.com/d7125/repression-domain-transfer-audit/blob/main/run/rev2/paper_numbers.py): `run/rev2/paper_numbers.py`

### Other components

- **Published screens**
- **MMseqs2 clusters**
- **Pfam database**

## Connections

- Published screens → Tile preparation: supplies tables (evidence: `README.md`)
- Tile preparation → Data preparation: prepares tiles (evidence: `README.md`)
- Data preparation → FASTA export: provides sequences (evidence: `README.md`)
- FASTA export → MMseqs2 clusters: clusters sequences (evidence: `README.md`)
- MMseqs2 clusters → Training loop: groups splits (evidence: `README.md`)
- ESM embeddings → Training loop: provides embeddings (evidence: `README.md`)
- Data preparation → Shared tile table: builds shared table (evidence: `README.md`)
- Shared tile table → Training loop: provides tile data (evidence: `README.md`)
- Training loop → Motif CNN: uses model (evidence: `aduy_code/train_cnn.py`)
- Shared tile table → CD43 training: provides labels (evidence: `aduy_code/cd43_model.py`)
- Training loop → CD43 training: provides training utilities (evidence: `aduy_code/cd43_model.py`)
- Shared tile table → Retest validation: provides retest data (evidence: `aduy_code/retest_validate.py`)
- Training loop → Retest validation: provides training utilities (evidence: `aduy_code/retest_validate.py`)
- Shared tile table → Retest reruns: provides measurements (evidence: `run/rev2/retest_seeds.py`)
- Shared tile table → Top-k transfer: provides CD43 labels (evidence: `run/rev2/cd43_topk2.py`)
- Training loop → Top-k transfer: provides model utilities (evidence: `run/rev2/cd43_topk2.py`)
- Shared tile table → Tabular baseline: provides measured features (evidence: `run/rev2/cd43_tabular_baseline.py`)
- Top-k transfer → Tabular baseline: compares saved predictions (evidence: `run/rev2/cd43_tabular_baseline.py`)
- Shared tile table → CD43 variants: provides variant labels (evidence: `run/rev3/cd43_variants.py`)
- Training loop → CD43 variants: provides model utilities (evidence: `run/rev3/cd43_variants.py`)
- Shared tile table → Confirmed-hit classifier: provides hit labels (evidence: `aduy_code/classify_confirmed.py`)
- Classifier training → Confirmed-hit classifier: runs classifier (evidence: `aduy_code/classify_confirmed.py`)
- Motif CNN → Confirmed-hit classifier: provides model (evidence: `aduy_code/classify_confirmed.py`)
- Training loop → Motif saliency: provides training utilities (evidence: `aduy_code/saliency_vs_motif.py`)
- Motif CNN → Motif saliency: provides saliency model (evidence: `aduy_code/saliency_vs_motif.py`)
- Shared tile table → Composition controls: supplies analysis data
- Shared tile table → Variance decomposition: supplies screen measurements
- Pfam database → Domain clustering: annotates domains
- CD43 sequence join → Shared tile table: joins screen tiles (evidence: `README.md`)
- Shared tile table → Robustness analyses: supports variants (evidence: `README.md`)
- Paper number summary → Paper figures: summarizes results
