Scientific claims should arrive with receipts.
GaiaLab produces research-use hypothesis records, not conclusions. A useful record makes it possible to ask what was available, what was declared, what changed, and what happened afterward.
Before interpretation
Preserve the input panel and context, recorded source availability, analysis identifiers, and the filters or scoring choices relevant to the output.
Boundary and change record
Make material exclusions, changes, and their rationale visible where recorded. For pre-reveal GaiaWorld benchmarks, this includes the declared protocol, freeze, scoring lock, and prediction commitment artifacts.
Afterward
Keep outputs, cited evidence, limitations, and relevant verification artifacts available for inspection and critique. A receipt makes a claim easier to investigate; it does not make the claim true.
Analysis Pipeline
Every GaiaLab analysis runs through five sequential stages. Stages 1 and 2 are fully parallel across all sources. Stage 5 is a Pro-tier conditional layer (also gated on panel size and feature flags) and does not run on every analysis.
Gene normalisation
Input gene symbols are normalised to HGNC approved symbols. Aliases (e.g. HER2 → ERBB2) are resolved before any database query. Invalid symbols are flagged and excluded from scoring but included in the report.
Parallel data fetch — 76+ databases1
All database queries run simultaneously via Promise.allSettled(). No source blocks another. A timeout or API error in one source does not prevent results from the remaining sources. Each client returns partial results on failure rather than throwing.
Channel aggregation
Raw API responses are aggregated into 16 evidence channels by domain-specific aggregators. Each aggregator applies source-specific normalisation, deduplication, and confidence flags before passing data downstream.
Scoring and classification
Drug candidates are scored 0–100 across six weighted factors. Pathways are ranked by FDR-corrected enrichment p-value. Hypotheses are filtered by evidence quality and cross-deduplicated against input gene tokens.
Optional structured AI synthesis (deployment-dependent)
A configurable AI synthesis layer may organize scored outputs into hypotheses, critiques, evidence summaries, risk considerations, and a synthesis for human review. Role count, provider routing, and availability are deployment-dependent; this layer may be reduced to a single-provider path or omitted. It is not an independent review process or a validation finding.
Data Sources
76+ integrated databases (~72–76 active per run, API-key dependent) across seven domains.1 All clients use Promise.allSettled() — a failure in any source does not block results from others.
Gene annotation & variation
| Source | Data type | Auth |
|---|---|---|
| HGNC | Approved symbol, aliases, gene family | No |
| NCBI Gene | Entrez ID, summary, RefSeq | Optional (rate limit) |
| Ensembl | Stable ID, biotype, cross-references | No |
| UniProt | Protein function, variants, subcellular location, PTMs | No |
| ClinVar | Pathogenic/benign variant classifications | No |
| ClinGen | Gene-disease validity, haploinsufficiency | No |
| gnomAD (variant) | Population allele frequencies, constraint metrics | No |
| gnomAD (constraint) | pLI, LOEUF, missense Z-score | No |
| gnomAD (ancestry) | Ancestry-stratified allele counts | No |
| GWAS Catalog | Trait associations, lead SNPs, p-values | No |
| OMIM | Mendelian disease associations | No |
| Monarch Initiative | Cross-species phenotype associations | No |
| VEP (Ensembl) | Variant effect predictions | No |
| AGR (Alliance) | Cross-model-organism gene data | No |
Pathway & functional annotation
| Source | Data type | Auth |
|---|---|---|
| KEGG | Pathway membership, module associations | No |
| Reactome | Hierarchical pathway enrichment | No |
| Gene Ontology | BP, MF, CC terms | No |
| Enrichr | Gene set enrichment across 200+ libraries | No |
| MSigDB | Hallmark, C2, C6 gene sets | No |
| PathwayCommons | Merged pathway graph from multiple curated pathway databases | No |
| JASPAR | Transcription factor binding motifs | No |
| ChEA3 | Transcription factor enrichment | No |
Interaction & network
| Source | Data type | Auth |
|---|---|---|
| STRING | Functional association network scores | No |
| STRING-DB partners | Physical interaction partners | No |
| BioGRID | PPIs, genetic interactions | Optional |
| IntAct | Curated molecular interactions, MI scores | No |
| ComplexPortal | Macromolecular complex membership | No |
| SynLethDB | Synthetic lethality pairs | No |
Literature
| Source | Data type | Auth |
|---|---|---|
| PubMed / NCBI Entrez | Citation metadata, MeSH terms, abstracts | Optional (3→10 req/s) |
| PMC Full-Text | JATS XML → quantitative extraction (IC50, HR, OR, n=, fold-change) | No |
| Europe PMC | Open-access full text, preprints | No |
| OpenAlex | Works, citations, author disambiguation | No |
| Semantic Scholar | Citation graph, influential papers | Optional |
| bioRxiv | Preprint titles and abstracts | No |
| Preprint monitor | New preprints matching panel genes (internal) | — |
Drug, clinical & regulatory
| Source | Data type | Auth |
|---|---|---|
| ChEMBL | IC50, EC50, Ki, pChEMBL values, mechanism of action | No |
| ClinicalTrials.gov v2 | Active trials, phase, intervention, NCT IDs | No |
| OpenFDA | Adverse event counts, drug approval status | No |
| OncoKB | Oncology actionability tiers, variant-drug mappings | No |
| CIViC | Clinical interpretations of variants | No |
| DGIdb | Drug-gene interaction types and sources | No |
| DrugCentral | Drug targets, MOA, FDA labels | No |
| TTD | Therapeutic target database | No |
| PharmGKB | Pharmacogenomics annotations | No |
| PubChem (compound) | Structure, SMILES, InChI | No |
| PubChem (bioassay) | Bioactivity assay results | No |
| RxNorm DDI | Drug-drug interaction severity | No |
| OpenTargets | Disease-gene association scores (genetic, somatic, literature) | No |
| OpenTargets Genetics | QTL, GWAS colocalization, fine-mapping | No |
| Drug resistance intelligence | Known resistance mechanisms per drug class | — |
| FDA Regulatory | Label text, boxed warnings, indication | No |
| Patent status | Patent expiry year, exclusivity status | No |
| LINCS | Perturbation gene expression signatures (L1000) | No |
| DisGeNET | Gene-disease associations with evidence score | API key |
| DrugBank | Drug targets, pharmacokinetics, interactions | API key |
Omics & cancer
| Source | Data type | Auth |
|---|---|---|
| TCGA | Somatic mutation frequency, expression | No |
| TCGA survival | Survival stratification by mutation/expression | No |
| cBioPortal | Alteration frequency, mutation-aware survival stratification across TCGA cohorts | No |
| COSMIC Signatures | Mutational signature contributions | No |
| DepMap | Cancer dependency scores (CRISPR screen) | No |
| DepMap co-essentiality | Co-essential gene pairs across cell lines | No |
| GDSC | Drug sensitivity (IC50) across cancer cell lines | No |
| GTEx (expression) | Tissue-specific RNA expression | No |
| GTEx (eQTL) | Expression quantitative trait loci | No |
| HPA | Protein and RNA atlas, subcellular localisation | No |
| CPTAC | Proteogenomic abundance, phospho-state | No |
| ProteomicsDB | Human proteome expression | No |
| PRIDE | Mass spectrometry proteomics datasets | No |
| CELLxGENE | Single-cell RNA-seq cell-state annotations | No |
| HMDB | Metabolite-gene associations | No |
| MetaboLights | Metabolomics studies | No |
| Orphanet | Rare disease gene associations | No |
Structural
| Source | Data type | Auth |
|---|---|---|
| AlphaFold (EBI) | pLDDT per-residue confidence → druggability score | No |
| PDB | Experimental 3D structures, resolution | No |
/api/health.FDR-Corrected Pathway Enrichment
GaiaLab uses a hypergeometric test for gene set enrichment, then applies Benjamini-Hochberg (BH) multiple testing correction across all tested pathways.
Hypergeometric test
BH correction
Raw p-values across all pathways are ranked ascending. Each pathway receives an adjusted q-value:
Pathways are labelled by significance tier:
- high — q ≤ 0.01
- moderate — q ≤ 0.05
- nominal — q ≤ 0.10
- ns — q > 0.10 (not shown by default)
Only pathways at q ≤ 0.05 are included in the executive brief and drug scoring. Pathways at q ≤ 0.10 are shown in the full pathway panel with a "nominal" label. This stricter threshold (tightened from q < 0.20) limits the expected false-discovery rate to 1-in-10 rather than 1-in-5.
Citation Verification & Hallucination Detection
GaiaLab runs a three-stage evidence-integrity pipeline on every analysis to check whether cited records are retrievable, estimate whether a claim is supported by cited abstract text, and surface potential weaknesses. These checks reduce—but do not eliminate—citation, relevance, or interpretation errors.
Stage 0 — PMID existence check
After every analysis completes, all PMIDs produced by the AI synthesis layer are batch-queried against the NCBI PubMed E-utilities esummary API in groups of 10. This check runs asynchronously — it does not add latency to analysis delivery. Any PMID not returned by PubMed's index is flagged for review as unresolved or potentially invalid and logged to data/quality/invalid-pmids.json. The unresolved-PMID rate is patched into the snapshot and reported on the Trust dashboard for runs from May 2026 forward. Historical runs prior to this date were not checked retroactively and show "Not checked" on the Trust dashboard.
Stage 1 — NLI entailment check
Claims from the analysis are assessed against their cited abstract text using a zero-shot Natural Language Inference model — currently facebook/bart-large-mnli. The entailment score threshold is 0.45 — claims that score below this are flagged as weakly supported. Context window: 1,500 characters per passage, 200 characters per claim. The live model, threshold, and availability are published at /api/nli/status so this section can't silently drift from what's actually running. This is an automated screening signal, not a substitute for expert interpretation of the full paper.
Stage 2 — ALCE-style cite metrics
Inspired by the ALCE attribution benchmark, GaiaLab computes cite-precision, cite-recall, and cite-F1 for each analysis:
These metrics are shown on the Trust page. A cite-F1 ≥ 0.6 is used as a heuristic grounding indicator, not as a validation finding.
AI synthesis citation floor
Any insight produced by an enabled AI synthesis component that has zero verified PMIDs is annotated with citationFloor: false and its evidence quality is capped at "moderate". A "⚠ No PMIDs" badge is shown on the insight card in the analysis output.
Relation-Aware Drug Scoring
Each drug candidate is scored 0–100 across six weighted factors, then classified into a tier and assigned a floor/cap based on regulatory status.
Scoring formula
Tier classification
Tier I
Score ≥ 70. Strong evidence. On-panel target, clinical data, context match. Shown prominently in all views.
Tier II
Score 50–69. Moderate evidence. Includes all FDA-approved drugs that pass context filter. Up to 3 shown by default.
Tier III
Score < 50. Exploratory. Collapsed behind toggle. Requires explicit expansion by the user.
Filters applied before scoring
- Context relevance ≥ 40 required for off-panel drugs (≥ 30 for on-panel)
- Clinical evidence score ≥ 15 required for off-panel drugs
- Synthetic lethality only computed in oncology disease contexts
- Duplicate canonical drugs resolved by highest
repurposingScore
Convergence Scoring
A drug scoring highly on one factor but appearing in no other source is less trustworthy than a drug supported by multiple independent evidence types. Convergence scoring counts how many of six orthogonal source families each drug passes:
| Family | Passes when |
|---|---|
pubmed | ≥ 1 PMID linked to the drug–disease combination |
clinicaltrials | ≥ 1 trial record in ClinicalTrials.gov for this drug |
fda | FDA approved, phase ≥ 3, or phase label matches "approved / phase 3 / phase 4" |
chembl | Confirmed binding targets or bioactivity records exist in ChEMBL |
structural | AlphaFold pLDDT ≥ 50, PDB structures present, or hasAlphaFold=true |
network | ≥ 3 interaction neighbours in STRING/BioGRID, or hasNetworkProximity=true |
A convergence score of 4/6 or higher is displayed as a "convergent" badge on the drug card. This badge means the drug's ranking is supported by multiple orthogonal evidence lines, not just a single strong signal. The six families are intentionally independent — structural data cannot influence the PubMed or clinical trial checks.
Convergence scoring is a display and communication tool, not a re-ranking signal. It does not alter the six-factor score. Its purpose is to help researchers quickly identify candidates with broad multi-source support.
Structured AI Synthesis
When enabled, GaiaLab can use configurable AI roles to organize an analysis after data aggregation. Each role receives structured database outputs rather than raw database dumps. The role count, provider assignment, and availability are deployment-dependent; this component is a synthesis aid for human review, not independent validation.
Configured role types
A deployment may use roles that organize a hypothesis, critique, evidence summary, risk considerations, or synthesis. These labels describe an orchestration pattern, not separate scientific reviewers or independently validated conclusions.
Provider and role configuration
Provider routing and role configuration are deployment-dependent. A synthesis can be reduced to a single-provider path or omitted when providers are unavailable, feature flags disable it, or an analysis runs in a constrained mode. Different configured roles do not constitute independent scientific reviewers or independent validation.
Confidence Tiers
Claim-level confidence is capped by citation coverage. AI-generated language cannot assert high confidence when the citation record does not support it.
| Confidence | Requirement | Display |
|---|---|---|
| High | On-panel target AND clinical evidence score ≥ 15 AND ≥ 6 PubMed citations | Green border, "strong evidence" label |
| Medium | 2–5 citations OR off-panel with clinical data | Blue border, "moderate evidence" label |
| Low | < 2 citations OR hypothesis only | Grey border, "exploratory" label |
Every cited claim includes a PMID. Claims without PMIDs are labelled "derived" or "hypothetical" and rendered with reduced visual prominence. This is enforced by the PMID evidence ledger, not by AI instruction — AI cannot override it.
MCP Server Interface
GaiaLab exposes a Model Context Protocol (MCP) server at POST /mcp, allowing AI assistants — including Claude Desktop and custom agents built with the Anthropic Agent SDK — to call the full analysis pipeline as a tool.
Tool: gaialab_generate_insights
gaialab_generate_insights is one of 9 MCP tools exposed by the server; the full list is documented at /developer.
Each POST creates a fresh server transport instance. Responses carry Access-Control-Allow-Origin: *. The MCP interface is the primary integration surface for embedding GaiaLab into research workflow automation.
Researcher and Enterprise tier API keys bypass the IP-based daily quota gate. Free-tier users accessing the MCP endpoint are subject to the same daily limit as the web interface.
Prospective Prediction Tracking
Every drug repurposing prediction made by GaiaLab is recorded at analysis time with a confidence score, the disease context, and the date. The prediction tracker periodically polls ClinicalTrials.gov v2 to check whether a trial for that drug–disease pair has completed, and if so, what outcome was reported.
Outcome labelling
| Outcome | Score |
|---|---|
| Trial completed with positive result | 1.0 |
| Trial completed with mixed result | 0.5 |
| Trial completed, neutral / inconclusive | 0.25 |
| Trial terminated, no trial found, or negative | 0.0 |
Retrospective AUROC benchmark (live — see /calibration for the current value, N and CI)
Full calibration curve: GET /api/predictions/calibration. Individual predictions: GET /api/predictions. Both endpoints are public and unauthenticated.
Proof-of-anteriority (tamper-evident timestamps)
A prediction's lead-time over a trial is only meaningful when the commitment has an independently verified time bound. Every prediction's full record — gene panel, drug, disease, mechanism, confidence, evidence sources, cited PMIDs, the ClinicalTrials.gov baseline (trials already registered for the pair at prediction time), model/code version and timestamp — is hashed into a Merkle leaf using SHA-256 with RFC 6962-style domain separation and duplicate-last Merkle layering at record time, and the exact record is published (/api/attestation/:leafHash) so the hash can be recomputed independently. (Predictions recorded before this upgrade commit drug, disease and timestamp only.) The leaves are periodically batched into a tree whose single root is submitted to Bitcoin via OpenTimestamps and mirrored in a citable Zenodo record (the genesis root: DOI 10.5281/zenodo.21578642). Bitcoin confirmation is not treated as verified until the OpenTimestamps receipt is cryptographically checked against the exact stored Merkle root and yields a Bitcoin block height and block time.
Verify any prediction with no GaiaLab code: GET /api/attestation/:leafHash returns the Merkle inclusion proof, OpenTimestamps/Bitcoin verification metadata when available, the Zenodo mirror, and a step-by-step recipe. Human-readable explainer + live ledger + a self-serve verify widget: /verify.
predictionDate / recordedAt value; it commits that value so later modification is detectable. This proves timing of the committed bytes only, not correctness or efficacy. Predictions recorded before the anchor ledger existed read "pre-anchor"; predictions whose verified block time is after trial registration claim no foresight. Zenodo is a citable mirror and is not used as an independent timing proof unless an externally sourced publication timestamp is separately verified.Immutable Analysis IDs
Every analysis run generates a permanent ID of the form gl-{timestamp}-{8-char-hash}. This ID is:
- Included in API responses and the analysis UI
- Linkable as a permanent URL:
https://gailabai.com/analysis/{id} - Safe to cite in paper supplementary materials
- Stored as an immutable JSON snapshot in
data/snapshots/
Snapshot files record the exact gene list, disease context, all database responses, all scored outputs, and the AI synthesis. A snapshot can be replayed to verify that the same inputs produce equivalent outputs under the same database state.
Prediction accuracy
GaiaLab prospectively records drug repurposing predictions and cross-references them against ClinicalTrials.gov outcomes. Live calibration metrics are published at /api/predictions/calibration — read the Brier and ECE together (a low Brier under high ECE reflects class imbalance, not calibrated confidence):
A Brier Score below 0.25 is a comparative result against this stated no-skill reference. It does not by itself establish calibration, prospective performance, clinical validity, or the utility of individual recommendations; interpret it with ECE, sample size, class balance, endpoint construction, and uncertainty intervals. Full calibration curve: GET /api/predictions/calibration.
Known Limitations
Database coverage gaps
Three key-gated sources (OncoKB, DisGeNET, DrugBank) are inactive without paid credentials, so current live coverage is 72 of 75 integrated sources. These gaps are disclosed in the analysis output and do not produce false confidence — missing sources are simply absent, not filled with hallucinated data. The live active/total is published at /api/health.
AI synthesis is probabilistic
The six AI agents reason from structured data but can still produce plausible-sounding errors. All AI output is gated by the PMID evidence ledger — claims without citation support are demoted. Users should treat the executive brief as a hypothesis generator, not a clinical decision tool.
Small panels (< 3 genes)
Pathway enrichment and drug scoring are less reliable with fewer than 3 genes. The hypergeometric test loses power and synthetic lethality detection is disabled. Results for single-gene queries are labelled accordingly.
Non-human species
GaiaLab is optimised for human gene symbols. Mouse orthologs (e.g. Trp53) are partially supported via alias resolution but may miss sources that do not cross-reference species.
Not a clinical decision support tool
GaiaLab is a research intelligence platform. Outputs are not validated for clinical use and should not inform patient treatment decisions without independent expert review. Independent regulatory validation is required before any therapeutic or clinical application.
Evidence grounding variability
The grounded ratio — the fraction of insight items backed by at least one validated PMID — ranges from 28% (cold start, PubMed rate-limited) to 70%+ (warm literature cache, full paper pool). Cold-start runs occur after server restart when the 5-minute literature cache is empty; a second run on the same gene panel will consistently score higher. The grounded ratio is reported on every analysis output. When it falls below 15%, the system suppresses speculative claims and labels the analysis as conservatively synthesised.
AI synthesis provider availability
Optional AI synthesis depends on external provider availability and deployment configuration. When no configured provider is available, analyses can complete using database-structured outputs only, without AI synthesis. The executive brief section is labelled "quota-limited synthesis" in these cases. Provider quota status is visible at /api/health.
1 Active source count varies with API key configuration and is published live at /api/health. Full source list in Section 3 — Data Sources. Three sources are currently key-gated (OncoKB, DisGeNET, DrugBank), so live coverage is 72 of the 75 integrated clients shipped with the platform.