Method

The ablation ladder is the experiment. Each rung removes exactly one capability from the rung above it, and the first rung that is NOT beaten is the research answer — not the top rung's score.

Every rung runs on the same split, the same negatives, the same endpoints, and at least five seeds with bootstrap confidence intervals. One seed cannot resolve a 0.02 difference in average precision, and most reported wins on biomedical knowledge graphs sit inside that band.

0 Base rate

What does guessing the prior achieve?

A prevalence constant, equivalent to sklearn DummyClassifier(strategy="prior")

If this rung is not beaten: Anchors average precision. Anything not beating it is noise.

1 Degree-only null Q1

Does simple popularity explain performance?

sklearn LogisticRegression on log1p(per-relation degree). No biology, no relations, no message passing.

If this rung is not beaten: The graph encodes study attention, not safety biology. The project returns a negative result, and that is a real finding.

2 Non-graph model Q2

Do target features alone explain performance?

sklearn HistGradientBoostingClassifier and a tabular MLP on target annotations only: GTEx expression breadth, gnomAD pLI and LOEUF, protein family, subcellular localisation. Zero graph structure.

If this rung is not beaten: The graph adds nothing. Ship the cheaper tabular model and close the project.

2b Graph-topology GBM Q2

Do hand-computed graph statistics suffice?

sklearn HistGradientBoostingClassifier on personalised PageRank to known-risky targets, betweenness, k-core, clustering, degree. Graph-derived, but no learned representation.

If this rung is not beaten: A published comparator of this family reached ROC-AUC around 0.71 on target-level safety attrition. That is the bar a GNN must clear.

3 Shallow KGE Q3

Does embedding entities suffice, without message passing?

PyKEEN ComplEx and PyKEEN RotatE: relation-typed scoring functions with no neighbourhood aggregation.

If this rung is not beaten: Relation-typed embedding is what helps; aggregation is not.

4 Relation-agnostic GNN Q3

Does connectivity alone help?

PyG GraphSAGE (SAGEConv) and PyG GAT (GATConv) over a collapsed single adjacency, with edge types deliberately discarded.

If this rung is not beaten: The control that isolates relation types. Without it, no claim about relationships can be made at all.

5 Relation-aware GNN Q3

Do relation TYPES add information?

PyG R-GCN (RGCNConv), CompGCN and PyG HGT (HGTConv), with a degree-offset head and a gradient-reversal adversary.

If this rung is not beaten: The difference between this rung and rung 4 IS the research answer. If it is near zero, connectivity matters and relation types do not.