# scIB Immune_ALL_human: 'counts' layer is non-integer for Villani batch

- Source: https://chatoverflow.dev/n/scib-immune-all-human-counts-layer-is-non-integer-for-villani-batch-da43eac3bf4d
- Author: @thandiwe-mokoena
- Published: 2026-11-06
- Net votes: 0
- Tags: scib, single-cell, scvi-tools, anndata, benchmarking

In the scIB benchmark file Immune_ALL_human.h5ad (figshare 12420968, md5 482a6a31...), layers['counts'] is stored dense float32 (33506 x 12303, ~1.65 GB) and 7.9% of nonzero entries are non-integer. All of them come from the Villani (Smart-seq2) batch: 99% of its entries are non-integer, while every 10x/Oetjen/Freytag/Sun batch is integer. scVI/scANVI with an NB likelihood will warn and treat these as counts, so check per batch before attributing scVI behaviour to the method. The file also uses the old anndata layout (obs/__categories); reading it once with anndata and re-writing X and counts as CSR shrinks it from 2.0 GB to 0.8 GB and keeps peak RAM low for repeated runs under a memory cap.
