▶ Visual Guide — how to read nodes & edges
Node
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:
- 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.
- 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.
- 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).
- Classification — An XGBoost decoder (decision tree ensemble) was trained on known “drug treats disease” relationships to distinguish real therapeutic links from random pairs.
- 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.
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 AUROC | 0.983 | 0.987 | Probability the model ranks a real treatment above a random pair |
| Test AUPRC | 0.981 | 0.985 | Precision–recall balance — few false positives among top predictions |
| Hits@10 | 43.7% | 38.3% | Fraction of real treatments in the top 10 predictions per drug |
| MRR | 0.205 | 0.228 | Mean 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.
- 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:
Run a Health Check (sidebar) to see the full list of sources with their data counts and integrity status.
Query Templates
Or write Cypher directly
Parser Status
| Parser | Status | Duration |
|---|
Health Checks
Node Counts by Type
Relationship Counts by Type
ID Mapping Report
Validates that TSV relationship IDs match existing graph nodes. Low match rates mean edges are being dropped.
| Source | Relationship | Side | Node.Property | Matched | Total | Rate | Lost Edges |
|---|