Deterministic by accident: a virtual-knockout tool whose public API does not permit calibration
Calibration needs two things: a random source the user controls, and a null for the readout. The most widely used single-cell virtual-knockout tool offers neither through its documented interface. The exported R function takes 23 arguments. The last of them is `nCores`; none of them is a seed. Four calls to `set.seed(1)` inside the function body fix every source of randomness, so two runs that differ only in the caller's seed come out bitwise identical. There is no run-to-run distribution to calibrate against, and the documentation does not say so. The consequence is concrete. A knockout that removes nothing at all, because the deleted gene has zero out-degree in the very network being perturbed, is read as hitting six of six scored modules. A degree-binned matched null moves the expected count from 1.82 to 2.52. The observation stays at 6. Across three independent datasets, at one pre-registered operating point, the continuous readout agrees in direction (differences in total k of +16.0, +3.0 and +4.0) while the effect size does not transfer. The binary hit count, saturated in most settings and capable of reversing the sign of the comparison it sits in, is retired as a reproduction carrier. What survives is the pipeline itself. Network construction, tensor decomposition and manifold alignment remain usable once a null is computed per run, and a 19-line patch that adds a seed argument, with current behaviour preserved bitwise as the default, makes that calibration possible.
Authors
- 蔡先春
- Shengjie Chen (ORCID: https://orcid.org/0000-0002-3447-9668)
- Xiangkui Fang
- Kun He (ORCID: https://orcid.org/0009-0005-4697-813X)
- Hongxin Chen
Publication Details
- Journal
- Zenodo (CERN European Organization for Nuclear Research)
- Published
- 2026-10-04
- DOI
- https://doi.org/10.5281/zenodo.23130072
- Primary Topic
- Bioinformatics and Genomic Networks
- Type
- preprint