{"id":"0ae34db6-9f04-40c1-9eab-8ff941ab6a50","arxiv_id":"2506.01560","paper_version":1,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":4.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":3,"one_line_summary":"SPAC packages AnnData-based phenotyping, edge-corrected Ripley's L statistics, KDTree neighborhood profiling, and interactive visualization into one conda-installable Python workflow for multiplex imaging.","lead":"The authors present SPAC, a Python package and companion Shiny web app for spatial single-cell analysis of multiplex tissue imaging. The paper claims the tool is over 5x faster than existing visualization workflows and lowers coding barriers for biologists.","discovery_kind":"new_method","skeptic_critique":{"model":"deepseek-v4-flash","headline":"The headline 5x speedup is asserted without a benchmark protocol or comparison code; if it is not reproducible on a 10M-cell dataset, the paper's main engineering claim is unsubstantiated.","rationale":"The reader's verdict is CONDITIONAL with MODERATE confidence, emphasizing missing quantitative evidence. My concern is a sharper version of the same gap: the paper's most distinctive quantitative claim, the over-5x speedup on datasets exceeding 10 million cells, is not accompanied by any benchmark that would let a reader verify it. The reader's weakest_assumption singled out the Ripley's L edge correction, but the broader rationale already noted that 'the quantitative claims ... are asserted without benchmarks, hardware details, error bars, or a reproduction script.' I partially agree: the performance claim is central to the paper's pitch as a scalable alternative, and a failed benchmark would directly weaken the abstract's strongest assertion. The edge-correction concern is real but secondary; it affects one specialized statistic and the paper presents it as a design choice, so its failure would narrow rather than negate the central claim. A benchmark is also easier to settle definitively than a statistical-reliability question, making it the natural next check. Since the reader already reached CONDITIONAL for the same class of missing evidence, my read does not change the verdict: SPAC plausibly works, but its headline speed advantage must be demonstrated before the claim should be taken at face value.","tokens_in":4383,"tokens_out":4275,"duration_ms":49954,"concrete_test":"Add a public benchmark script to the repository (e.g., under benchmarks/) that generates a synthetic AnnData object with >10 million cells, runs SPAC's histogram, boxplot, and spatial plotting functions and an equivalent seaborn/Squidpy workflow on the same hardware, and reports median wall-clock times over at least five repeats with machine specifications. If the measured speedup is not at least 5x and visualization times are not in the low-seconds range, the abstract's performance sentences should be revised or qualified.","verdict_should_be":"UNCHANGED","load_bearing_attack":"The central claim that SPAC is a faster alternative to existing workflows (Summary: 'enhances computational efficiency by over 5x' and 'reduces visualization processing times from tens of seconds to a few seconds') is made without any reported benchmark. There is no dataset size specification beyond 'exceeding 10 million cells,' no hardware description, no run protocol, no error bars, and no comparison code against the named baselines (seaborn, Squidpy). The implementation explanation, 'integrating optimized numerical routines from NumPy's compiled C-based backend,' is too underspecified to reproduce or verify. If the 5x figure cannot be obtained under a fair, reproducible comparison at relevant scale, SPAC's primary advertised advantage over existing tools collapses to 'a functional package exists' — a useful but much weaker claim. The reader's weakest assumption concerned the Ripley's L edge correction, which is a legitimate design concern, but it applies to one feature rather than the package's core value proposition; moreover, border exclusion (minus sampling) is a recognized estimator, so the issue there is lack of evidence that it 'enhances statistical reliability,' not probable invalidity. The performance claim is therefore the more load-bearing of the two unvalidated quantitative claims.","agreement_with_reader":"partial"},"referee_report":{"model":"deepseek-v4-flash","summary":"The manuscript describes SPAC, a Python package for spatial single-cell analysis of multiplexed imaging data, together with a companion Shiny application. The paper claims that SPAC achieves over 5x computational speedup by integrating NumPy's compiled backend, reduces visualization processing times from tens of seconds to a few seconds on datasets exceeding 10 million cells, and implements a paired-phenotype, edge-corrected Ripley's L statistic. It outlines five modules (data utils, transformation tools, spatial analysis, visualization, utils), emphasizes interoperability through the AnnData format, and states that SPAC has been used on over 8 datasets with over 30 million cells. The manuscript is a software description without benchmark protocols, evaluation results, or validation of the spatial statistics.","tokens_in":4509,"tokens_out":3193,"duration_ms":34292,"significance":"If the performance and statistical claims are reproducible, SPAC could be a useful and accessible alternative to Squidpy, SCIMAP, Giotto, and SPIA for multiplexed imaging analysis, particularly for non-expert users. The package design, including the use of AnnData, KDTree-based neighborhood profiling, and customizable Plotly visualizations, is sensible, and the public repository and reported unit testing are strengths. However, the central quantitative claims are stated without measurement details or a reproducible protocol, and the statistical reliability claim for the edge correction is unvalidated. As it stands, the paper demonstrates that a functional package exists, but not the evidence-backed improvements that form its main selling points.","major_comments":[{"comment":"The headline claim of 'over 5x' computational speedup and visualization times reduced from tens of seconds to a few seconds on datasets exceeding 10 million cells is not accompanied by any benchmark protocol, hardware specification, dataset description, or error bars. The baseline for the speedup is also ambiguous: seaborn is mentioned for visualization, but no spatial-analysis baseline is defined for the 5x figure. To make this claim load-bearing, please provide a reproducible benchmark script, describe the hardware and dataset characteristics, and report run times for SPAC and the compared tools with variability across runs.","section":"Summary"},{"comment":"The statement that excluding cells near the region's borders within the analytical radius 'mitigat[es] edge-effect biases and enhanc[es] statistical reliability' is unsupported by any simulation, ground-truth validation, or comparison with existing implementations such as Squidpy or SCIMAP. Minus-sampling edge correction is a recognized estimator, but whether the specific paired-phenotype variant improves reliability for the reported spatial statistics is an empirical question; please include a simulation study or a comparison on real data that quantifies bias and variance relative to uncorrected or alternative estimators.","section":"Summary"}],"minor_comments":[{"comment":"The sentence 'SPAC has been used in the analysis of over 8 datasets with over 30 million cells' gives no dataset identifiers, accession numbers, or analysis details; a short supplement listing dataset sizes and types would make this scale claim verifiable.","section":"Structure and Implementation"},{"comment":"The text cites seaborn as a baseline for visualization performance but the reference list contains no seaborn citation; please add the appropriate reference.","section":"Summary"},{"comment":"In the phrase 'easy-of-use across various deployment environments', 'easy-of-use' should be 'ease of use'.","section":"Structure and Implementation"},{"comment":"The description of the visualization module would benefit from naming the specific routines that replace seaborn-based plotting, so that readers can map the performance claim to concrete functions in the repository.","section":"Structure and Implementation"}],"recommendation":"major_revision","confidential_remarks":"The manuscript is a short software description whose central quantitative claims are unsupported by a benchmark protocol or validation. I would recommend that the editor require a reproducible performance benchmark and an empirical evaluation of the edge-corrected Ripley's L variant as conditions for acceptance. Note also that the paper leans heavily on the companion preprint (Liu et al., 2025) for the 'ecosystem' framing; please consider whether that dependency is appropriate for the journal's format."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"Honest take: this is a real package with public code, and the paper describes its workflow clearly. The main selling point is the 5x speedup on datasets over 10 million cells, and the paper simply asserts it without a benchmark protocol, hardware details, or error bars. That is a soft spot you could drive a truck through if you are trying to validate the core pitch. The Ripley's L variant is a minor methodological twist; border exclusion is a known estimator in the spatial statistics literature, so the issue is not that it is wrong but that the paper just says it enhances statistical reliability without showing a simulation or comparison. The reference to 8 datasets and 30M+ cells comes from an unpublished preprint, so it does not carry evidential weight here. What it does well: it fills a genuine usability gap. The Shiny app lowers the coding barrier for biologists, AnnData ensures interop with the wider single-cell ecosystem, and the visualization options are genuinely customizable. The architecture is modular and documented. If you work with multiplex imaging data and want an interactive way to explore segmented cell data, this could be useful. What I would tell a referee: make them run it. The 5x claim is testable because the code is on GitHub. Ask for a reproduction script with timing on a public dataset, plus hardware and software versions. For the Ripley's variant, a simple simulation would settle whether the edge correction helps. The paper is a JOSS-style software description, so it should be judged on whether the code works and is documented, not on scientific novelty. On that bar it mostly passes, but the performance claim needs to be backed. Who it is for: labs doing spatial single-cell analysis at scale, especially biologists comfortable with a GUI. It is not a methods paper; no one should cite it for a new statistical estimator. Verdict: yes, send it to peer review, but with the expectation of substantive revision. The package is real and the claims are checkable, so a serious referee can turn this into a solid contribution.","headline":"A useful, real software package whose headline speedup is asserted rather than measured; the code is public, so a referee can check it.","tokens_in":637,"tokens_out":644,"would_cite":false,"duration_ms":27728,"reading_group":"maybe","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":[],"pacs":[],"model":"deepseek-v4-flash","headline":"SPAC is a Python package and Shiny application that claims to make spatial single-cell analysis of multiplexed imaging data over five times faster and to reduce visualization from tens of seconds to a few seconds on datasets exceeding 10…","keywords":["multiplexed imaging","spatial single-cell analysis","Ripley's L statistic","AnnData","Python package","neighborhood profiling","Shiny application","visualization scalability"],"falsifier":"Simulate a tissue with a known number of cell-type pairs placed at a known clustering strength, run SPAC's paired-phenotype Ripley's L and a standard generalized Ripley's L on the same simulated coordinates, and compare both to the known ground truth; if the border-exclusion version shows larger bias or lower power across multiple tissue shapes, the improvement claim fails.","tokens_in":4077,"feed_emoji":"🔬","tokens_out":7084,"duration_ms":66345,"temperature":0.7,"pith_summary":"SPAC is a Python package paired with a Shiny web application for analyzing multiplexed tissue imaging data at single-cell resolution. The authors aim to show that a biologist-friendly workflow can replace slow, code-heavy spatial analysis pipelines: datasets larger than 10 million cells are handled with over 5x faster computation, and visualization tasks that took tens of seconds finish in a few seconds. They also introduce a paired-phenotype version of Ripley's L statistic with edge correction, meant to measure clustering or dispersion between two predefined cell types more reliably. If these claims hold, SPAC lowers the barrier to sophisticated spatial analysis for researchers who are not expert programmers.","feed_headline":"SPAC turns ten-million-cell imaging analysis into seconds","feed_subtitle":"A new Python package and Shiny app bring scalable spatial statistics and instant plots to multiplexed tissue data.","key_machinery":"The load-bearing pieces are the AnnData object as the unifying data structure; a set of vectorized NumPy-backed routines that replace slower per-cell plotting operations; a KDTree-based neighborhood profiler that counts neighboring phenotypes in user-defined distance bins and stores the result as a three-dimensional array for spatial UMAP; a paired-phenotype Ripley's L statistic whose edge correction works by excluding cells within the analytical radius of a region border; and the Shiny application that renders the AnnData contents interactively. The AnnData object ties them together by carrying expression, phenotype, spatial coordinates, and reduced dimensions in one interoperable format.","core_discovery":"The paper's central claim is that SPAC provides a scalable, accessible, and functionally complete alternative for downstream analysis of multiplexed imaging once segmentation and single-cell feature extraction are done. On the performance side, the claim is that replacing slow general-purpose plotting routines with optimized numerical routines backed by NumPy's compiled C code yields more than a fivefold speedup and cuts visualization latency from tens of seconds to a few seconds on datasets exceeding 10 million cells. On the spatial-statistics side, the claim is that SPAC's variant of Ripley's L, which pairs a center phenotype with a neighbor phenotype and excludes cells near region borders within the analytical radius, offers edge-corrected, reliable measurement of spatial clustering or dispersion between phenotype pairs. SPAC also claims to make the whole workflow reproducible and interactive by storing results in AnnData objects and enabling real-time exploration through the SPAC Shiny application.","pith_inferences":["A direct test of the edge correction on simulated tissues with known spatial patterns would tell whether border exclusion improves statistical reliability or merely shifts bias toward interior cells.","The same NumPy-vectorization strategy that accelerates SPAC's visualizations could plausibly be applied to other Python spatial-omics tools, though the paper does not claim this.","If the speed and accessibility claims reproduce on fresh datasets, SPAC-style paired-phenotype statistics could find use in clinical pathology workflows that need quick spatial readouts.","The paper's lack of a head-to-head benchmark against existing implementations leaves open whether its 5x advantage is specific to visualization or applies to the full analytical pipeline."],"forward_implications":["On datasets larger than 10 million cells, users should see SPAC run core analyses and visualizations more than five times faster, with plot generation dropping from tens of seconds to a few seconds.","Biologists without coding experience can follow a full workflow from segmented imaging data to phenotyping, spatial statistics, and interactive plots using the Shiny interface.","The paired-phenotype Ripley's L offers a direct, edge-corrected test of whether one cell type clusters around another, something generalized implementations do not provide.","KDTree-based neighborhood profiles stored in AnnData can be embedded with spatial UMAP, letting researchers compare local cellular microenvironments across slides and conditions.","Because all results stay in AnnData, SPAC workflows interoperate with the broader single-cell analysis ecosystem."],"supporting_citations":[{"why":"It supplies the generalized Ripley's implementation that SPAC's paired-phenotype variant is contrasted with and the scalability framework that SPAC positions itself against.","marker":"Palla et al., 2022"},{"why":"It provides the spatial distance calculations that SPAC reuses for nearest-neighbor computations.","marker":"Nirmal et al., 2024"},{"why":"It is one of the specialized spatial protein analysis tools that SPAC aims to complement with more customizable visualization and workflow.","marker":"Feng et al., 2023"},{"why":"It is another integrated spatial analysis toolbox that SPAC addresses by offering a modular, biologist-friendly design.","marker":"Dries et al., 2021"},{"why":"It defines one of the multiplexed imaging platforms whose large spatially resolved outputs SPAC is designed to handle.","marker":"Goltsev et al., 2018"},{"why":"It supplies the UTAG algorithm used in SPAC's transformation tools for unsupervised tissue architecture discovery.","marker":"Kim et al., 2022"},{"why":"It supplies the spatial UMAP embedding approach that SPAC's neighborhood profiling output feeds into.","marker":"Giraldo et al., 2021"},{"why":"It describes the broader SPAC ecosystem of which this Python package and Shiny application are a part.","marker":"Liu et al., 2025"},{"why":"It is one of the datasets, part of more than 30 million cells across 8 studies, that SPAC has been applied to.","marker":"Keretsu et al., 2022"}],"fun_headline_variants":["SPAC: 5x faster spatial analysis for millions of cells","SPAC: edge-corrected clustering at single-cell resolution","SPAC: interactive spatial statistics for 10M+ cells","SPAC: cut visualization time from tens of seconds to a few","SPAC: scalable Python tool for spatial single-cell insights"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"The claim that SPAC's spatial statistics are more reliable rests on the untested assumption that excluding cells within the analytical radius of a region's border corrects edge effects instead of just replacing one sampling bias with another.","fun_headline_variants_meta":{"raw":{"variants":["SPAC: 5x faster spatial analysis for millions of cells","SPAC: edge-corrected clustering at single-cell resolution","SPAC: interactive spatial statistics for 10M+ cells","SPAC: cut visualization time from tens of seconds to a few","SPAC: scalable Python tool for spatial single-cell insights"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.001671,"raw_usage":{"total_tokens":6584,"prompt_tokens":859,"completion_tokens":5725,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":475,"completion_tokens_details":{"reasoning_tokens":5638}},"tokens_in":475,"tokens_out":5725,"duration_ms":40281,"temperature":1.0,"reasoning_tokens":5638,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-07T11:38:41.200769+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Simulate a tissue with a known number of cell-type pairs placed at a known clustering strength, run SPAC's paired-phenotype Ripley's L and a standard generalized Ripley's L on the same simulated coordinates, and compare both to the known ground truth; if the border-exclusion version shows larger bias or lower power across multiple tissue shapes, the improvement claim fails.","supporting_citations":[],"review_version":1}