bio-crispr-screens-in-vivo-screens
Designs and analyzes in vivo CRISPR screens in animal tumor models, organoids, and immune-cell adoptive transfers. Covers bottleneck math (250x cells/sgRNA requires ~25M cells implanted; impossible for most syngeneic models, forcing focused libraries), focused library design (Manguso 2017 Nature 547:413 immune screen; Chen 2015 tumor screens), CRISPR-StAR intrinsic-control screening (Uijttewaal 2025 Nat Biotechnol 43:1848), clonal-dynamics-limited detection, tumor-explant DNA recovery, syngeneic vs xenograft vs PDX considerations, and the relationship to downstream MAGeCK / drugZ analysis. Use when designing in vivo CRISPR screens for tumor / immune / metastasis biology, choosing focused vs genome-wide for animal models, addressing bottleneck-induced clonal collapse, picking the syngeneic / xenograft / PDX model, integrating in vivo with in vitro results, or applying CRISPR-StAR for animal experiments.
What this skill does
## Version Compatibility
Reference examples tested with: MAGeCK 0.5.9+, MAGeCK-VISPR 0.5.6+, pandas 2.2+, numpy 1.26+.
Before using code patterns, verify installed versions match. If versions differ:
- CLI: `mageck --version`
- Reference focused libraries: Manguso 2017, Chen 2015, public Addgene aliquots
If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
## In Vivo CRISPR Screen Analysis
**"Design or analyze an in vivo CRISPR screen"** -> Account for the dramatic bottleneck during animal implantation and tumor growth; use focused libraries; recover DNA from tumor explants; analyze with bottleneck-adjusted hit calling.
- CLI: `mageck count` + `mageck test` for standard analysis
- Special handling: bottleneck-adjusted coverage thresholds; per-tissue per-animal replicate structure
## The In Vivo Bottleneck Problem
**Why in vivo screens differ from in vitro:**
| Constraint | In vitro | In vivo |
|------------|----------|---------|
| Cells per condition | 10M-100M (unlimited) | Limited by injection volume (1-5M cells typical) |
| Implant -> early tumor cell count | N/A | 10-100x drop typical (~94% library complexity may survive in CD45+ TILs) |
| Late tumor cell count | N/A | Further 5-10x reduction; final ~3.93 sgRNAs/gene |
| Bottleneck per animal | None | Tens of millions of cells fail to engraft |
| Library coverage achievable | 500-1000x | Often 50-100x effective at endpoint |
| sgRNAs survivable | Full library | 80-94% in early tumors; 60-80% in late tumors |
**Math:** A 70,000-sgRNA library at 500x coverage requires 35M cells in pool. Most syngeneic models can implant 1-5M cells. Result: real coverage is 70x at best; effective coverage at endpoint is even lower after bottleneck.
**Solution:** Use focused libraries (500-3,000 genes; ~3,000-15,000 sgRNAs) to maintain reasonable coverage despite the bottleneck.
## Focused Library Design for In Vivo
**Manguso et al 2017 *Nature* 547:413** established the canonical in vivo CRISPR screen methodology with a focused library:
- 2,368 genes (kinases + cell surface proteins + immune factors)
- 4 sgRNAs per gene (~9,500 sgRNAs total)
- Targeted at immune-evasion biology in syngeneic mouse melanoma
- Identified PTPN2, NLRC5, CD47 as immune-evasion genes
**Standard focused-library principles:**
1. **Gene selection:** Define the biology to be tested (e.g., immune evasion, metastasis); restrict library to genes plausibly involved (kinases, surface proteins, regulators)
2. **Library size:** 500-3,000 genes; 3-6 sgRNAs/gene; total 3,000-18,000 sgRNAs
3. **Coverage achievable:** With 5M cells implanted, 100-300x coverage is achievable
**Public focused libraries:**
- Manguso 2017 immune library (Addgene)
- Joung 2017 pooled screen reference
- DepMap focused panels for specific pathways
- Custom: order from Twist via CRISPick or CRISPOR
## CRISPR-StAR (Temporal Activation; Uijttewaal 2025)
**Uijttewaal et al 2025 *Nat Biotechnol* 43(11):1848** (published online Dec 2024) introduced CRISPR-StAR (Staggered Activation Reporter), which uses inducible Cas9 expression to delay gene editing until after cells have engrafted in the animal.
**How it works:**
1. Library is delivered into cells with inducible (Dox-controlled) Cas9
2. Cells are implanted in animal at MOI 0.3
3. Cells engraft into tumor (no editing yet); library complexity preserved
4. Days 5-7 post-implantation: induce Cas9 with doxycycline
5. Editing begins; screen proceeds for additional weeks
6. Tumor harvest, DNA extraction, sequencing
**Quantified gain:** CRISPR-StAR enables genome-scale in vivo screens (vs focused libraries) by generating intrinsic per-clone controls; outperforms conventional in vivo screens in therapy-resistant mouse melanoma models (Uijttewaal 2025).
## Syngeneic vs Xenograft vs PDX
| Model | Immune system | Use case |
|-------|---------------|----------|
| Syngeneic (e.g., B16 melanoma in C57BL/6) | Intact mouse immunity | Tumor-immune interaction; checkpoint biology |
| Xenograft (human cancer line in NSG) | Absent / impaired | Tumor cell-intrinsic biology; drug response in human cells |
| PDX (patient-derived xenograft) | Absent / impaired | Patient-specific biology; therapy testing |
| Humanized mouse | Reconstituted human immunity | Tumor-immune in human context (limited) |
| Organoid in vivo | None (in vitro) | Tumor cell-intrinsic in 3D structure |
**Decision rule:** For immune-targeting drug screens, use syngeneic. For human-cancer cell-intrinsic biology, use xenograft. For patient-specific drug screens, use PDX. Each requires different cell numbers and bottleneck planning.
## Tumor DNA Extraction and Sequencing
**Goal:** Recover sufficient sgRNA-containing DNA from tumor explants for sequencing.
**Approach:** Dissect tumor; lyse with proteinase K; extract genomic DNA; amplify the sgRNA locus by PCR; sequence on MiSeq / NextSeq / NovaSeq.
```bash
# Typical PCR + sequencing parameters for in vivo screens
# Per-tumor DNA: 0.5-5 mg yield from typical syngeneic tumor
# Per-sample sequencing depth: ≥500 reads/sgRNA at endpoint (lower than in vitro 300+)
# Multiple animals per condition (n=5-10) to account for clonal variation
# mageck count for in vivo
mageck count \
--list-seq library.csv \
--sample-label Plasmid,Animal1,Animal2,Animal3,Animal4,Animal5 \
--fastq Plasmid.fq.gz A1.fq.gz A2.fq.gz A3.fq.gz A4.fq.gz A5.fq.gz \
--norm-method median \
--output-prefix in_vivo_screen
```
## Hit Calling for In Vivo
**Goal:** Identify per-gene fitness effects despite high inter-animal variability.
**Approach:** Each animal is a "replicate" with high variance due to clonal dynamics. Use MAGeCK MLE with animal-as-batch covariate, or run MAGeCK RRA per animal and meta-analyze.
```bash
# Option A: MAGeCK MLE with batch covariate
cat > in_vivo_design.txt <<EOF
Samples baseline tumor animal_2 animal_3 animal_4 animal_5
Plasmid 1 0 0 0 0 0
Animal1 1 1 0 0 0 0
Animal2 1 1 1 0 0 0
Animal3 1 1 0 1 0 0
Animal4 1 1 0 0 1 0
Animal5 1 1 0 0 0 1
EOF
mageck mle \
--count-table in_vivo_screen.count.txt \
--design-matrix in_vivo_design.txt \
--output-prefix in_vivo_mle
```
**Per-animal RRA + meta-analysis:**
```python
import pandas as pd
# Run mageck test on each animal vs plasmid
# Combine with Stouffer's Z method
from scipy.stats import norm
def meta_analyze_animals(per_animal_results):
'''per_animal_results: list of MAGeCK gene_summary.txt per animal.'''
merged = pd.concat([df.assign(animal=i) for i, df in enumerate(per_animal_results)])
grouped = merged.groupby('id')
meta = grouped.apply(lambda g: pd.Series({
'mean_neg_score': g['neg|score'].mean(),
'stouffer_z': norm.ppf(g['neg|p-value']).sum() / (len(g) ** 0.5),
'animals_significant': (g['neg|fdr'] < 0.05).sum(),
'n_animals': len(g)
}))
return meta.sort_values('stouffer_z')
```
## Failure Modes
### Clonal dominance from low complexity
**Trigger:** Implanted cells lack sufficient library complexity; a few clones dominate the tumor.
**Mechanism:** Inter-animal stochasticity in cell engraftment creates founder effects.
**Symptom:** Per-animal hit lists vary dramatically; no genes appear across all animals.
**Fix:** Use focused library to maintain coverage; increase animals per condition (n=10+); use CRISPR-StAR to delay bottleneck.
### Tumor DNA extraction yields no sgRNA reads
**Trigger:** Wrong library or library not amplified well from tumor DNA.
**Mechanism:** PCR primers don't match the sgRNA flanking; or insufficient DNA template.
**Symptom:** Low mapping rate (<10%); feRelated in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.