# syedzainalishah/clippr architecture

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

- Interactive diagram: https://gitdiagram.com/syedzainalishah/clippr
- Repository: https://github.com/syedzainalishah/clippr

## Overview

CLIPPR designs synthetic PPR regulators from target RNA: it predicts the PPR-code recognition sequence, produces a host-codon-optimized coding sequence, plans Golden Gate assembly, checks synthesis constraints and optional host off-targets, then exports orderable files and an audit. A second route designs libraries and reports pooled-order and cross-talk information; the documented reusable-kit route recodes and optimizes deposited modules. The graph reflects README capabilities and the supplied excerpts; detailed wiring in unsampled modules is not assumed.

Main entry points: [`src/clippr/design.py`](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/design.py) (Design One Target), [`src/clippr/library.py`](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/library.py) (Design Library), [`src/clippr/assembly.py`](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/assembly.py) (Assembly Plan), [`src/clippr/recoding.py`](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/recoding.py) (Kit Host Recoding)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_design["Single Design"]
  node_oneshot["Design One Target<br/>[design.py]"]
  node_ppr["PPR Recognition<br/>[ppr.py]"]
  node_codons["Host Codons<br/>[codons.py]"]
  node_recoding["CDS Recoding<br/>[recoding.py]"]
end

subgraph group_evaluation["Design Checks"]
  node_overhangs["Ligation Fidelity<br/>[overhangs.py]"]
  node_constraints["Sequence Constraints<br/>[substrates.py]"]
  node_qc["Synthesis QC<br/>[qc.py]"]
  node_offtarget["Host Screening<br/>[offtarget.py]"]
  node_audit["Decision Audit<br/>[audit.py]"]
end

subgraph group_outputs["Assembly And Export"]
  node_assembly["Assembly Plan<br/>[assembly.py]"]
  node_junctions["Junction Choices<br/>[junctions.py]"]
  node_export["Design Files<br/>[export.py]"]
end

subgraph group_library["Libraries And Kits"]
  node_library["Design Library<br/>[library.py]"]
  node_crosstalk["Cross-Talk Analysis<br/>[crosstalk.py]"]
  node_inventory[("Deposited Kit<br/>[inventories.py]")]
  node_kitrecoding["Kit Host Recoding<br/>[recoding.py]"]
  node_kitsearch["Collection Search<br/>[library_search.py]"]
end

subgraph group_inputs["Host Inputs"]
end

node_user(("Researcher"))
node_kazusa["Kazusa Codon Data"]
node_ncbi["NCBI Genome Data"]

node_user -->|"provides target"| node_oneshot
node_oneshot -->|"derives recognition"| node_ppr
node_oneshot -->|"loads codons"| node_codons
node_oneshot -->|"optimizes coding"| node_recoding
node_oneshot -->|"plans assembly"| node_assembly
node_oneshot -->|"checks constraints"| node_constraints
node_oneshot -->|"checks synthesis"| node_qc
node_oneshot -.->|"screens host"| node_offtarget
node_oneshot -->|"records decisions"| node_audit
node_oneshot -->|"writes files"| node_export
node_assembly -->|"selects junctions"| node_junctions
node_assembly -->|"scores fidelity"| node_overhangs
node_kazusa -.->|"supplies table"| node_codons
node_ncbi -.->|"supplies genome"| node_offtarget
node_user -->|"provides targets"| node_library
node_library -->|"designs members"| node_oneshot
node_library -->|"analyzes set"| node_crosstalk
node_library -->|"writes pooled files"| node_export
node_user -->|"provides kit data"| node_inventory
node_inventory -->|"supplies modules"| node_kitrecoding
node_kitrecoding -->|"uses host table"| node_codons
node_kitrecoding -->|"refines collection"| node_kitsearch

click node_oneshot "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/design.py"
click node_ppr "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/ppr.py"
click node_codons "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/codons.py"
click node_recoding "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/recoding.py"
click node_assembly "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/assembly.py"
click node_junctions "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/junctions.py"
click node_overhangs "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/overhangs.py"
click node_constraints "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/substrates.py"
click node_qc "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/qc.py"
click node_offtarget "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/offtarget.py"
click node_audit "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/audit.py"
click node_export "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/export.py"
click node_library "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/library.py"
click node_crosstalk "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/crosstalk.py"
click node_inventory "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/inventories.py"
click node_kitrecoding "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/recoding.py"
click node_kitsearch "https://github.com/syedzainalishah/clippr/blob/main/src/clippr/library_search.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_oneshot,node_ppr,node_codons,node_recoding toneBlue
class node_overhangs,node_constraints,node_qc,node_offtarget,node_audit toneAmber
class node_assembly,node_junctions,node_export toneMint
class node_library,node_crosstalk,node_inventory,node_kitrecoding,node_kitsearch toneRose
class node_user,node_kazusa,node_ncbi toneIndigo
```

## Components

### Single Design

- [Design One Target](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/design.py): `src/clippr/design.py`
- [PPR Recognition](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/ppr.py): `src/clippr/ppr.py`
- [Host Codons](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/codons.py): `src/clippr/codons.py`
- [CDS Recoding](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/recoding.py): `src/clippr/recoding.py`

### Design Checks

- [Ligation Fidelity](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/overhangs.py): `src/clippr/overhangs.py`
- [Sequence Constraints](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/substrates.py): `src/clippr/substrates.py`
- [Synthesis QC](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/qc.py): `src/clippr/qc.py`
- [Host Screening](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/offtarget.py): `src/clippr/offtarget.py`
- [Decision Audit](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/audit.py): `src/clippr/audit.py`

### Assembly And Export

- [Assembly Plan](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/assembly.py): `src/clippr/assembly.py`
- [Junction Choices](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/junctions.py): `src/clippr/junctions.py`
- [Design Files](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/export.py): `src/clippr/export.py`

### Libraries And Kits

- [Design Library](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/library.py): `src/clippr/library.py`
- [Cross-Talk Analysis](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/crosstalk.py): `src/clippr/crosstalk.py`
- [Deposited Kit](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/inventories.py): `src/clippr/inventories.py`
- [Kit Host Recoding](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/recoding.py): `src/clippr/recoding.py`
- [Collection Search](https://github.com/syedzainalishah/clippr/blob/main/src/clippr/library_search.py): `src/clippr/library_search.py`

### Other components

- **Researcher**
- **Kazusa Codon Data**
- **NCBI Genome Data**

## Connections

- Researcher → Design One Target: provides target
- Design One Target → PPR Recognition: derives recognition
- Design One Target → Host Codons: loads codons
- Design One Target → CDS Recoding: optimizes coding
- Design One Target → Assembly Plan: plans assembly
- Design One Target → Sequence Constraints: checks constraints
- Design One Target → Synthesis QC: checks synthesis
- Design One Target → Host Screening: screens host
- Design One Target → Decision Audit: records decisions
- Design One Target → Design Files: writes files
- Assembly Plan → Junction Choices: selects junctions
- Assembly Plan → Ligation Fidelity: scores fidelity
- Kazusa Codon Data → Host Codons: supplies table
- NCBI Genome Data → Host Screening: supplies genome
- Researcher → Design Library: provides targets
- Design Library → Design One Target: designs members
- Design Library → Cross-Talk Analysis: analyzes set
- Design Library → Design Files: writes pooled files
- Researcher → Deposited Kit: provides kit data
- Deposited Kit → Kit Host Recoding: supplies modules
- Kit Host Recoding → Host Codons: uses host table
- Kit Host Recoding → Collection Search: refines collection
