Validation

Checked against the tools you already trust.

Reviewers ask “would Seurat, Scanpy or the original R package have given the same answer?” For each method below, scView was run beside that package on public data, and the table says how closely the two agree. “Identical” means the same numbers; “to 1e-13” means they agree to 13 decimal places.

Each row: the reference implementation and version, the agreement metric, the public dataset, and the CHANGELOG entry or module docstring on main that recorded it. The bars count matching decimal places out of 16 (double precision). Where scView deliberately differs from the reference, the row says so.

Quality control

StepAgreementReferenceDataSource
Barcode ranksDid the run capture cells well?to 1e-10DropletUtils barcodeRanks (knee, inflection)pbmc_1k_v3; every metric equals the Cell Ranger summaryCHANGELOG 0.32.0
Ambient RNABackground RNA in every dropletto 1e-16R SoupX 1.6.2: soup profile; adjustCounts to 5e-1110x pbmc, heart and neuron 1kambient.py
Doublet scoresDroplets that hold two cellsIdenticalsc.pp.scrublet (scanpy 1.11), bitwiseKang 2018, paul15CHANGELOG 0.33.0
Doublet classifierA second, independent doublet call0.948AUC; R scDblFinder scores 0.95110x human + mouse mixCHANGELOG 0.35.0
Sample hashtagsWhich sample each cell came fromEvery cellsame class and tag as Seurat 5.1.0 HTODemux and DropletUtils 1.24 hashedDropsGSE108313, 20,238 cellshashing.py

Clusters and cell types

StepAgreementReferenceDataSource
Marker genesThe genes that define each groupIdenticalscanpy rank_genes_groups (Wilcoxon, t-test)100k cells in 15 s instead of 2.5 minCHANGELOG 0.34.0
Copy-number callsTumour cells from normal cells0.9999996Pearson vs infercnvpy 0.6.1 per-cell scoresmaynard2020_3kCHANGELOG 0.39.0

Differences between conditions

StepAgreementReferenceDataSource
Pseudobulk limma-voomGene changes with donors as replicatesto 1e-9TMM, voom and moderated t vs edgeR 4.10 / limma 3.68Kang 2018CHANGELOG 0.41.0
Cell-type proportionsDid a population really grow?Exactpropeller-style test vs R limma, “to numerical precision”robust eBayesCHANGELOG 0.18.0
Neighbourhood abundanceShifts too small to be a clusterto 5e-7Milo vs pertpy (pydeseq2 solver); edgeR logFC r = 0.989Kang, 779 neighbourhoodsmilo.py

Pathways and signals

StepAgreementReferenceDataSource
TF and pathway activityWhich regulators are switched onto 1e-5decoupler univariate linear model, “to 5 decimals”CollecTRI, PROGENyCHANGELOG 0.15.0
Gene-set scoresHow active a set of genes is in each cellIdenticaldecoupler aucell9 gene sets on Kang and paul15CHANGELOG 0.31.0
Cytokine responseWhich signals drive a response0.9997Spearman of z-scores vs CytoSig 0.0.3Kang: 13 cell types × 43 cytokinescytokine_activity.py
Cell–cell signallingWhich cells talk to whichIdenticalliana-py 1.10 method scores, CellPhoneDB p, specificity rankKang 2018, paul15CHANGELOG 0.26.0

Datasets together

StepAgreementReferenceDataSource
BBKNN integrationLining up batchesIdenticalbbknn 1.6.0 (max difference 0); Scanorama within 1.8e-6 of 1.7.4Kang 2018batch_methods.py
“Not in reference” flagCells the reference has never seen36% vs 4%B cells held out of the reference: B cluster flagged 36%, elsewhere at most 4%Kang 2018CHANGELOG 0.36.0

Immune repertoire and screens

StepAgreementReferenceDataSource
ClonotypesWhich T or B cells share an ancestorOne-to-onescirpy 0.22 CDR3 amino-acid definition10k-cell 10x PBMC runCHANGELOG 0.32.0
CRISPR screensWhich knockouts actually worked99.3%same class as pertpy 1.0.3 Mixscape (99.65% with exact neighbours)Papalexi 2021, 20,729 cells, 25 targetsCHANGELOG 0.41.0

The co-pilot

StepAgreementReferenceDataSource
Claims checkIs each sentence backed by a fact?0 refuted126 of 194 claims confirmed by rule; the rest left for the judge23 answers on Kang, pbmc_1k_v3, ovaryCHANGELOG 0.19.0

Checks are rerun when a method changes; the CHANGELOG entry of that release records the new number. Found a disagreement? Open an issue.