Total Nodes
Total Relationships
Node Types
Rel Types
Data Sources
Search for a disease, gene, or drug by name. Select from the dropdown for the most accurate results.
Edge types:
▶ Visual Guide — how to read nodes & edges
Nodes (entities)
Direct neighbors of your search. Evidence-backed from curated databases.
Diamond = Disease node. Circle = all other types. Size = importance.
Edges (relationships)
Solid gray — Known relationship from a curated database. Click to see source.
Dashed cyan — ML-predicted drug–disease link (CompGCN + XGBoost). Not clinically validated. Hidden by default.
Solid orange — Disease hierarchy (subtype-of relationship from Disease Ontology).
Search for a disease, gene, or drug to visualize its neighborhood

Node

Type

Connected Nodes

    ▼ About: How to Interpret This Graph (click to expand)

    What is this graph?

    CardioKB is a knowledge graph — a structured map of known biological relationships relevant to cardiovascular disease. It connects genes, drugs, diseases, pathways, clinical trials, phenotypes, genetic variants, and more into a single searchable network.

    Every connection you see comes from a specific, peer-reviewed data source (DrugBank, ClinVar, STRING, PubTator, etc.). When you click on any edge (line), the panel on the right tells you exactly which database it came from and what evidence supports it.

    Disease-Specificity Score

    Not all gene–disease connections are equally meaningful. A gene linked to only 1 disease is far more informative for that disease than a gene linked to hundreds. The specificity score quantifies this:

    specificity = 1 ÷ (number of diseases a node connects to)
    • A gene linked to 1 disease scores 1.0 (highly specific — likely biologically meaningful)
    • A gene linked to 50 diseases scores 0.02 (broadly connected — may be a housekeeping gene)
    • Disease nodes themselves score 0.0; nodes with no disease connections score 1.0

    Why this matters: When investigating drug targets or biomarkers, high-specificity genes are more likely to represent a genuine disease mechanism rather than general cellular housekeeping. The graph prioritizes showing you the most specific nodes first.

    ML-Predicted Drug–Disease Links

    The cyan dashed edges are not from curated databases. They are machine learning predictions of drugs that might treat a disease, based on patterns in the knowledge graph.

    How the pipeline works
    1. Graph embedding — CompGCN (128-dim), a graph neural network that jointly embeds nodes and relation types via composition operators during message passing, learns numerical representations for every entity in the knowledge graph.
    2. Feature engineering — For each candidate drug–disease pair, we combine embedding-derived features (element-wise interactions) with graph structure features (shared neighbors, Adamic-Adar index, node degree).
    3. Classification — An XGBoost decoder (decision tree ensemble) was trained on known “drug treats disease” relationships to distinguish real therapeutic links from random pairs.
    4. Prediction — CompGCN + XGBoost scores all ~4.4 million unknown drug–disease pairs. The top 10,000 predictions (confidence ≥ 50%) are stored in the graph. Enable “Show ML predictions” in the toolbar, then click any cyan edge to see the confidence score.
    Model performance (XGBoost decoder)

    CompGCN was rigorously evaluated using an 80/10/10 stratified train/validation/test split with no data leakage (embeddings trained only on training edges). RotatE (a rotation-based embedding method) was also evaluated for comparison:

    Metric RotatE CompGCN What it means
    Test AUROC0.9830.987Probability the model ranks a real treatment above a random pair
    Test AUPRC0.9810.985Precision–recall balance — few false positives among top predictions
    Hits@1043.7%38.3%Fraction of real treatments in the top 10 predictions per drug
    MRR0.2050.228Mean reciprocal rank — how high the correct disease ranks on average

    Dataset: 10,310 therapeutic drugs × 2,640 diseases. 3,577 training / 446 validation / 446 test known “drug treats disease” edges (4,469 total). CompGCN+XGBoost achieves the best AUROC (0.987) and is used for the predictions shown in the graph.

    Important limitations
    • These are computational predictions, not clinical evidence. They suggest drugs worth investigating, not drugs to prescribe.
    • The model learns from graph structure (which entities are connected and how), not from clinical trial outcomes or patient data.
    • Predictions should be treated as hypothesis-generating leads for wet-lab validation, not as treatment recommendations.
    • The confidence score (shown when you click a cyan dashed edge) reflects the model’s certainty, not clinical efficacy. A 95% confidence means the model strongly believes this drug-disease pair resembles known treatments — it does not mean there is a 95% chance the drug works.

    Where does the data come from?

    CardioKB integrates -- deduplicated data sources, each serving a specific purpose. Every edge carries a source property — click any edge to see exactly which database it came from. Key sources include:

    DrugBank — Drug-target binding interactions
    ClinVar — Clinically interpreted genetic variants
    STRING — Protein-protein interaction confidence
    PubTator — Gene-disease co-mentions in PubMed
    Reactome — Curated biological pathways
    ClinicalTrials.gov — Active and completed clinical trials
    HPO — Gene-to-clinical-phenotype mappings
    CTD — Chemical-gene expression interactions

    Run a Health Check (sidebar) to see the full list of sources with their data counts and integrity status.

    Ask questions in plain English and AI will generate Cypher queries for the CVD knowledge graph (-- sources). Or expand "Write Cypher directly" below to write your own. Results appear as a table and, when graph data is returned, as a network visualization.

    Query Templates

    🔑 AI Settings — Enter your API key to use Ask AI. Stored in your browser only, never on the server.
    Or write Cypher directly
    Ctrl+Enter to run

    Parser Status

    ParserStatusDuration

    Health Checks

    Run a health check to see results

    Node Counts by Type

    Relationship Counts by Type

    Pipeline Log

    Ready. Click "System Check" to verify all data sources.