Changelog

Notable changes to scFoundry. The release this documentation describes is shown in the site footer.

0.2.1 — 2026.09

scFoundation fine-tuning fix. The fine-tuning and prediction scripts fed the backbone raw counts, whereas zero-shot embedding feeds it log1p-normalised counts (the representation it was pretrained on, get_embedding.py --pre_normalized F). Both now apply the same normalisation, so a fine-tuned scFoundation sees the input the frozen one does. Results of finetune --method scfoundation change accordingly.

check task. scfoundry check --data file.h5ad reports whether a file satisfies the input contract — raw counts, full transcriptome, unique identifiers, the columns a task or method reads — as an advisory OK / WARN / FAIL list. It changes nothing and never blocks a run.

0.2.0 — 2026.08

The scfoundry command. The framework is now a pip-installable package with a single command and a workspace model: scfoundry init prepares a directory, every task is a sub-command, every launch is recorded under runs/. Python and Nextflow are the only requirements. The pipeline ships inside the package; the old per-task entry points (embed_by_scfm.nf, fewshot_by_scfm.nf, finetune_by_scfm.nf, download_model_weights.nf) still work from a repository checkout but print a deprecation notice.

Embed covers every embedding method. PCA, the pretrained-Census scVI and the five batch-integration methods (scgpt_integrated, scvi_denovo, harmony, seurat_cca, seurat_rpca) are embed methods alongside the foundation models, in three declared categories. Novae is added for spatial data. Output directories are the method ids throughout.

Transfer replaces few-shot. transfer fits a classifier on frozen embeddings — logistic regression (default), prototype, kNN or an MLP head — and applies it; it covers few-shot annotation, reference mapping and the frozen-backbone comparison for models without a fine-tuning recipe.

Fine-tune is restricted to methods that update parameters. SCimilarity, GenePT, UCE and scPRINT, previously adapted by a post-hoc classifier, are served by transfer --classifier mlp instead. Fine-tuned models are published by copy, so they survive work-directory cleanup.

Benchmark and geometry tasks. benchmark computes the manuscript’s thirteen metrics under its Leiden protocol, including the batch-mixing metrics. geometry computes the representation-geometry probes introduced in the revision: participation ratio, spectral and cell-pair anisotropy, R_NX against Pearson-residual expression space, TwoNN intrinsic dimension and partial η².

Revised method implementations. CellFM (MindSpore-parity fixes), Geneformer, scFoundation, SCimilarity and scPRINT. scPRINT downloads medium-v1.5 from a pinned Hugging Face revision and CellPLM from its official Dropbox share, both verified by SHA-256.

2026.03.04

Fine-tuning released. finetune_by_scfm.nf covered 13 methods across two families — native backbone fine-tuning for models that support it, and a shared post-hoc classifier for models exposing only frozen embeddings.

2026.01.13

Few-shot learning released. fewshot_by_scfm.nf fitted class prototypes from a labelled support set and annotated a query set by cosine distance. Supported 14 methods. Also fixed several minor bugs in the scPRINT deployment.

Earlier

Batch integration. batch_integration_by_scfm.nf produced actively batch-corrected embeddings from scGPT, scVI, Harmony, Seurat CCA and Seurat RPCA, using batch labels only.

Embedding benchmark. embedding_benchmark.nf scored an embedding against known cell types with nine bio-conservation metrics.

Zero-shot embedding. embed_by_scfm.nf and download_model_weights.nf — the core of the framework, covering 16 methods including PCA and the pretrained Census scVI.


Note

Container images are tagged latest for most methods, so an image can change without a change recorded here. scGPT (0.2.4) and Novae (1.0.0) are pinned. If you need byte-reproducible results, record the image digests your run resolved to.

See also

Release notes and the commit history live in the code repository: [https://github.com/Svvord/scFoundry](https://github.com/Svvord/scFoundry).