Release 2026-10-17

Models

The models in this release, what each requires, how it generates and what it writes.

Model release

This page documents immutable model release iclr27-pbe-bcs-main-20261016, built from the ICLR 2027 submission method: PBE, the patient-bulk encoder — a generator conditioned on each sample's own bulk profile — followed by BCS, a bulk-consistency correction of the generated expression. Each model is trained against one single-cell reference and generates on a fixed 2,000-gene panel chosen at training time — the cohort's disease-prior genes first, then highly variable genes (HVGs) until the panel is full — and never re-selected at inference.

MODELPUBLIC IDCELL TYPESREQUIRED GENESREFERENCE
Breast tumourbreast-tumour-2k-v21116,864GEO GSE176078
T-ALLt-all-2k-v21055,719ScPCA SCPCP000003
Sepsis PBMCsepsis-pbmc-2k-v11040,200GEO GSE279448 and GSE279452
Record the release_id. Every job records the release it ran against, as release_id and model_id. Results are comparable across jobs that share both and not otherwise — the cell-type axis and the input requirement both belong to the release, and a replacement release changes them beneath the same product name.

Breast tumour

Breast tumour, bulk-conditioned single-cell generation (GSE176078 reference)

Cell-type composition and 1,000 generated single cells per sample for bulk breast tumour RNA-seq.

Public id (disease_model)breast-tumour-2k-v2
model_idiclr27-pbe-bcs-GSE176078
release_idiclr27-pbe-bcs-main-20261016
ReferenceHuman breast tumour single-cell reference — GEO GSE176078
Required input16,864 genes, every one present exactly once · raw counts · identifiers exactly as the list spells them (HGNC symbols)
Generation1,000 cells per sample · dopri5, 20 steps · seed 20260904 (fixed per release)
MethodPBE+BCS — generator A1_simple_bulk, correction BCS (legacy E01 consistent_cp10k)
11 CELL TYPES
  • B-cells
  • Cancer Epithelial
  • Cycling T-cells
  • Endothelial
  • Fibroblast
  • Myeloid
  • NK
  • Normal Epithelial
  • PVL
  • Plasmablasts
  • T cells
Applies toHuman breast tumour tissue, bulk RNA-seq of the whole tumour including its microenvironment, raw counts.
Not applicable toBlood, normal breast, other tumour types, cell lines or non-human samples.
Validation. Research model from the ICLR 2027 submission. Verified for output contract and fleet reproducibility; biological validity of generated cells is not claimed.

T-ALL

T-cell acute lymphoblastic leukaemia, bulk-conditioned single-cell generation (ScPCA SCPCP000003 reference)

Cell-type composition and 1,000 generated single cells per sample for bulk T-ALL RNA-seq.

Public id (disease_model)t-all-2k-v2
model_idiclr27-pbe-bcs-SCPCP000003
release_idiclr27-pbe-bcs-main-20261016
ReferenceHuman T-ALL single-cell reference — ScPCA SCPCP000003
Required input55,719 genes, every one present exactly once · raw counts · identifiers exactly as the list spells them (17,475 Ensembl ids (ENSG…) and 38,244 HGNC symbols)
Generation1,000 cells per sample · dopri5, 20 steps · seed 20260904 (fixed per release)
MethodPBE+BCS — generator A1_simple_bulk, correction BCS (legacy E01 consistent_cp10k)
10 CELL TYPES
  • ALL blast
  • B
  • Classical Monocyte
  • Cytotoxic T
  • DC
  • Erythroid
  • FCGR3A+ Monocyte
  • HSC
  • NKT
  • naive/Tcm
Applies toHuman T-ALL bone marrow or peripheral blood, bulk RNA-seq, raw counts.
Not applicable toSolid tissue, other leukaemias, cell lines or non-human samples.
Validation. Research model from the ICLR 2027 submission. Verified for output contract and fleet reproducibility; biological validity of generated cells is not claimed.

Sepsis PBMC

Sepsis peripheral blood mononuclear cells, bulk-conditioned single-cell generation (GSE279448/GSE279452 reference)

Cell-type composition and 1,000 generated single cells per sample for bulk sepsis PBMC RNA-seq.

Public id (disease_model)sepsis-pbmc-2k-v1
model_idiclr27-pbe-bcs-GSE279448_GSE279452_sepsis_PBMC
release_idiclr27-pbe-bcs-main-20261016
ReferenceHuman sepsis PBMC single-cell reference — GEO GSE279448 and GSE279452
Required input40,200 genes, every one present exactly once · raw counts · identifiers exactly as the list spells them (11,253 Ensembl ids (ENSG…) and 28,947 HGNC symbols)
Generation1,000 cells per sample · dopri5, 20 steps · seed 20260904 (fixed per release)
MethodPBE+BCS — generator H03, correction BCS (legacy E01 consistent_cp10k)
10 CELL TYPES
  • T_cell
  • Monocyte
  • B_cell
  • NK_cell
  • Erythroid
  • Platelet
  • Plasma
  • Neutrophil
  • DC
  • HSPC
Applies toHuman PBMC from sepsis cohorts, bulk RNA-seq, raw counts.
Not applicable toWhole blood with granulocytes, solid tissue, cell lines or non-human samples. The reference is PBMC, so neutrophil-rich whole blood will be described against an axis that under-represents it.
Validation. Research model from the ICLR 2027 submission. Verified for output contract and fleet reproducibility; biological validity of generated cells is not claimed. New tissue in this release; no prior model to compare against.

Required input

The requirement is exact, and it is per model: the complete set of genes the reference cohort and the training data had in common, each present exactly once, as raw counts, under the identifier the list spells for it. The engine normalises over that whole set (log1p CP10k) before it selects the 2,000-gene panel, so a missing gene or a duplicate identifier is an error — not a zero, and not a lower coverage figure.

MODELREQUIRED GENESIDENTIFIERS IN THE LISTREQUIRED GENE LIST
Breast tumour16,864HGNC symbolsGET /b2sc/models/breast-tumour-2k-v2/required-genes
T-ALL55,71917,475 Ensembl ids (ENSG…) and 38,244 HGNC symbolsGET /b2sc/models/t-all-2k-v2/required-genes
Sepsis PBMC40,20011,253 Ensembl ids (ENSG…) and 28,947 HGNC symbolsGET /b2sc/models/sepsis-pbmc-2k-v1/required-genes
  • Raw counts only. The model normalises for itself, so a matrix that is already CPM, TPM, FPKM, log-scaled or z-scored is the wrong input, not a lesser one — and the non-negative forms produce confident, wrong proportions rather than an error.
  • Identifiers exactly as the list spells them. The lists are not symbols-only: the T-ALL and Sepsis PBMC lists mix HGNC symbols and Ensembl ids (ENSG…) gene by gene, as the reference data spelled them, and the breast list is HGNC symbols throughout. Your gene column is matched verbatim against the downloadable list — nothing is converted on the way in. gene_id_type other than symbol answers 400 GENE_IDS_MUST_BE_SYMBOLS, because a conversion would hide the exact mismatch the check exists to show; re-label the file to the list instead.
  • Every required gene present exactly once. The new-run page fetches the list once per model and checks your file against it before uploading anything, reporting how many are missing and the first of them; a file that fails is refused there, with the engine's own rule stated.
  • Extra genes are not an error. The engine takes the required set from your matrix and leaves the rest.
There is no coverage percentage. The earlier generation accepted a file once it matched a fraction of the panel. This one does not: the count in the table is the whole requirement, and the API publishes it per model as input_gene_contract.required_genes, with the list itself at input_gene_contract.required_genes_url.

Generation and seeds

Every model in this release generates 1,000 cells per sample, allocated across its cell types by the estimated proportions (largest-remainder allocation, stable cell-type order for ties), and integrates the flow with the dopri5 solver over 20 steps in batches of 2,048. Generation is sample-major, then cell-type-major, with direct bulk conditioning throughout.

MODELCELLS PER SAMPLESOLVERSTEPSSEEDS
Breast tumour1,000dopri52020260904, fixed for the release; weights for 20260905 and 20260906 are shipped but not selectable yet
T-ALL1,000dopri52020260904, fixed for the release; weights for 20260905 and 20260906 are shipped but not selectable yet
Sepsis PBMC1,000dopri52020260904, fixed for the release; weights for 20260905 and 20260906 are shipped but not selectable yet

A job runs on one seed and records it. There is no seed parameter on the API or in the UI: every run uses the release's default seed, and the two other seeds are shipped weight sets that are not selectable yet. With the same seed, device class, solver, batch size and library versions the output is bitwise identical — measured on this platform as a same-GPU repeat for the breast and T-ALL models. Equality across different GPU generations is not promised; the run_manifest names the device and versions the job actually used.

Outputs

A completed job writes seven files directly under its result prefix. There is no analysis stage for any model in this release: the proportions and the generated cells are the complete result, and the job list, results page and GET /b2sc/jobs/{id}/files all read from the same manifest.

FILEWHAT IT HOLDS
platform_manifest.jsonThe index of the result. Names every other file, and carries release_id, model_id, seed, n_cells_per_sample, n_samples, the cell-type axis, the engine code version and image digest, the input sha256 and expression_semantics.
proportions.csvOne row per sample (sample_id), one column per cell type, the estimated proportion of each to six decimal places. Each row sums to 1 within rounding — the values are written to six decimal places, so a row can total 0.999999 or 1.000001.
cell_counts.csvThe same table as integer cell counts — how many of the generated cells per sample were allocated to each type (largest-remainder allocation, stable cell-type order for ties).
generated_cells.h5adThe generated single cells as an AnnData file: obs carries sample_id and cell_type; var is the model's 2,000-gene panel; X is continuous BCS-corrected generated expression; not measured or integer counts.
generated_cells.npzThe same expression matrix and axes as compressed NumPy arrays, for readers without an AnnData stack.
run_manifest.jsonThe engine's own record of the run (schema b2sc.iclr27-inference/v1): solver, steps, batch size, seed, device and library versions, the sha256 of every checkpoint it loaded, and the per-sample proportions and allocations it computed.
verification.jsonThe engine's self-check of the output contract — shapes, finite non-negative expression, unique axes, allocation totals, checkpoint load, output hashes. PASS or the job does not complete.
Expression semantics. The generated expression is continuous BCS-corrected generated expression; not measured or integer counts. It is not log1p CP10k either. Treat generated_cells.h5ad as a sample from a generative model conditioned on your bulk profile, not as a measurement, and do not feed it to a tool that assumes integer counts.

What changed from the previous generation

  • An exact input contract instead of coverage floors. The earlier models accepted a file once it matched 70% of the panel on two floors; these require every one of the cohort's common genes — 16,864 for Breast tumour, 55,719 for T-ALL, 40,200 for Sepsis PBMC — present exactly once. The gene floor fields are gone from GET /b2sc/models and replaced by input_gene_contract.
  • Different cell-type axes. Breast tumour has 11, T-ALL has 10, Sepsis PBMC has 10. The breast axis merges the ER+, HER2+ and TNBC epithelial types of the earlier model into one Cancer Epithelial; T-ALL goes from 12 to 10; Sepsis PBMC is new. Proportions from the earlier releases are not comparable with these.
  • 1,000 generated cells per sample for every model, up from 200, each with a recorded seed and three shipped weight sets.
  • No analysis stage for any model. The downstream R stage is not offered: proportions, cell counts and the generated cells are the whole result.
  • A flat result layout. Every file sits directly under the job's result prefix and platform_manifest.json indexes them; there are no stage sub-folders and no summary file to read first.
  • The old ids are retired and refused. breast-tumour-2k, breast-tumour-5k and t-all-2k, and the engine aliases behind them, are no longer served: a submission naming one answers 400 INVALID_MODEL listing the three current ids. Jobs and results produced by the retired releases are removed with them.
  • One panel size per model. There is no 5,000-gene variant in this release; every model generates on its own fixed 2,000-gene panel.

Each release is dated on the Changelog. The API reference documents the endpoints these pages name.

Research Use Only. Not a medical device and not cleared or approved by any regulator. Every output is a computational prediction, not a clinical finding, and must not be used to diagnose, treat, or decide the care of any patient without independent clinical review.