Biological Problem¶
Dose-dependent control of gene expression¶
Many cellular processes are not simple ON/OFF switches. They depend on how much of a given protein or RNA is present:
- dosage compensation of X-linked genes,
- haploinsufficiency,
- fine-tuned thresholds in pluripotency,
- graded responses to morphogen gradients.
In these settings, changing a transcription factor by 20–30% can be enough to:
- keep cells pluripotent,
- push them into a specific lineage,
- or trigger compensation mechanisms on entire chromosomes.
To understand such systems, you need tools that:
- Tune endogenous gene expression within a physiological range,
- Do so homogeneously across cells (analog, not digital),
- Are reversible and quantitatively characterisable.
CasTuner: analog tuning instead of digital switching¶
CasTuner is built around degron-controlled Cas-based repressors:
- A FKBP12^F36V degron domain that makes the repressor level tunable by dTAG-13.
- Repressors such as hHDAC4–dCas9 (transcriptional) or CasRx (post-transcriptional).
- Endogenous reporters tagged with fluorescent proteins (e.g. Esrrb-P2A-mCherry, STAG2–EGFP, Nanog–P2A-mCherry).
By titrating dTAG-13, you titrate repressor abundance, which in turn titrates target gene expression. Importantly:
- KRAB-based systems tend to behave digitally (bimodal: ON vs OFF).
- hHDAC4–dCas9 and CasRx behave analogically: intermediate repressor levels lead to stable intermediate expression levels at single-cell resolution.
This makes CasTuner an ideal system to:
- map dose–response curves between transcription factors (e.g. NANOG, OCT4) and their targets,
- measure kinetic responses to degrader addition/withdrawal,
- quantify single-cell noise in analog repression,
- and design new constructs with desired dynamic range, speed and noise.
Role of this Python port¶
The original CasTuner analysis was implemented in R. The Python port:
- re-implements the full modelling and analysis logic,
- uses Snakemake for workflow management,
- exposes all steps as transparent, inspectable scripts,
-
and produces a final summary report linking:
- experimental time courses,
- fitted parameters (half-times, Hill K and n, delays, degradation rates),
- ODE simulations,
- noise statistics,
- and a model-driven design space map.
The rest of this documentation walks through how each step of the pipeline answers a concrete biological question.