mrna-design-studio / demo /DEMO_SCRIPT.md
offtargeteffect's picture
Replace clustering with Candidate Analysis tab
2038bdc verified
|
Raw
History Blame Contribute Delete
6.05 kB
# mRNA Design Studio β€” Demo Script (full run-through)
**Live app:** https://offtargeteffect-mrna-design-studio.hf.space
**Login:** username `admin` Β· password `vOAMljsXrzCemLZK4A38`
**Open in its own browser tab** β€” NOT the Hugging Face embedded preview (that loops on login).
---
## 0. Prep (5 min before)
- [ ] Visit the URL to **wake the Space** (free tier sleeps; first load is slow). Log in once.
- [ ] Have the CSV ready to drag in: `demo/demo_sequences_extended.csv` (14 constructs).
- [ ] (Optional) Postgres path β€” keep these handy for the Import Data β†’ PostgreSQL form:
host `ep-blue-flower-abs3fw0x.eu-west-2.aws.neon.tech` Β· port `5432` Β· db `neondb`
Β· user `neondb_owner` Β· pass `npg_oJzU6SfIK7yg` Β· table `mrna_sequences`
- [ ] (Optional) For a no-login live demo: delete the `MRNA_STUDIO_PASSWORD` secret in Space settings.
## The pitch (say this first, ~30s)
"This is a workbench that takes mRNA sequence data from import all the way to a
QC'd, scored, assembled construct β€” in one no-code UI. I'll walk the funnel:
**import β†’ analyze & flag liabilities β†’ compare candidates β†’ score β†’ track runs β†’ assemble.**"
---
## 1. Import Data (~90s)
- **[Click]** the **Import Data** tab.
- **CSV path:** drag `demo_sequences_extended.csv` onto the uploader β†’ it **auto-suggests column mappings** (gene_name, cds, UTRs…) β†’ **Import Records**.
- **OR Postgres path:** choose **PostgreSQL**, paste the connection details above, **Connect** β†’ pick table `mrna_sequences` β†’ **Preview** β†’ **Import Records**.
- **[Say]** "It ingests messy real-world tables β€” component-based *or* monolithic β€” and maps them to a structured mRNA model automatically."
## 2. Worklist β€” analysis + liability/QC (~3 min) β˜… NEW
- **[Click]** the **Worklist** tab β†’ your 14 sequences are listed.
- **[Click]** the **Analysis** dropdown β†’ **Base Analysis** β†’ **Run**.
- **[Show]** the new columns populate: **GC%, CAI, Homopolymers, Restriction Sites**, and the new **QC** (`Pass/Review Β· score`) and **Liabilities** count.
- **[Click] a row** (e.g. `eGFP-hBG-HEK`) β†’ a **Liability / QC breakdown** appears below the table:
- a **QC scorecard** (0–100 score, Pass/Review/Fail verdict, severity counts),
- a ranked list of **flags** with severity, detail, location, and a recommendation
(e.g. internal restriction site, uORF in the 5β€²UTR, elevated uridine).
- **[Say]** "This is the developability/liability overlay β€” every candidate gets a QC
score and specific, actionable flags, right on the candidate list."
## 3. Candidate Analysis (~3 min) β˜… NEW
- **[Click]** the **Candidate Analysis** tab.
- **[Show]** the **Comparison scorecard** β€” every candidate scored 0–100 on the four mRNA
objectives (**Expression, Stability, Immunogenicity, Manufacturability**) + an **Overall**,
ranked, with a β˜… **top-N shortlist** (drag the slider).
- **[Say]** "This is the design trade-off view β€” a candidate can win on expression but lose
on immunogenicity. You rank and shortlist on the criteria that actually matter for mRNA."
- **[Use]** the **Inspect candidate** dropdown β†’ the **Sequence / structure map** shows that
molecule's region bands (5β€²UTR/CDS/3β€²UTR/polyA), GC profile, and markers for restriction
sites / homopolymers / liability motifs β€” i.e. *where* the problems are β€” plus its full
liability scorecard.
- **[Say]** "And drill into any candidate to see exactly where its features and liabilities sit."
## 4. Model Repository (~1 min)
- **[Click]** the **Model Repository** tab β†’ browse models; note each has a **version**.
- **[Show]** the two built-in scorers: **mRNA Stability Scorer** and **RNA Structure Scorer**
(and that you can register a local Python model or a remote API endpoint).
## 5. Score the worklist (~1 min)
- **[Click]** back to **Worklist** β†’ **Analysis** dropdown β†’ pick a model
(e.g. **mRNA Stability Scorer**) β†’ **Run**.
- **[Show]** a score column appears; sort by it to rank candidates. **Export CSV** for the lab.
- (Run a *second* model too β€” e.g. RNA Structure Scorer β€” so you have two runs to compare next.)
## 6. Experiments β€” run history + comparison (~2 min) β˜… NEW
- **[Click]** the **Experiments** tab.
- **[Show]** **Registered models** (with versions) and a **Run history** table β€” every scoring
run is logged with version, N, mean/range of scores, and timestamp.
- **[Use]** the **Compare runs** dropdowns (Run A baseline β†’ Run B) β†’ a summary shows
**mean Ξ”, β–² improved / β–Ό worsened** counts and a per-sequence delta table.
- **[Say]** "This is the lifecycle layer: track every scoring run and compare versions or
scorers to see exactly which candidates moved and by how much."
## 7. Parts Workshop β†’ Assemble β†’ Generate (~2 min)
- **Parts Workshop:** browse reusable parts (5β€²UTR / Kozak / CDS / 3β€²UTR / poly-A) and compose.
- **Assemble Plasmid:** pick the **pUC19-MCS** backbone, run **QC**, export the assembled construct.
- **Generate Sequences:** produce a codon-optimized variant.
- **[Say]** "Close the loop β€” assemble into a plasmid with QC, or generate optimized variants."
---
## If you only have 3 minutes
Import `demo_sequences_extended.csv` β†’ **Worklist** Run base analysis β†’ click a row for the
**liability breakdown** β†’ **Candidate Analysis** scorecard + map β†’ score a model β†’ **Experiments** compare.
That hits the four differentiators (QC liability, candidate comparison, scoring, experiment tracking).
## Likely questions
- *"Where does data live?"* β†’ CSV/Excel upload or a PostgreSQL connection you provide.
- *"Custom models?"* β†’ register a local Python model or a remote API endpoint; runs are tracked.
- *"How is this like/unlike ENPICOM?"* β†’ same no-code, data+AI philosophy; this is the
design/build + light-liability side (mRNA), not NGS-scale repertoire discovery. See
`demo/ENPICOM_gap_analysis.md`.
- *"Is it hosted?"* β†’ runs on Hugging Face Spaces (Docker); also runs locally with `make run`.