Spec
| Target | HIPred (Shihab 2017) haploinsufficiency-score regression: predict `hipred_score` = integrative P(haploinsufficient) in [0, 1] per gene for ~18k GENCODE-v49 genes (dense). One scalar per gene, paired by `gene_id`; scored primarily with Spearman rank correlation. Paralog/family-aware split (Ensembl Compara). A *predicted* dosage score (GPL-3.0 upstream, maintainer-approved for eval use) — not to be used as an input for the curated ClinGen HI label (circular). |
|---|---|
| Axis | Fitness & dosage — Essentiality, constraint, and dosage sensitivity. |
| Shape | Scalar regression · metric family: correlation |
| Task | gene_regression / gene_regression |
| Dataset | shihab_2017_bioinformatics/haploinsufficiency_score@0.0.1 |
| Publication | shihab_2017_bioinformatics |
| Metrics |
|
| Temporal discovery | no — held-out genes |
| License | Declared per SPDX in the dataset's recipe README ↗ (commercial-use gated by CI). |
| References |
|
IO contract
- pairing_key
- gene_id
- required_metadata
- gene_id
- target_kind
- gene_score
What the prediction looks like
This eval has the scalar regression shape. The figure is seeded to it — drag the control to watch the score respond.
One number per gene — does your ranking match the truth?
Used by essentiality (DepMap) · constraint (LOEUF) · dosage (pHaplo / pTriplo / HIPred)
Each gene has one continuous truth value; the metric is Spearman ρ — pure rank agreement, so a model with the ordering right scores well even when its absolute numbers drift. Short vertical connectors mean the ranking held; long slants are rank errors.
Run it
Fetch the censored splits, predict, score — task and dataset filled in.
import prima_bench as pb
# Downloads on demand into the local cache; returns local Paths.
train_path, test_path = pb.fetch_data(task="gene_regression", dataset="shihab_2017_bioinformatics/haploinsufficiency_score@0.0.1")
train = pb.load(train_path, task="gene_regression", split="train", dataset="shihab_2017_bioinformatics/haploinsufficiency_score@0.0.1")
test = pb.load(test_path, task="gene_regression", split="test", dataset="shihab_2017_bioinformatics/haploinsufficiency_score@0.0.1")
# Your model produces predictions aligned to the eval input.
predictions = my_model(test)
# Score against the censored solution over this task's metric panel:
# gene_reg_spearman, gene_reg_pearson, gene_reg_mse, gene_reg_rmse, gene_reg_r2
run = pb.Evaluation(task="gene_regression", dataset="shihab_2017_bioinformatics/haploinsufficiency_score@0.0.1")
run.update(predictions=predictions) # one-shot; or stream shard-by-shard
result = run.compute() # -> EvalResult
print(result)
Results
Awaiting scored models — the row scaffold is live; numbers land with results.json.
Awaiting results · prima-bench
haploinsufficiency_score · leaderboard
results.json wired up yet. The eval scaffold below is live; drop a document matching src/data/results.schema.md at src/data/results.json (or pass a results prop) and every bar fills in. Each track's tick marks the chance baseline.Gene Regression
1| Eval | Score | awaiting |
|---|---|---|
haploinsufficiency_scoreshihab_2017_bioinformatics/haploinsufficiency_score@0.0.1 | — |