Gene-Centric AMD Analysis
Redesign of theOphtha Agent Streamlit appusing CS CoE Frontend components, Genentech design tokens, and Gene Sans typography.
What This App Does
The Ophtha Agent is a gene-centric analysis tool for Age-related Macular Degeneration (AMD) research. It integrates internal Roche/Genentech multi-omic datasets with public databases to produce comprehensive gene reports. The original Streamlit app runs a LangGraph agentic workflow that coordinates domain-expert LLM agents across 8+ data modalities.
Internal Data
eQTL, pQTL, GWAS/MAGMA, Bulk RNA-seq, MiloDE single-cell, Proteomics, Pathway enrichment (ORA, MAGMA, WikiPathways), and ATAC-seq chromatin accessibility from NGS and SUNY studies.
Public Data
Open Targets (context, expression, drugs, literature, safety, tractability, pathways, mouse phenotypes), HPA single-cell, Cortellis, ClinicalTrials.gov, Genebass (UK Biobank burden/SKAT/SKAT-O), GWASDB, and RoMine literature.
Visualizations
Volcano plots, expression heatmaps, pathway networks, and links to the Gene Dossier visualization page. Reports exportable as PDF or Markdown.
Migration from Streamlit
This showcase demonstrates how the Streamlit UI maps to CS CoE components:
| Streamlit Element | CS CoE Component | Notes |
|---|---|---|
st.tabs() | @cs-coe/tabs | Three tabs: Internal, Public, Visualizations |
st.text_input() | @cs-coe/input | Gene search with autocomplete dropdown |
st.selectbox() | @cs-coe/select | Study filter (NGS, SUNY, both) |
st.markdown(table) | @cs-coe/table | Expandable data tables with fold/expand |
st.sidebar | Custom sidebar nav | Table of contents with scroll-to navigation |
st.download_button() | @cs-coe/button | PDF and Markdown export |
st.spinner() | @cs-coe/skeleton | Loading state with skeleton cards |
st.progress() | @cs-coe/progress | Evidence strength bars |
| Custom CSS badges | @cs-coe/badge | Evidence strength indicators |
Design Decisions
Typography
Replaced Cormorant Garamond and Dancing Script with Gene Sans. The original app used decorative serif fonts for the title — the redesign uses the standard Genentech type scale (text-2xl font-bold for page title, text-lg font-semibold for sections).
Color Tokens
Replaced hardcoded #3498db / #2980b9 gradients withbg-primary and text-primary semantic tokens. Evidence strength badges use variant="default" (strong),"secondary" (moderate), "outline" (weak/none), and "destructive" (error).
Layout
Streamlit's single-column layout with sidebar is preserved as aflex gap-6 layout with a sticky sidebar nav on desktop and mobile-responsive export buttons. The sidebar hides below lg.
Tables
The original app uses CSS checkbox hack for expandable pipe-markdown tables. The redesign uses @cs-coe/table with a React state toggle, showing 4 rows by default with a "Show N more rows" button.
Live Demo
Ophtha Agent
Gene-Centric AMD Analysis — Internal & Public Data Integration
Enter a gene symbol to begin
Search for any gene to view internal and public AMD evidence
Data sources: eQTL, pQTL, GWAS/MAGMA, Bulk RNA-seq, MiloDE, Proteomics, Pathways (ORA, MAGMA, WikiPathways), ATAC-seq (NGS and SUNY studies)
Public: Open Targets, HPA, Cortellis, ClinicalTrials.gov, Genebass (UK Biobank)
Source
Original Repository
code.roche.com/omni-bioinfo/projects/ocular/amd/agentic_workflow_amd— gene_centric_streamlit/ directory
Key Files
- •
run_workflow_streamlit_app.py— Main Streamlit app (1022 lines) - •
static/styles.css— Custom CSS (429 lines) - •
utils/markdown_helpers.py— Table processing and anchor generation - •
gene_centric_beta/workflow/main_workflow.py— LangGraph agentic workflow - •
public_data_workflow/integration.py— Public data evidence collection
Architecture
┌─────────────────────────────────────────────────┐
│ Streamlit UI (run_workflow_streamlit_app.py) │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ Internal │ │ Public │ │ Visualizations │ │
│ │ Data │ │ Data │ │ │ │
│ └────┬─────┘ └────┬─────┘ └──────────────────┘ │
│ │ │ │
│ ┌────▼─────────────▼────────────────────────┐ │
│ │ LangGraph Agentic Workflow │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │ │
│ │ │ eQTL │ │ pQTL │ │ GWAS/MAGMA │ │ │
│ │ │ Expert │ │ Expert │ │ Expert │ │ │
│ │ └─────────┘ └─────────┘ └─────────────┘ │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │ │
│ │ │ RNA-seq │ │ MiloDE │ │ Proteomics │ │ │
│ │ │ Expert │ │ Expert │ │ Expert │ │ │
│ │ └─────────┘ └─────────┘ └─────────────┘ │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │ │
│ │ │Pathways │ │ ATAC-seq│ │ Report │ │ │
│ │ │ Expert │ │ Expert │ │ Generator │ │ │
│ │ └─────────┘ └─────────┘ └─────────────┘ │ │
│ └───────────────────────────────────────────┘ │
│ │ │ │
│ ┌────▼─────┐ ┌────▼──────────────────────┐ │
│ │ Internal │ │ Public Data Workflow │ │
│ │ Data │ │ Open Targets, HPA, │ │
│ │ (Parquet │ │ Cortellis, ClinicalTrials, │ │
│ │ files) │ │ Genebass, GWASDB, RoMine │ │
│ └──────────┘ └───────────────────────────┘ │
└─────────────────────────────────────────────────┘