Causal perturbation — loss, rescue and controls
Plan a gene-function experiment that separates association, loss-of-function and rescue. Include delivery controls and independent readouts; rescue supports specificity but does not eliminate every off-target explanation.
Rendering…
What this template contains
- Source
- 28 lines
Make it your own.
{
"nodes": [
{ "id": "q", "type": "rounded", "label": "Candidate gene and phenotype", "x": 40, "y": 200, "width": 150, "height": 104, "fill": "#ede9fe", "stroke": "#6d28d9" },
{ "id": "wt", "type": "rounded", "label": "Wild-type reference", "x": 215, "y": 40, "width": 150, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "ko", "type": "rounded", "label": "Loss-of-function perturbation", "x": 215, "y": 200, "width": 150, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "res", "type": "rounded", "label": "Rescue construct", "x": 215, "y": 360, "width": 150, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "ctl", "type": "octagon", "label": "Delivery-only control", "x": 215, "y": 520, "width": 150, "height": 104, "fill": "#e0f2fe", "stroke": "#0369a1" },
{ "id": "exp", "type": "card", "label": "Confirm altered expression", "x": 390, "y": 200, "width": 150, "height": 104, "fill": "#ccfbf1", "stroke": "#0f766e" },
{ "id": "phen", "type": "card", "label": "Blinded phenotype assay", "x": 565, "y": 200, "width": 150, "height": 104, "fill": "#ccfbf1", "stroke": "#0f766e" },
{ "id": "viab", "type": "octagon", "label": "Viability / growth check", "x": 565, "y": 520, "width": 150, "height": 104, "fill": "#e0f2fe", "stroke": "#0369a1" },
{ "id": "tri", "type": "rounded", "label": "Compare all four conditions", "x": 740, "y": 200, "width": 150, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "lim", "type": "rounded", "label": "Specificity and model limitations", "x": 915, "y": 200, "width": 150, "height": 104, "fill": "#f1f5f9", "stroke": "#475569" }
],
"edges": [
{ "id": "e0", "source": "q", "target": "wt", "label": "reference" },
{ "id": "e1", "source": "q", "target": "ko", "label": "test necessity" },
{ "id": "e2", "source": "q", "target": "res", "label": "restore function" },
{ "id": "e3", "source": "q", "target": "ctl", "label": "delivery effect" },
{ "id": "e4", "source": "ko", "target": "exp", "label": "verify manipulation" },
{ "id": "e5", "source": "res", "target": "exp", "label": "verify restoration" },
{ "id": "e6", "source": "wt", "target": "phen", "label": "baseline" },
{ "id": "e7", "source": "exp", "target": "phen", "label": "measure" },
{ "id": "e8", "source": "ctl", "target": "phen", "label": "control" },
{ "id": "e9", "source": "phen", "target": "tri", "label": "contrast" },
{ "id": "e10", "source": "viab", "target": "tri", "label": "confounding check", "style": "dashed" },
{ "id": "e11", "source": "tri", "target": "lim", "label": "bounded inference" }
]
}