Skip to content

Product Specification

Aligned with Olink SDLC for Analytical Tools (D15979).


1. Purpose

The GraphRAG platform is an analytical tool suite that enables Olink researchers and product managers to:

  • Collect and integrate biomedical data from 30+ public and proprietary sources
  • Build a knowledge graph of protein-disease-drug relationships from literature and databases
  • Query the graph using natural language to support panel design, competitive analysis, and biomarker discovery
  • Evaluate extraction quality and compare LLM models for continuous improvement

This specification documents the software architecture, responsibilities, development process, and current status of all components.


2. Scope

The scope covers the full lifecycle of five interconnected analytical tools:

Tool Scope Status
bioingest Data acquisition, transformation, competitor scraping, S3 publishing Production (ECS + CLI)
graphrag_api Knowledge graph construction, query engine, LLM orchestration Production (ECS)
graphrag_react Web frontend for NL graph queries and visualization Production (3 environments)
graphrag_eval Benchmarking extraction accuracy, model comparison, cost analysis Internal tool
00panel Proteomic panel design research using KG + data lake Research / Development

In scope

  • Requirements, design, development, testing, deployment, and maintenance of all five tools
  • Infrastructure provisioning (AWS CDK)
  • Data pipelines from source to queryable graph
  • User-facing documentation (wikis)

Out of scope

  • External customer-facing products (Olink Analyze, NPX Software)
  • QC manufacturing tools
  • Raw instrument data processing

3. Responsibility

3.1 Tool Owner

Responsible for:

  • Defining software architecture and technical vision across all five repos
  • Reviewing requirements from requesters (PMs, researchers)
  • Aligning with Product Manager on features, roadmap, and strategic priorities
  • Aligning with dependent tools (see Section 6 — Dependency Map)
  • Communication with stakeholders about changes and releases
  • Managing third-party library status and licenses
  • Deploying new releases
  • Distributing release notes
  • Ensuring this specification stays current

3.2 Software Developers

Responsible for:

  • Refining tasks from GitHub Issues
  • Writing code following repo conventions (see AGENTS.md per repo)
  • Writing unit tests (pytest / Vitest)
  • Performing code reviews (PR approval required before merge)
  • Contributing to technical documentation and wiki pages

3.3 Product Manager

Involved when:

  • New data sources are prioritized for ingestion
  • New frontend features are scoped
  • Panel design requirements change
  • Competitive analysis scope changes (which platforms to track)

3.4 Requesters

Researchers or PMs who:

  • Request new data sources via Request a Source
  • File feature requests as GitHub Issues
  • Validate that delivered features meet requirements

3.5 QA

Involved for:

  • Production deployments affecting shared infrastructure (Neptune, Aurora)
  • Breaking changes to the API contract
  • Changes to data published to S3 (affects downstream consumers)

4. Description

4.1 System Architecture

flowchart TB
    subgraph Sources["Data Sources"]
        DB[(Public DBs\nUniProt, STRING, Reactome\nClinVar, GTEx, gnomAD...)]
        COMP[Competitor Catalogs\nMSD, Quanterix, Nomic\nRBM, Alamar, Roche, Abbott]
        LIT[Literature\nPubMed, bioRxiv, PMC, PDFs]
        INT[Internal\nOlink panels, LIMS, curated data]
    end

    subgraph Pipeline["bioingest"]
        DL[Download / Scrape]
        CLEAN[Clean and Transform]
        KG[KG Extraction\nLLM entities + relationships]
        PUB[Publish to S3 + Graph]
    end

    subgraph Backend["graphrag_api"]
        QUERY[NL Query Engine]
        INGEST[Ingestion Pipeline]
    end

    subgraph Storage["Storage Layer"]
        NEP[(Neptune\nKnowledge Graph)]
        AUR[(Aurora pgvector\nEmbeddings)]
        S3[(S3 Data Lake\nParquet + Athena)]
    end

    subgraph Frontend["User-Facing"]
        REACT[graphrag_react\nWeb UI]
        WIKI[Wikis\nData Explorer]
    end

    subgraph Support["Support Tools"]
        EVAL[graphrag_eval\nBenchmarks]
        PANEL[00panel\nPanel Design]
    end

    DB & COMP & LIT & INT --> DL
    DL --> CLEAN --> PUB
    DL --> KG --> PUB
    PUB --> NEP & AUR & S3

    QUERY --> NEP & AUR
    INGEST --> NEP & AUR
    REACT -->|REST / WebSocket| QUERY
    S3 --> WIKI
    S3 --> PANEL
    NEP --> PANEL
    EVAL -->|test harness| QUERY

4.2 Component Details

bioingest

Attribute Value
Language Python 3.10+
Package manager uv
Entry point bioingest CLI, bioingest.tui interactive menu
Deployment ECS Fargate worker (prod), local CLI (dev)
Infrastructure CDK TypeScript (infra/)
Tests 330+ (pytest)
Repository Olink-Proteomics/bioingest
Wiki bioingest.mlapps.olink.systems

Key capabilities: bulk download (28 sources), competitor scraping (10 platforms), KG pipeline (fetch/extract/chunk/resolve/write/embed), S3 publish + Athena, platform overlap analysis, interactive TUI.

graphrag_api

Attribute Value
Language Python 3.12
Framework LangGraph + LangChain
LLM AWS Bedrock (Claude, Nova), Ollama (local)
Graph DB Neo4j (dev) / Neptune (prod)
Vector store Aurora pgvector
Deployment ECS Fargate
Version 0.2.0
Repository Olink-Proteomics/graphrag_api
Wiki api.mlapps.olink.systems

Key capabilities: semantic dynamic context graph, NL queries, multi-hop reasoning, provenance chains, context-aware routing, streaming WebSocket responses.

graphrag_react

Attribute Value
Language TypeScript
Framework React 18 + TanStack Router + TanStack Query
Visualization Graphistry, D3, Monaco editor
Deployment ECS / CloudFront
Version 0.1.0
Repository Olink-Proteomics/graphrag_react
Environment URL
Production graphrag-react.mlapps.olink.systems
Alpha graphrag-alpha-react.mlapps.olink.systems
Beta graphrag-beta-react.mlapps.olink.systems

Key capabilities: conversational KG queries, interactive graph viz, in-browser Python (Pyodide), admin panel, pipeline monitoring.

graphrag_eval

Attribute Value
Language Python 3.12
Deployment Local / CI
Repository Olink-Proteomics/graphrag_eval
Wiki eval.mlapps.olink.systems

Key capabilities: entity/relationship extraction F1, model comparison, scaling projections, cost analysis, VLM benchmark.

00panel

Attribute Value
Language Python 3.11+
Deployment Local / Wiki
Repository Olink-Proteomics/00panel
Wiki panel.mlapps.olink.systems

Key capabilities: panel design optimization, protein combination scoring, disease-association analysis. Sources data from S3 data lake (bioingest) and knowledge graph (graphrag_api) for evidence-based panel construction.


5. Development Process

5.1 Design Input (Requirements)

  • Feature requests filed as GitHub Issues with labels (feature, data-source, bug)
  • Large features documented in issue body with acceptance criteria
  • Tool owner reviews and prioritizes with PM input
  • Dependency chart (Section 6) consulted before starting work

5.2 Source Code Management

  • All repos under Olink-Proteomics GitHub org (private)
  • Peer review required (PR approval) before merge to main
  • Development on feature branches, separated from production
  • Git LFS for large data files (bioingest data/bulk/)
  • Coding standards enforced by ruff (Python) and eslint (TypeScript)

5.3 Verification and Testing

Repo Framework Strategy
bioingest pytest Unit + integration, 330+ tests
graphrag_api pytest + pytest-asyncio Unit + integration + E2E
graphrag_react Vitest Component + integration
graphrag_eval pytest Benchmark harness
00panel pytest Analysis validation
  • Tests stored in each repo alongside code
  • CI runs tests on PR (GitHub Actions)
  • Reference test data committed to repos

5.4 Release and Deployment

Versioning: Major.Minor.Patch per D15979:

  • Major: Breaking changes (API contract, schema migration)
  • Minor: New features, new data sources
  • Patch: Bug fixes, documentation

Deployment channels:

Component Method Trigger
bioingest worker CDK deploy → ECS Manual (tool owner)
graphrag_api Docker → ECS Manual
graphrag_react Docker → ECS/CloudFront Manual (3 envs)
Wikis (all) GitHub Actions → Pages Auto on push to docs/
Data lake (S3) bioingest publish Manual / scheduled

Release communication: GitHub Releases with changelog. Breaking changes communicated to all dependent repo owners before deploy.

5.5 Maintenance

  • Deficiencies handled per D13048
  • Dependency updates reviewed monthly
  • Feature requests tracked in GitHub Issues
  • Wiki documentation updated when behavior changes (automated via kiro hook)

6. Dependency Map

flowchart LR
    BI[bioingest] -->|graph data| API[graphrag_api]
    BI -->|S3 parquet| PANEL[00panel]
    API -->|query API| REACT[graphrag_react]
    API -->|test harness| EVAL[graphrag_eval]
    API -->|KG queries| PANEL
    REACT -->|user feedback| API

Change impact matrix:

If you change... Also check/update...
bioingest graph schema graphrag_api query templates, graphrag_eval test fixtures
bioingest S3 table schema 00panel analysis scripts, wiki data explorer
graphrag_api endpoints graphrag_react API calls, graphrag_eval harness
graphrag_api ingestion bioingest bridge module
Neptune/Aurora schema All repos using graph queries

7. Infrastructure

AWS (eu-north-1, unless noted)

Resource Service Account Purpose
Neptune cluster Graph DB prod (357836458011) Knowledge graph storage
Aurora PostgreSQL pgvector prod Embedding similarity search
ECS bioingest-workers Fargate prod Data ingestion workers
S3 bioingest-datalake-* Object storage dev (002356212513) Parquet data lake
Glue bioingest Catalog dev 66 Athena tables
Bedrock LLM prod (us-east-1) Claude, Nova inference
GitHub Pages Static hosting All 4 wikis

DNS (Route53, mlapps.olink.systems)

Subdomain Target
bioingest.mlapps.olink.systems Wiki (GitHub Pages)
api.mlapps.olink.systems Wiki (GitHub Pages)
eval.mlapps.olink.systems Wiki (GitHub Pages)
panel.mlapps.olink.systems Wiki (GitHub Pages)
graphrag-react.mlapps.olink.systems Frontend (Production)
graphrag-alpha-react.mlapps.olink.systems Frontend (Alpha)
graphrag-beta-react.mlapps.olink.systems Frontend (Beta)

8. References

Document Title
D15979 SDLC for Analytical Tools (this spec follows)
D3858 User Requirement Specification template
D5517 Development and Verification Plan template
D15834 Dependency Chart (Software and Analytical Tools)
D13048 Software Deficiency Management Process
D0108 Change Request Procedure
D3156 IT Access Management Policy