HCLS AI Factory — Demo Guide¶
Step-by-step walkthrough for demonstrating the HCLS AI Factory on DGX Spark.
License: Apache 2.0 | Author: Adam Jones | Date: February 2026
Demo Overview¶
| Parameter | Value |
|---|---|
| Demo Duration | 15-20 minutes (live walkthrough) |
| Pipeline Mode | demo (pre-configured VCP/FTD) |
| Hardware | NVIDIA DGX Spark (GB10, 128 GB unified) |
| Target Gene | VCP — Frontotemporal Dementia |
| End Result | 100 ranked novel drug candidates |
What the Audience Will See¶
- Raw DNA data (FASTQ) entering the platform
- GPU-accelerated variant calling (Parabricks) completing in minutes
- 11.7 million variants annotated and indexed in a vector database
- Interactive Claude RAG chat identifying VCP as a drug target
- BioNeMo generating 100 novel VCP inhibitors
- Ranked candidates with docking scores and drug-likeness profiles
- PDF report generated automatically
Pre-Demo Setup¶
Step 1: Verify Hardware¶
# Verify DGX Spark GPU
nvidia-smi
# Expected: GB10 GPU, 128 GB unified memory
# Verify ARM64 architecture
uname -m
# Expected: aarch64
Step 2: Set Environment Variables¶
# Copy and edit environment template
cp .env.example .env
# Required variables:
# ANTHROPIC_API_KEY=sk-ant-... (for Claude RAG)
# NGC_API_KEY=nvapi-... (for BioNeMo NIMs)
Step 3: Start All Services¶
# Start services in dependency order
./start-services.sh
# This starts:
# 1. Infrastructure (Milvus, monitoring)
# 2. Stage 1 services (Parabricks, genomics portal)
# 3. Stage 2 services (RAG engine, Streamlit chat)
# 4. Stage 3 services (BioNeMo NIMs, discovery UI)
# 5. Landing page (health monitor)
Step 4: Verify All Services Healthy¶
Open the landing page: http://localhost:8080
All 10 services should show green status:
| Service | Port | Expected Status |
|---|---|---|
| Parabricks Portal | 5000 | GREEN |
| Milvus Vector DB | 19530 | GREEN |
| RAG API | 5001 | GREEN |
| Streamlit Chat | 8501 | GREEN |
| MolMIM NIM | 8001 | GREEN |
| DiffDock NIM | 8002 | GREEN |
| Discovery UI | 8505 | GREEN |
| Grafana | 3000 | GREEN |
| Prometheus | 9099 | GREEN |
| DCGM Exporter | 9400 | GREEN |
Step 5: Pre-stage Demo Data¶
# Ensure reference genome and FASTQ data are available
ls /reference/GRCh38.fa # 3.1 GB reference
ls /data/HG002_R1.fastq.gz # ~100 GB read 1
ls /data/HG002_R2.fastq.gz # ~100 GB read 2
Demo Script¶
Opening (1 minute)¶
Talking points:
- "This is the HCLS AI Factory — a platform that transforms patient DNA into novel drug candidates in under 5 hours."
- "Everything runs on this single DGX Spark — a $3,999 desktop workstation."
- "Three stages: GPU-accelerated genomics, RAG-grounded target identification, and AI-driven drug discovery."
Show: Landing page at http://localhost:8080 — highlight the 10-service health grid.
Stage 1: Genomics (3-4 minutes)¶
Launch Pipeline¶
Show: Genomics portal at http://localhost:5000
Talking points:
- "Patient DNA was sequenced by an Illumina instrument, producing ~200 GB of raw FASTQ data."
- "NVIDIA Parabricks runs BWA-MEM2 alignment on the GPU — 20-45 minutes instead of 12-24 hours on CPU."
- "Google DeepVariant then calls variants with >99% accuracy — 10-35 minutes on GPU."
- "Total Stage 1: under 1 hour. On CPU, this would take 1-2 days."
Key numbers to mention: - ~200 GB FASTQ input (30× whole-genome sequencing) - ~11.7 million variants called - ~3.5 million pass quality filter (QUAL>30) - GRCh38 reference genome (3.1 GB)
Show: Grafana dashboard at http://localhost:3000 — GPU utilization spiking during alignment and variant calling.
Stage 2: RAG/Chat (5-6 minutes)¶
Show Annotation Pipeline¶
Talking points:
- "The 3.5 million high-quality variants are annotated with three databases."
- "ClinVar — 4.1 million clinical variants from NCBI. Tells us if a variant is pathogenic."
- "AlphaMissense — 71 million AI-predicted pathogenicity scores from DeepMind."
- "VEP — Ensembl Variant Effect Predictor for functional consequences."
Annotation funnel to walk through: - 11.7M variants → 3.5M (quality filter) → 35,616 (ClinVar match) → 6,831 (AlphaMissense match) → 2,412 (actionable)
Show Vector Database¶
Talking points:
- "Every variant is embedded using BGE-small-en-v1.5 and indexed in Milvus."
- "3.5 million variant embeddings, each 384 dimensions, searchable in milliseconds."
- "This is what makes natural language queries possible over genomic data."
Show: Attu UI at http://localhost:8000 — show the genomic_evidence collection with 17 fields and 3.5M records.
Interactive Chat Demo¶
Show: Streamlit chat at http://localhost:8501
Type this query:
"What are the most promising drug targets in this patient's genome for neurodegenerative disease?"
Expected response from Claude:
Claude will identify VCP as the primary target with: - rs188935092 (chr9:35065263 G>A) — ClinVar Pathogenic - AlphaMissense score 0.87 (well above 0.564 pathogenic threshold) - HIGH impact missense variant in D2 ATPase domain - Known drug target — CB-5083 reached Phase I clinical trial - Druggability score 0.92
Follow-up query:
"Tell me more about the VCP protein structure and druggable binding sites."
Talking points:
- "Claude is grounded in the actual variant evidence — not hallucinating."
- "The knowledge base covers 201 genes across 13 therapeutic areas."
- "171 of those genes (85%) are classified as druggable targets."
Stage 3: Drug Discovery (4-5 minutes)¶
Show Structure Retrieval¶
Talking points:
- "VCP maps to UniProt P55072. The pipeline queries RCSB PDB for protein structures."
- "Four structures found: 8OOI, 9DIL, 7K56, 5FTK."
- "5FTK scores highest — it's an X-ray structure at 2.3 Å resolution with the CB-5083 inhibitor already bound."
- "Having an inhibitor-bound structure means we know exactly where drugs bind."
Show Molecule Generation¶
Show: Discovery UI at http://localhost:8505
Talking points:
- "BioNeMo MolMIM takes the CB-5083 seed compound and generates 100 novel analogs."
- "It's a masked language model for molecules — masks parts of the SMILES string and regenerates novel chemistry."
- "98 of 100 pass RDKit chemical validity checks."
Show Docking Results¶
Talking points:
- "BioNeMo DiffDock predicts how each molecule binds to the VCP D2 ATPase domain."
- "It uses diffusion modeling — no pre-defined grid needed."
- "34 candidates score below -8.0 kcal/mol — excellent binding affinity."
Show Ranked Candidates¶
Talking points:
- "Final ranking: 30% generation confidence, 40% docking affinity, 30% QED drug-likeness."
- "Top candidate: composite score 0.89 — that's 39% better than the CB-5083 seed."
- "The top candidate also has better QED (0.81 vs 0.62) and better docking (-11.4 vs -8.1)."
- "87 of 98 pass Lipinski's Rule of Five for oral drug-likeness."
Key demo table:
| Metric | CB-5083 (Seed) | Top Candidate | Improvement |
|---|---|---|---|
| Dock Score | -8.1 kcal/mol | -11.4 kcal/mol | +41% |
| QED | 0.62 | 0.81 | +31% |
| MW | 487.2 Da | 423.5 Da | -13% |
| Composite | 0.64 | 0.89 | +39% |
Show PDF Report¶
Talking points:
- "A complete PDF report is generated automatically via ReportLab."
- "It includes provenance: every tool version, every database version, every threshold."
- "This is reproducible science — run the same pipeline, get the same results."
Closing (2 minutes)¶
Talking points:
- "In under 5 hours, on a $3,999 desktop workstation, we went from raw DNA to 100 ranked drug candidates."
- "This collapses a process that traditionally takes weeks to months."
- "The same Nextflow pipelines scale from DGX Spark to DGX SuperPOD for enterprise deployments."
- "Everything is open-source under Apache 2.0."
Scaling story:
| Phase | Hardware | Scale |
|---|---|---|
| Phase 1 | DGX Spark ($3,999) | Proof build — what you just saw |
| Phase 2 | DGX B200 | Department — multiple concurrent patients |
| Phase 3 | DGX SuperPOD | Enterprise — thousands concurrent, federated |
Cross-modal:
- "The Imaging Intelligence Agent can trigger genomic analysis — a Lung-RADS 4B+ finding automatically initiates tumor profiling."
- "Drug candidates feed back into integrated clinical reports."
Troubleshooting¶
Service Not Starting¶
# Check Docker container status
docker compose ps
# Check container logs
docker compose logs <service-name>
# Restart a specific service
docker compose restart <service-name>
BioNeMo NIM Not Ready¶
MolMIM and DiffDock NIMs require NGC API key and may take 2-5 minutes to initialize on first start.
# Check NIM health
curl http://localhost:8001/v1/health/ready
curl http://localhost:8002/v1/health/ready
Milvus Connection Issues¶
# Check Milvus status
curl http://localhost:19530/v1/vector/collections
# Check etcd and MinIO dependencies
docker compose logs milvus-etcd
docker compose logs milvus-minio
GPU Out of Memory¶
Monitor GPU memory during Parabricks execution. DeepVariant peaks at ~60 GB on the 128 GB unified memory system.
Quick Reference¶
| Action | Command / URL |
|---|---|
| Start services | ./start-services.sh |
| Launch demo | python run_pipeline.py --mode demo |
| Landing page | http://localhost:8080 |
| Genomics portal | http://localhost:5000 |
| Chat interface | http://localhost:8501 |
| Milvus UI | http://localhost:8000 |
| Discovery UI | http://localhost:8505 |
| Grafana | http://localhost:3000 |
| GPU monitoring | nvidia-smi or http://localhost:3000 |
HCLS AI Factory — Apache 2.0 | Author: Adam Jones | February 2026