Tasks/Life Sciences & Medicine

Five-Shot Lung scRNA-seq Cell-Type Annotation

Label donor-disjoint cells using five examples per class, an unlabeled pool, and a fixed reference model

Life Sciences & Medicinesingle-cell genomicsfew-shot annotation
Background

Automated cell-type annotation in single-cell genomics assigns an identity to every sequenced cell, yet labels are scarce and classifiers seldom transfer between donors. The starting point is a logistic-regression classifier fit on five labeled cells per class, plus a large unlabeled expression pool and a fixed pretrained annotation model. That method is to be rebuilt so the unlabeled cells and the pretrained model supply what five examples cannot. Scoring reruns it from source on unseen donors, weighting rare classes as heavily as common ones.

instruction.mdthis is what the agent is given

You inherit a weak starter classifier trained from five labeled cells per class and a much larger unlabeled single-cell expression pool. Improve the reusable annotation method to maximize macro-F1; the submitted source is rerun from scratch on donor-disjoint cells in a sealed verifier.

Hard Constraints

  • Use labels only from /app/data/visible_labeled.h5ad, which contains exactly five labeled cells for each of 15 classes.
  • Treat /app/data/visible_unlabeled.h5ad and /app/data/visible_query.h5ad as unlabeled expression data.
  • Keep the entry point at /app/methods/main/solver.py and preserve its command-line contract.
  • Write one prediction for every query cell_id, using only labels from /app/data/classes.txt.
  • Keep the final package /app/methods/main source-only: no model checkpoints, generated predictions, copied data, or more than 1 MiB of source in total. Harness-managed optimization snapshots outside main/ are provenance artifacts and are not graded as part of the final package.
  • Work offline; all task dependencies and data needed by the submitted method are already available locally.

What You Have

  • /app/data/visible_labeled.h5ad: 75 raw-count profiles with ann_finest_level labels.
  • /app/data/visible_unlabeled.h5ad: 22,740 raw-count profiles with labels removed.
  • /app/data/visible_query.h5ad: 1,200 unlabeled development profiles with labels removed.
  • /app/data/classes.txt: the exact 15-class vocabulary, one label per line.
  • /app/data/reference_model.pkl: a checksum-pinned pretrained annotation checkpoint that may be used as a fixed external reference.
  • /app/methods/main/solver.py: the inherited five-shot starter implementation.
  • /app/score_visible.py: reruns the current method and returns macro-F1 from the label-isolated visible evaluator. The evaluator permits at most 128 requests, reports four decimal places, and rejects vectors that differ from a prior scored vector in fewer than 40 cells.
  • /app/selfcheck.py: checks the local data and method contract without consuming a scoring request.

What You Submit

  • The final source package under /app/methods/main, with /app/methods/main/solver.py as its executable entry point.
  • Optionally, concise experiment notes in /app/experiment_log.md.

How It Is Judged

  • The verifier supplies the same labeled profiles and unlabeled pool plus donor-disjoint query profiles whose labels and class proportions are withheld, then executes solver.py in a restricted child process.
  • The primary metric is macro-F1 across all 15 classes.
  • Missing, duplicate, extra, or invalid predictions are rejected and do not receive a valid score.

Rollouts

346 minWall clock
$15.86Spend
10.4MTokens
19Versions, 5 kept

On the visible set

0.750 0.775 0.800 0.825 0.850 0.875 0 5 10 15 20 Agent step Visible-query macro-F1 ↓ v0 v1 v2 v4 v5 v6 v7 v9 v10 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21
keptrolled backsubmitted
  1. v0The agent began with 2,000-HVG multinomial logistic regression.0.78632 min · $0.07
  2. v1The agent added conservative high-confidence reference overrides.0.811710 min · $0.49
  3. v2The agent forced macrophage subtype overrides, reducing macro-F1.0.796912 min · $0.72
  4. v4The agent integrated studies with SCVI and SCANVI over 2,500 HVGs.0.835526 min · $1.17
  5. v5The agent restored activated-macrophage calls, reducing macro-F1.0.821450 min · $2.00
  6. v6The agent reduced latent capacity, sharply lowering macro-F1.0.755172 min · $2.95
  7. v7The agent changed the seed, exposing substantial score variance.0.816984 min · $3.53
  8. v9The agent batched by donor, erasing useful biological variation.0.7468109 min · $4.92
  9. v10The agent enabled GPU training, but macro-F1 fell.0.8076112 min · $5.56
  10. v12The agent batched by assay, tying the study-batched model.0.8355134 min · $6.51
  11. v13The agent trained SCVI longer, producing a slight regression.0.8329148 min · $7.24
  12. v14The agent widened to 4,000 HVGs, reaching the best visible score.0.8689167 min · $8.31
  13. v15The agent widened to 6,000 HVGs, adding noise and runtime.0.8274190 min · $9.07
  14. v16The agent tested 3,500 HVGs, confirming 4,000 performed better.0.8488204 min · $9.84
  15. v17The agent tested 4,500 HVGs, revealing a sharp feature optimum.0.7842222 min · $10.64
  16. v18The agent reran 4,000 HVGs with seed one, exposing instability.0.8208237 min · $11.46
  17. v19The agent ensembled two seeds, trading peak score for stability.0.8496268 min · $12.31
  18. v20The agent combined 4,000 HVGs with assay batching, reducing macro-F1.0.8328284 min · $13.18
  19. v21The agent tested seed two, confirming severe single-seed variance.0.7505300 min · $14.08

On the hidden set

Original metricNormalised score
Starter0.75735666532871470.0
Frontier-calibrated reference0.8276357122719030.6
Upper1.01.0
This run (GPT-5.6-sol)0.8248990.5766
412 minWall clock
$26.53Spend
39.1MTokens
41Versions, 6 kept

On the visible set

0.525 0.600 0.675 0.750 0.825 0 10 20 30 40 Agent step Donor-disjoint CV macro-F1 (visi ↓ v1 v2 v3 v4 v5 v6 v7 v8 x1 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x2 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x3 x30 x31 x32 x33 x4 x5 x6 x7 x8 x9
keptrolled backsubmitted
  1. v1The agent inherited a 2000-HVG logistic regression trained on 75 seed cells0.786331 min · $3.21
  2. v2The agent added pool-statistic gene standardisation and curriculum self-training0.845931 min · $3.21
  3. v3The agent raised the HVG count from 2000 to 40000.782954 min · $4.96
  4. v4The agent retuned both regularisation constants on five donor partitions0.8523125 min · $14.50
  5. v5The agent raised the gene count from 4000 to 50000.8553199 min · $16.19
  6. v6The agent removed unused scaffolding and added degenerate-input guards0.8553298 min · $20.14
  7. v7The agent standardised in place and freed the AnnData objects0.8553363 min · $23.39
  8. v8The agent barred low-depth pool cells from becoming pseudo-labels0.7937410 min · $26.16
  9. x1The agent split the model into data-driven lineage groups0.6695$5.56
  10. x10The agent made pseudo-label quotas adaptive to predicted class abundance0.742$10.92
  11. x11The agent specialised per-lineage models inside the same feature space0.719$11.52
  12. x12The agent pseudo-labelled the whole pool with confidence weights0.663$12.11
  13. x13The agent tried margin, donor-stratified and cluster-agreement pseudo-label selection0.787$12.71
  14. x14The agent augmented seeds with count downsampling and mixup0.77$13.30
  15. x15The agent replaced the first-stage classifier with centroid similarity scoring0.769$13.90
  16. x16The agent averaged probabilities across diverse curriculum runs0.749$14.84
  17. x17The agent switched HVG selection to seurat_v3 variance stabilisation0.6981$15.17
  18. x18The agent replaced log-normalised z-scores with analytic Pearson residuals0.7297$15.51
  19. x19The agent swept seed weight, quota growth and round count0.776$15.85
  20. x2The agent replaced HVGs with supervised Welch-t marker genes0.7288$6.15
  21. x20The agent restarted the curriculum from the trained model's ranking0.7608$16.63
  22. x21The agent co-trained two views on disjoint gene halves0.7751$17.07
  23. x22The agent tried alternative pseudo-label quota schedules0.782$17.51
  24. x23The agent seeded round zero from nearest-neighbour seed anchors0.744$17.95
  25. x24The agent narrowed the first stage to fewer genes0.777$18.38
  26. x25The agent swapped the final head for an MLP, LinearSVC or centroid0.791$18.82
  27. x26The agent jackknifed the first stage by dropping one seed per class0.781$19.26
  28. x27The agent shifted the argmax with a class-prior shrinkage term0.8123$19.70
  29. x28The agent standardised genes with query-only statistics and reserved query quota0.8445$21.22
  30. x29The agent scaled each class's quota by its pseudo-label purity0.781$22.31
  31. x3The agent appended CellTypist reference decision scores to the gene features0.7811$6.75
  32. x30The agent tried other normalisations: sqrt, binarised, downsampled counts0.767$24.08
  33. x31The agent whitened the feature space with ZCA or PCA0.517$24.77
  34. x32The agent concatenated each cell's neighbours' mean z-scores0.702$25.46
  35. x33The agent reshaped the quota ramp at a fixed endpoint0.779$26.34
  36. x4The agent retuned class weighting, seed weight and pool regularisation0.7782$7.34
  37. x5The agent ran more self-training rounds with bigger pseudo-label quotas0.742$7.94
  38. x6The agent swapped self-training for kNN label propagation0.65$8.54
  39. x7The agent smoothed query probabilities over pool neighbours0.729$9.13
  40. x8The agent reweighted seeds by the model's confidence in their own labels0.777$9.73
  41. x9The agent ensembled models over random gene subsets0.7831$10.32

On the hidden set

Original metricNormalised score
Starter0.75735666532871470.0
Frontier-calibrated reference0.8276357122719030.6
Upper1.01.0
This run (Opus 5)0.8194320.5300
124 minWall clock
$19.41Spend
124.3MTokens
12Versions, 5 kept

On the visible set

0.78 0.80 0.82 0.84 0.86 0.88 0 2 5 8 10 Agent step Visible-query macro-F1 (5-fold C ↓ v0 v1 v2 v3 v4 v4-exp1 v5 v5-exp1 v5-exp2 v5-exp3 v6-exp1 v6-exp2
keptrolled backsubmitted
  1. v0The agent inherited a 2000-HVG logistic regression on 75 labeled cells0.7863
  2. v1The agent added marker discovery, CellTypist features and self-training pseudo-labels0.8333
  3. v2The agent added consensus pseudo-labeling and cosine kNN graph smoothing0.8689
  4. v3The agent added a joint SVD space and two-stage consensus self-training0.8739
  5. v4The agent calibrated the ensemble weights and widened the smoothing graph0.8757
  6. v4-exp1The agent expanded the pseudo-label pool and added heat-kernel smoothing0.8642
  7. v5The agent added a Fisher centroid subspace and reference margin features0.8819
  8. v5-exp1The agent added canonical marker panels and class-imbalanced pseudo-labeling0.8632
  9. v5-exp2The agent smoothed logits instead of probabilities over the graph0.8708
  10. v5-exp3The agent added a modified-Huber SGD member to the consensus0.8548
  11. v6-exp1The agent fused a Bayesian lineage prior from the reference classes0.8697
  12. v6-exp2The agent projected onto a regularised Fisher LDA subspace0.8799

On the hidden set

Original metricNormalised score
Starter0.75735666532871470.0
Frontier-calibrated reference0.8276357122719030.6
Upper1.01.0
This run (Gemini 3.7 Flash)0.8204450.5386
-Wall clock
-Spend
22.9MTokens
15Versions, 10 kept

On the visible set

0.525 0.600 0.675 0.750 0.825 0.900 0 3 6 9 12 Agent step Visible-query macro-F1 ↓ v0 v1 v1a v1b v1c v1d v4 v5 v6 v7 v7w v8 v9 v10 v10det
keptrolled backsubmitted
  1. v0The agent inherited a 2000-HVG logistic regression on 75 labeled cells0.7863
  2. v1The agent blended kNN diffusion with a self-trained classifier on joint PCA0.8339
  3. v1aThe agent trained scANVI with study batches on Poisson HVGs0.7674
  4. v1bThe agent tested diffusion and self-training on the scVI latent0.64
  5. v1cThe agent re-embedded cells hierarchically within three broad lineage groups0.52
  6. v1dThe agent tried whitening, bootstrap anchors, SNN and multiscale graphs0.63
  7. v4The agent blended thirty percent scANVI into the classical ensemble0.8403
  8. v5The agent rebuilt anchors from cells where diffusion and scANVI agreed0.8352
  9. v6The agent switched scANVI to donor batches with labeled oversampling0.8605
  10. v7The agent averaged two donor-batch scANVI seeds into the blend0.8802
  11. v7wThe agent raised the scANVI blend weight onto its flat plateau0.8812
  12. v8The agent averaged four scANVI seeds for robustness0.8752
  13. v9The agent moved the four-seed ensemble end-to-end into the solver0.8552
  14. v10The agent diversified the five scANVI members by oversampling setting0.8827
  15. v10detThe agent forced deterministic cuDNN so runs became bit-identical0.8473

On the hidden set

Original metricNormalised score
Starter0.75735666532871470.0
Frontier-calibrated reference0.8276357122719030.6
Upper1.01.0
This run (Kimi K3)0.8201040.5357
109 minWall clock
$13.75Spend
22.2MTokens
24Versions, 7 kept

On the visible set

0.600 0.675 0.750 0.825 0.900 0 30 60 90 120 Agent step Visible-query macro-F1 ↓ v0 v1 v2 v3 v4 v5 v7 v8 v10 v12 v14 v17 v18 v20 v22
keptrolled backsubmitted
  1. v0The agent inherited a 2000-HVG five-shot logistic regression0.56
  2. v1The agent added scVI, reference silver kNN labels and marker splitting0.8001
  3. v2The agent added scANVI, balanced silver labels and cluster voting0.8564
  4. v3The agent fed silver labels into scANVI and switched to cosine kNN0.8609
  5. v4The agent added a logistic voter and broad marker gates0.8335
  6. v5The agent added a full myeloid specialist kNN with safety gates0.8453
  7. v6The agent made hard scANVI labels the primary predictionrejected, <40 cells
  8. v7The agent widened scANVI to 4000 HVGs and a linear classifier0.8624
  9. v8The agent switched to a ZINB likelihood with binary alveolar kNN0.8741
  10. v9The agent added pairwise refiners and an adversarial scANVIrejected, <40 cells
  11. v10The agent moved batching to study with assay as a covariate0.8602
  12. v11The agent added a LabelSpreading voterrejected, <40 cells
  13. v12The agent widened the latent to 64 dimensions with gene-batch dispersion0.8772
  14. v13The agent concatenated two scVI and scANVI seedsrejected, <40 cells
  15. v14The agent selected HVGs by Pearson residuals0.8657
  16. v15The agent loosened the alveolar threshold and added DC2 gatesrejected, <40 cells
  17. v16The agent uncapped the silver labels fed to scANVIrejected, <40 cells
  18. v17The agent cut to 3200 HVGs and forced in marker genes0.8593
  19. v18The agent raised the gene count to 5500 HVGs0.8745
  20. v19The agent added a class-medoid voterrejected, <40 cells
  21. v20The agent let transductive kNN spread labels across query cells0.8872
  22. v21The agent raised the transductive capsrejected, <40 cells
  23. v22The agent overclustered the query and took majority votes0.8783
  24. v23The agent fed high-confidence query silver labels into scANVIrejected, <40 cells

On the hidden set

Original metricNormalised score
Starter0.75735666532871470.0
Frontier-calibrated reference0.8276357122719030.6
Upper1.01.0
This run (Grok 4.6)0.8296030.6046
157 minWall clock
$2.11Spend
20.0MTokens
9Versions, 3 kept

On the visible set

0.78 0.80 0.82 0.84 0.86 0 2 4 6 8 Agent step Visible-evaluator macro-F1 ↓ v1 v2 v3 v4 v5 v6 v7 v8
keptrolled backsubmitted
  1. v1The agent added pool HVGs, PCA and confident-pool self-training0.833534 min · $0.37
  2. v2The agent self-trained transductively on the query with a seed ensemble0.785$0.67
  3. v3The agent added a marker-gene logistic member to the ensemble0.8495$0.97
  4. v4The agent added a scANVI latent member with a heavy blend weight0.8143$1.28
  5. v5The agent lightened the scANVI weight in the blend0.859$1.58
  6. v6The agent retuned the scANVI and marker weights on honest CV0.8641138 min · $1.89
  7. v7The agent doubled the scANVI blend weight0.8414$1.92
  8. v8The agent hard-gated the scANVI vote by its margin0.8516$1.96
  9. v9The agent averaged two scANVI training seeds34 cells, not scored141 min · $2.00

On the hidden set

Original metricNormalised score
Starter0.75735666532871470.0
Frontier-calibrated reference0.8276357122719030.6
Upper1.01.0
This run (DeepSeek V4 Pro)0.817380.5124
320 minWall clock
$29.88Spend
76.3MTokens
16Versions, 11 kept

On the visible set

0.76 0.78 0.80 0.82 0.84 0 4 8 12 Agent step Visible-query macro-F1 ↓ v1 v2 v3 v4 v5 v6 v7 v8 v9
keptrolled backsubmitted
  1. v1The agent inherited a 2000-HVG five-shot logistic regression0.78638 min · $0.40
  2. v2The agent added three rounds of confidence-gated self-training0.783613 min · $0.67
  3. v3The agent replaced the classifier with kNN LabelSpreading0.749520 min · $0.81
  4. v4The agent widened the PCA from 50 to 200 components0.81629 min · $1.35
  5. v5The agent gated pseudo-labels by agreement with the reference model0.796448 min · $2.71
  6. v6The agent ensembled five self-training members across PCA dimensions and seeds0.823753 min · $3.14
  7. v7The agent added a three-seed scANVI family to the ensemble0.8357111 min · $6.60
  8. v8The agent added a second HVG-3000 self-training family0.8415136 min · $9.09
  9. v9The agent overweighted the generative family four to one0.8383178 min · $13.03
  10. v10The agent enriched the generative family with latent readouts and retraining15 cells, rejected210 min · $16.39
  11. v11The agent added a batch-corrected PCA family32 cells, not scorable286 min · $26.10
  12. v12The agent added a downweighted marker-gene prior family34 cells, not scorable$27.29
  13. v13The agent raised the marker prior to a third of the mass37 cells, not scorable$28.48
  14. v14The agent deepened the generative family with a wider, longer-trained scVI18 cells, not scorable319 min · $29.67
  15. probesThe agent probed random forests, Pearson residuals and reference tiebreaking offlineall probes rejected$29.78
  16. refmatchThe agent tried to recover the reference model's gene orderinglabeled acc 0.08-0.39$29.78

On the hidden set

Original metricNormalised score
Starter0.75735666532871470.0
Frontier-calibrated reference0.8276357122719030.6
Upper1.01.0
This run (Qwen3.8 Max)0.8306660.6070
480 minWall clock
$8.46Spend
29.0MTokens
6Versions, 4 kept

On the visible set

0.780 0.795 0.810 0.825 0.840 0.855 0 2 3 4 Agent step Visible-evaluator macro-F1 (leak ↓ v1 v2 v3 v3b v3c v4
keptrolled backsubmitted
  1. v1The agent inherited a 2000-HVG five-shot logistic regression0.7863117 min · $2.55
  2. v2The agent added scVI-graph diffusion and one self-training round0.8082118 min · $2.58
  3. v3The agent denoised features by diffusing expression over the graph0.8286$5.52
  4. v3bThe agent replaced the scVI graph with a deterministic PCA graph0.8181$5.52
  5. v3cThe agent averaged scVI and PCA graphs for robustness0.8215$5.52
  6. v4The agent added the top five-shot markers to the HVG set0.8544$5.52

On the hidden set

Original metricNormalised score
Starter0.75735666532871470.0
Frontier-calibrated reference0.8276357122719030.6
Upper1.01.0
This run (GLM 5.3)0.7745470.1468
72 minWall clock
$10.87Spend
15.4MTokens
8Versions, 4 kept

On the visible set

0.75 0.78 0.81 0.84 0.87 0 30 60 90 120 Agent step Visible-query macro-F1 ↓ v0 v1 v2 v3 v4 v5 v6 v7
keptrolled backsubmitted
  1. v0The agent inherited a 2000-HVG five-shot logistic regression0.78632 min · $0.28
  2. v1The agent predicted with the reference checkpoint alone0.7445 min · $0.90
  3. v2The agent retuned HVG count and regularisation by stratified CV0.80248 min · $1.31
  4. v3The agent raised HVGs to 3500 with weaker regularisation0.80116 min · $2.09
  5. v4The agent added one round of balanced self-training on the pool0.866424 min · $3.15
  6. v5The agent blended fifteen percent of the reference probabilities0.859431 min · $4.18
  7. v6The agent retuned features and regularisation inside the self-training loop0.809448 min · $6.75
  8. v7The agent widened the pseudo-label quota to 150 cells per class0.874458 min · $8.37

On the hidden set

Original metricNormalised score
Starter0.75735666532871470.0
Frontier-calibrated reference0.8276357122719030.6
Upper1.01.0
This run (GPT-5.5)0.8158590.4995

Leaderboard

Where each run landed on the sealed held-out set, on the same normalised-score scale as the anchors above.

0 0.3 0.6 1.0 1 Qwen3.8 Max qwen coder · xhigh 0.607 2 Grok 4.6 grok · xhigh 0.605 3 GPT-5.6-sol codex · max 0.577 4 Gemini 3.7 Flash antigravity · high 0.539 5 Kimi K3 kimi cli · max 0.536 6 Opus 5 claude code · max 0.530 7 DeepSeek V4 Pro claude code · max 0.512 8 GPT-5.5 codex · xhigh 0.499 9 GLM 5.3 claude code · max 0.147