<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" "http://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="methods-article" dtd-version="1.2" xml:lang="en">
    <front>
        <journal-meta>
            <journal-id journal-id-type="pmc">F1000Research</journal-id>
            <journal-title-group>
                <journal-title>F1000Research</journal-title>
            </journal-title-group>
            <issn pub-type="epub">2046-1402</issn>
            <publisher>
                <publisher-name>F1000 Research Limited</publisher-name>
                <publisher-loc>London, UK</publisher-loc>
            </publisher>
        </journal-meta>
        <article-meta>
            <article-id pub-id-type="doi">10.12688/f1000research.173901.1</article-id>
            <article-categories>
                <subj-group subj-group-type="heading">
                    <subject>Method Article</subject>
                </subj-group>
                <subj-group>
                    <subject>Articles</subject>
                </subj-group>
            </article-categories>
            <title-group>
                <article-title>From Quality Control to Visualization: scToolkit for Reproducible Single-Cell RNA-Seq</article-title>
                <fn-group content-type="pub-status">
                    <fn>
                        <p>[version 1; peer review: 3 approved with reservations]</p>
                    </fn>
                </fn-group>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Krolla</surname>
                        <given-names>Christopher</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Data Curation</role>
                    <role content-type="http://credit.niso.org/">Investigation</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Resources</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Visualization</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Das</surname>
                        <given-names>Tonmoy</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Data Curation</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Visualization</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0001-7347-1573</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                    <xref ref-type="aff" rid="a2">2</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Metzger</surname>
                        <given-names>Ariane</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Investigation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <xref ref-type="aff" rid="a1">1</xref>
                    <xref ref-type="aff" rid="a2">2</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Boerries</surname>
                        <given-names>Melanie</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Funding Acquisition</role>
                    <role content-type="http://credit.niso.org/">Resources</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-8900-503X</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                    <xref ref-type="aff" rid="a3">3</xref>
                </contrib>
                <contrib contrib-type="author" corresp="yes">
                    <name>
                        <surname>Chakraborty</surname>
                        <given-names>Sajib</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-8900-503X</uri>
                    <xref ref-type="corresp" rid="c1">a</xref>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="yes">
                    <name>
                        <surname>Andrieux</surname>
                        <given-names>Geoffroy</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Funding Acquisition</role>
                    <role content-type="http://credit.niso.org/">Supervision</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-5389-9481</uri>
                    <xref ref-type="corresp" rid="c2">b</xref>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <aff id="a1">
                    <label>1</label>Institut f&#x00fc;r Medizinische Bioinformatik und Systemmedizin, Albert-Ludwigs-Universitat Freiburg Medizinische Fakultat, Freiburg, Baden-W&#x00fc;rttemberg, Germany</aff>
                <aff id="a2">
                    <label>2</label>Albert-Ludwigs-Universitat Freiburg Fakultat fur Biologie, Freiburg, Baden-W&#x00fc;rttemberg, Germany</aff>
                <aff id="a3">
                    <label>3</label>German Cancer Consortium (DKTK), Partner site Freiburg, a partnership between DKFZ and Medical Center, Albert-Ludwigs-Universitat Freiburg, Freiburg, Baden-W&#x00fc;rttemberg, Germany</aff>
            </contrib-group>
            <author-notes>
                <corresp id="c1">
                    <label>a</label>
                    <email xlink:href="mailto:sajib.chakraborty@uniklinik-freiburg.de">sajib.chakraborty@uniklinik-freiburg.de</email>
                </corresp>
                <corresp id="c2">
                    <label>b</label>
                    <email xlink:href="mailto:geoffroy.andrieux@uniklinik-freiburg.de">geoffroy.andrieux@uniklinik-freiburg.de</email>
                </corresp>
                <fn fn-type="conflict">
                    <p>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>28</day>
                <month>1</month>
                <year>2026</year>
            </pub-date>
            <pub-date pub-type="collection">
                <year>2026</year>
            </pub-date>
            <volume>15</volume>
            <elocation-id>129</elocation-id>
            <history>
                <date date-type="accepted">
                    <day>19</day>
                    <month>1</month>
                    <year>2026</year>
                </date>
            </history>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2026 Krolla C et al.</copyright-statement>
                <copyright-year>2026</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access article distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <self-uri content-type="pdf" xlink:href="https://f1000research.com/articles/15-129/pdf"/>
            <abstract>
                <sec>
                    <title>Background</title>
                    <p>Single-cell RNA sequencing (scRNA-seq) provides high-resolution insights into cellular states, yet its analytical workflows are often fragmented and inconsistently documented. Challenges such as technical noise, dropout events, batch effects, and insufficient reporting of method parameters can hinder reproducibility and the interpretation of biological signals.</p>
                </sec>
                <sec>
                    <title>Methods</title>
                    <p>We developed scToolkit, a workflow built on the Scanpy framework to streamline core steps in scRNA-seq analysis. The toolkit implements quality control, preprocessing, clustering, and multiple downstream analytical modules within a unified Python interface. It also incorporates external resources, including curated cell-marker databases and pathway collections, and employs vectorization, just-in-time compilation, parallelization, and optional GPU acceleration to enhance performance. Comprehensive visualization tools support exploratory and comparative analyses.</p>
                </sec>
                <sec>
                    <title>Results</title>
                    <p>We applied scToolkit to a dataset of immune cells from blood and tonsil tissues to illustrate its functionality. The workflow produced interpretable clustering results, informative differential expression analyses, and clear visual comparisons across tissues and conditions. Enhanced plotting modules facilitated the examination of transcriptional differences across clusters and within individual clusters under matched experimental conditions.</p>
                </sec>
                <sec>
                    <title>Conclusions</title>
                    <p>scToolkit provides an accessible and scalable solution for scRNA-seq data analysis, helping users perform rigorous and reproducible workflows with reduced technical burden. Its integration of curated external resources and high-performance computation improves analytical consistency and usability. The workflow is openly available on GitHub, accompanied by documentation and tutorials to support broad adoption.</p>
                </sec>
            </abstract>
            <kwd-group kwd-group-type="author">
                <kwd>scRNA-seq</kwd>
                <kwd>Scanpy</kwd>
                <kwd>workflow</kwd>
                <kwd>Quality Control</kwd>
                <kwd>Normalization</kwd>
                <kwd>Clustering</kwd>
                <kwd>Database</kwd>
                <kwd>Cell-Type Annotation</kwd>
                <kwd>Visualization</kwd>
            </kwd-group>
            <funding-group>
                <award-group id="fund-1" xlink:href="https://doi.org/10.13039/501100002347">
                    <funding-source>Bundesministerium f&#x00fc;r Bildung und Forschung</funding-source>
                    <award-id>PM4Onco&#x2013;FKZ(01ZZ2322A)</award-id>
                    <award-id>EkoEstMed&#x2013;FKZ(01ZZ2015)</award-id>
                </award-group>
                <award-group id="fund-2" xlink:href="https://doi.org/10.13039/501100001659">
                    <funding-source>Deutsche Forschungsgemeinschaft</funding-source>
                    <award-id>CRC1160(256073931)</award-id>
                    <award-id>CRC/TRR167(259373024)</award-id>
                    <award-id>CRC1453(431984000)</award-id>
                    <award-id>CRC1479(441891347)</award-id>
                    <award-id>TRR359(491676693)</award-id>
                    <award-id>TRR353(471011418)</award-id>
                    <award-id>FOR5476UcarE(493802833)</award-id>
                </award-group>
                <funding-statement>Deutsche Forschungsgemeinschaft&#13;
CRC1160 (256073931), CRC/TRR167 (259373024), CRC1453 (431984000), CRC1479 (441891347), TRR359 (491676693), TRR353 (471011418), FOR 5476 UcarE (493802833)  &#13;
Bundesministerium f&#x00fc;r Bildung und Forschung&#13;
PM4Onco&#x2013;FKZ (01ZZ2322A), EkoEstMed&#x2013;FKZ (01ZZ2015)</funding-statement>
                <funding-statement>
                    <italic>The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.</italic>
                </funding-statement>
            </funding-group>
        </article-meta>
    </front>
    <body>
        <sec id="sec5" sec-type="intro">
            <title>Introduction</title>
            <p>Single-cell RNA sequencing (scRNA-seq) has significantly advanced our ability to profile and characterize cellular heterogeneity within biological systems. Its analytical landscape remains burdened by an excess of redundant computational tools that complicate reproducibility and hinder methodological clarity. Many workflows rely on extensive data reshaping through integration, imputation, or variance-stabilization procedures that lack validated noise models and are often applied to compensate for suboptimal hyperparameter tuning. Clustering strategies further disregard the hierarchical structure of cellular organization, obscuring lineage relationships and biologically meaningful subpopulations.</p>
            <p>The field is characterized by an overwhelming expansion of computational tools,
                <sup>
                    <xref ref-type="bibr" rid="ref1">1</xref>
                </sup> many of which duplicate existing functionality rather than advancing methodology, resulting in a fragmented ecosystem that hinders comparability and reproducibility. Integration across samples, batches, studies, or datasets should be attempted only after hyperparameters have been systematically evaluated to minimize technical variation across datasets. When strong batch effects persist, their underlying sources must be identified and quantified. Variation introduced by library preparation, sequencing chemistry, or cell handling should be addressed both experimentally and analytically rather than corrected algorithmically. Imputation and noise-reduction methods can suppress apparent noise but often distort the original signal. The statistical nature of scRNA-seq noise remains poorly defined
                <sup>
                    <xref ref-type="bibr" rid="ref2">2</xref>
                </sup> and current approaches lack validated models to separate technical from biological variation.
                <sup>
                    <xref ref-type="bibr" rid="ref3">3</xref>
                </sup> Recent studies show that the perceived improvement in signal quality may instead reflect amplified noise.
                <sup>
                    <xref ref-type="bibr" rid="ref3">3</xref>,
                    <xref ref-type="bibr" rid="ref4">4</xref>
                </sup> The limited understanding of the statistical properties of scRNA-seq data is also evident in simulation frameworks. Benchmarking studies typically measure similarity between real and simulated data, but not their differences,
                <sup>
                    <xref ref-type="bibr" rid="ref5">5</xref>
                </sup> leading to evaluations that favor methods reproducing feature-extracted, algorithmic reconstructions of the input, rather than generating biologically meaningful variation.</p>
            <p>Many clustering strategies often ignore the hierarchical structure of cellular organization. Major lineages should first be separated at coarse resolution, followed by finer subdivision to resolve transcriptionally distinct subpopulations. Because Leiden, the standard method for single-cell RNA-seq clustering, operates at fixed granularity,
                <sup>
                    <xref ref-type="bibr" rid="ref6">6</xref>
                </sup> without sequential subclustering, cells from distinct lineages are compared against each other in one-versus-rest differential analyses, obscuring lineage relationships and confounding interpretation.</p>
            <p>Inferring genomic alterations from RNA-based data is conceptually fragile, as transcriptional variation reflects regulation and noise rather than true genomic state. Reference-free methods such as CopyKAT
                <sup>
                    <xref ref-type="bibr" rid="ref7">7</xref>
                </sup> and SCEVAN
                <sup>
                    <xref ref-type="bibr" rid="ref8">8</xref>
                </sup> were published without evaluation on healthy tissue, inevitably leading to false-positive CNV calls.
                <sup>
                    <xref ref-type="bibr" rid="ref9">9</xref>
                </sup> Reference-based tools such as InferCNV (
                <ext-link ext-link-type="uri" xlink:href="https://github.com/broadinstitute/infercnv">https://github.com/broadinstitute/infercnv</ext-link>) and sciCNV
                <sup>
                    <xref ref-type="bibr" rid="ref10">10</xref>
                </sup> must include standardized, well-characterized reference panels validated across multiple tissues to ensure reproducibility and reduce context-dependent bias in CNV detection. Reliable downstream analyses require high-quality data (
                <ext-link ext-link-type="uri" xlink:href="https://kb.10xgenomics.com/hc/en-us/articles/115002022743-What-is-the-recommended-sequencing-depth-for-Single-Cell-3-and-5-Gene-Expression-libraries">https://kb.10xgenomics.com/hc/en-us/articles/
115002022743-What-is-the-recommended-sequencing-depth-for-Single-Cell-3-and-5-Gene-Expression-libraries
</ext-link>) typically exceeding 50,000 reads per cell, with &gt;80% sequencing saturation, a standard rarely met in routine single-cell experiments such as Human Tonsil Atlas atlas.
                <sup>
                    <xref ref-type="bibr" rid="ref11">11</xref>
                </sup>
            </p>
            <p>Trajectory inference and RNA velocity analyses are particularly unstable. Preprocessing differences and quantification inconsistencies can produce divergent or even contradictory trajectories, and structure may emerge even from randomized data,
                <sup>
                    <xref ref-type="bibr" rid="ref12">12</xref>
                </sup> turning technical noise into biological narratives and underscoring the need for standardized preprocessing and validation.</p>
            <p>All user-defined settings, including filtering thresholds and model hyperparameters that directly affect interpretation, are treated as hyperparameters because they determine analytical outcomes and reproducibility. Hyperparameter tuning is frequently underestimated, and many studies fail to document how these values are selected or adjusted.
                <sup>
                    <xref ref-type="bibr" rid="ref13">13</xref>
                </sup> These choices have a direct impact on normalization, integration, and clustering, yet are often applied ad hoc without systematic evaluation. Transparent and reproducible parameter management is essential to ensure that results reflect biological reality rather than computational or technical artifacts. Improper configurations can generate false biomarkers and misguide clinical decisions with potentially harmful consequences.</p>
            <p>To overcome these limitations, we introduce ScToolkit, a consolidated framework that expands the capabilities of Scanpy
                <sup>
                    <xref ref-type="bibr" rid="ref14">14</xref>
                </sup> without fragmenting the ecosystem further. It provides a coherent structure linking all major analysis steps, from quality control and normalization to clustering and downstream interpretation. All analytical choices are stored in a unified configuration within the AnnData object, ensuring transparent, comparable, and reproducible workflows. The framework integrates external biological reference resources and supports vectorization, JIT (Just-In-Time) compilation, and GPU acceleration for efficient large-scale analysis. Together, these features create a unified environment that strengthens analytical precision, preserves biological interpretability, and upholds good scientific practice.</p>
        </sec>
        <sec id="sec6" sec-type="methods">
            <title>Methods</title>
            <sec id="sec7">
                <title>Implementation</title>
                <p>

                    <bold>Data initialization with setup_adata</bold>
                </p>
                <p>In contrast to default 
                    <bold>Scanpy</bold>, where preprocessing parameters must be specified at each call and not centrally stored, 
                    <bold>ScToolkit</bold> introduces a standardized initialization step via the setup_adata function. This augments the AnnData object with:
                    <list list-type="order">
                        <list-item>
                            <label>1.</label>
                            <p>

                                <bold>Configuration dictionary</bold> (adata.uns[&#x201c;config&#x201d;])</p>
                            <p>A unified registry covering quality control, normalization, clustering, plotting, and downstream analyses parameters. It encodes both Scanpy arguments with proper defaults and project-specific arguments, including curated marker-gene handling, organism-specific geneset handling, and file output policies. GPU acceleration is integrated into the config, enabling automatic switching between CPU and GPU backends for PCA, nearest-neighbor search, and clustering.</p>
                        </list-item>
                        <list-item>
                            <label>2.</label>
                            <p>

                                <bold>Statistics registry</bold> (adata.uns[&#x201c;stats&#x201d;])</p>
                            <p>A bookkeeping structure recording which preprocessing steps have been executed, preventing redundant or conflicting operations across the pipeline.</p>
                        </list-item>
                    </list>
                </p>
                <p>Existing configurations and statistics are preserved unless explicitly overwritten, facilitating reproducibility and iterative refinement of analyses. By consolidating the config, state-tracking, and GPU initialization into a single entry point, setup_adata transforms a raw AnnData object into a fully contextualized analysis container. This contrasts with unmodified Scanpy, where users must manually manage parameters, track preprocessing steps, and configure hardware acceleration. From now on if config is stated, it refers to adata.uns[&#x2018;config&#x2019;].</p>
                <p>

                    <bold>

                        <italic toggle="yes">Quality control preprocessing with all_qc_preprocessing
</italic>
</bold>
                </p>
                <p>After initialization, 
                    <bold>ScToolkit</bold> provides a dedicated entry point for systematic quality control via the all_qc_preprocessing function. This standardizes QC annotation, reduces defective cell likelihood, and ensures reproducibility and interoparability across datasets.</p>
                <p>Key operations include:
                    <list list-type="bullet">
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Gene family annotation</bold> using curated organism-specific definitions for mitochondrial, ribosomal, hemoglobins, pseudogenes, and immunoglobulin/T-cell receptor loci. Gene families are projected into adata.var as boolean flags for downstream filtering and visualization. Databases bundled with the package (Ensembl-GTF-derived,
                                <sup>
                                    <xref ref-type="bibr" rid="ref15">15</xref>
                                </sup> HGNC/MGI
                                <sup>
                                    <xref ref-type="bibr" rid="ref16">16</xref>,
                                    <xref ref-type="bibr" rid="ref17">17</xref>
                                </sup>) curated categories, and housekeeping gene sets
                                <sup>
                                    <xref ref-type="bibr" rid="ref18">18</xref>
                                </sup>) extend Scanpy&#x2019;s defaults by systematically tracking additional biologically relevant gene families.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>QC metric calculation</bold> adapts Scanpy&#x2019;s standard metrics by removing redundant keys, simplifying names, and casting percentages to reduced precision (float16) for memory efficiency. All QC keys are tracked in the config for consistent reuse across analyses and reproducibility.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Custom metrics</bold> provide additional sensitivity, including n_unique (spread of expression values per cell), max_count, and top-ratio scores (top_5_ratio, top_10_ratio) to detect overexpression bias. These capture low-quality transcriptomes that would pass default thresholds.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Filtering and tagging</bold> apply thresholds specified in the config (pp.filter_qc_var_obs, pp.filter_qc_var_var). Failures can be flagged or removed, with counts and percentages summarized in adata.uns[&#x201c;stats&#x201d;]. Plots include threshold overlays and clipping of extreme outliers, improving robustness compared to Scanpy defaults.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Config tracking</bold> ensures reproducibility by centralizing all QC-related keys, thresholds, and gene family definitions in adata.uns[&#x201c;config&#x201d;]. This provides transparency and reproducibility absent from default Scanpy, where QC keys are scattered and not formally registered.</p>
                        </list-item>
                    </list>
                </p>
                <p>

                    <bold>

                        <italic toggle="yes">Pre-clustering normalization with Run_all_prep_steps_clustering
</italic>
</bold>
                </p>
                <p>Following QC, Run_all_prep_steps_clustering provides centralized preprocessing and normalization. This integrates normalization, log transformation, scaling, and gene selection into a reproducible pipeline controlled entirely by the config.</p>
                <p>Extensions beyond Scanpy include:
                    <list list-type="bullet">
                        <list-item>
                            <label>&#x2022;</label>
                            <p>Mixture of Regex-based and gene-list gene exclusion and centralized control of preprocessing steps.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>Modular storage of intermediate states in adata.layers, enabling reproducibility and GPU/CPU branching.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>Explicit logging of executed preprocessors in adata.uns[&#x201c;stats&#x201d;][&#x201c;preprocessors_ran&#x201d;], ensuring idempotence and transparency.</p>
                        </list-item>
                    </list>
                </p>
                <p>By consolidating these steps, the function guarantees consistent inputs for clustering, avoiding redundant calls and user errors.</p>
                <p>

                    <bold>

                        <italic toggle="yes">Clustering orchestration with cluster_SC_scanpy_like
</italic>
</bold>
                </p>
                <p>
cluster_SC_scanpy_like structures PCA, neighborhood graph construction, Leiden clustering, and UMAP embedding in a single highly configurable function, providing a failsafe and streamlined workflow beyond Scanpy&#x2019;s separate steps. Each step can be perfomed on a CPU or GPU.</p>
                <p>Enhancements include:
                    <list list-type="bullet">
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>PCA</bold> with variance-based selection of informative components, capped by data rank, to estimate the appropriate number of components, n_pcs.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Neighbor graph construction</bold> using the selected n_pcs, aligned with explained variance contribution, avoiding arbitrary choices such as manual elbow selection.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>
search_for_leiden_resolution and search_for_neighbor_params systematically vary resolution, n_pcs, and n_neighbors to identify parameter sets that yield stable and biologically meaningful cluster separation, returning the corresponding UMAPs with marker overlays, density plots, and separation metrics.</p>
                        </list-item>
                    </list>
                </p>
                <p>This ensures reproducible and biologically meaningful clustering without manual trial-and-error.</p>
                <p>

                    <bold>

                        <italic toggle="yes">Downstream analysis and visualization</italic>
</bold>
                </p>
                <p>run_downstream integrates core post-clustering functionality:
                    <list list-type="bullet">
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Differential expression (DEG)</bold> with parallelized Wilcoxon tests (standard z-score approximation and JIT-compiled permutation-based variants), and group-specific DEG handling.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>Accurate log-fold change calculation per group. Unlike the simplified approach implemented in Scanpy, this method ensures formal correctness without compromising performance.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Export utilities</bold> generating per-cluster, per-direction CSVs with both filtered and unfiltered genes, annotated against MSigDB modules and user-defined gene sets.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Marker and gene set handling</bold> with bi-directional conversion between dictionaries and DataFrames, autosplitting of large sets for plotting, and prioritized ranking by highly variable gene (HVG) status.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Automated visualization</bold> conditioned on the config and saved into structured folder hierarchies, covering UMAP overlays in discrete and continuos, dotplots, violin plots, heatmaps, and ranked gene plots.</p>
                        </list-item>
                    </list>
                </p>
                <p>These downstream steps extend Scanpy&#x2019;s minimal plotting and DEG support into a comprehensive, automated framework for reproducible structured interpretation.</p>
            </sec>
            <sec id="sec8">
                <title>Operation</title>
                <p>ScToolkit is distributed as a Docker container bundling both 
                    <bold>Python</bold> and 
                    <bold>R</bold> environments to ensure reproducibility and straightforward deployment across platforms as far as possible for GPU usage. For users preferring local installation, the GitHub repository provides multiple conda environment definitions (.yml files) tailored to different use cases:
                    <list list-type="bullet">
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Default environment</bold>: GPU-enabled with RAPIDS and CUDA libraries preconfigured.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>No-GPU environment</bold>: Fallback for systems without CUDA support, such as recent macOS devices or machines limited to onboard GPUs.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Complete maintainer environment</bold> for development and continuous integration and documentation updating.</p>
                        </list-item>
                    </list>
                </p>
                <p>Documentation is generated with 
                    <bold>Sphinx</bold> and kept synchronized with the source code, ensuring that both API references and tutorials remain current. The repository includes 
                    <bold>extensive Jupyter notebooks</bold> that demonstrate full end-to-end analyses, from raw data initialization to clustering and downstream interpretation. Additional notebooks showcase advanced features such as curated gene family handling, GPU acceleration, and automated DEG export.</p>
                <p>This dual strategy, providing both containerized execution and conda-based environments, ensures accessibility for beginners while maintaining flexibility for advanced users and developers. Together with reproducible notebooks, this structure guarantees that ScToolkit can be deployed consistently in diverse computational settings, from laptops to GPU clusters.</p>
            </sec>
        </sec>
        <sec id="sec9">
            <title>Use cases: Integration of immune cell scRNA-seq datasets from blood and tonsil reveals tissue-specific transcriptomic signatures</title>
            <sec id="sec10">
                <title>Preprocessing and quality control</title>
                <p>For use case analysis, we accessed publicly available single-cell RNA sequencing (scRNA-seq) resources. Specifically, we retrieved datasets from the DISCO database (
                    <ext-link ext-link-type="uri" xlink:href="https://disco.bii.a-star.edu.sg/">https://disco.bii.a-star.edu.sg/</ext-link>)
                    <sup>
                        <xref ref-type="bibr" rid="ref19">19</xref>
                    </sup> including scRNA-seq profiles from human tonsil (n = 92,114 cells) and peripheral blood (n = 169,686 cells). In addition, we obtained a tonsil scRNA-seq dataset from the Tonsil Atlas database
                    <sup>
                        <xref ref-type="bibr" rid="ref11">11</xref>
                    </sup> encopassing 462,352 cells. The full use-case analysis described below is available in the Supplementary Data as a PDF export of the corresponding Jupyter Notebooks.</p>
                <p>Next, we applied a rigorous quality control workflow to isolate high-quality single-cell transcriptomes and used violin plots to assess data quality across conditions and tissues (
                    <xref ref-type="fig" rid="f1">Figure 1A</xref>). Cells were excluded if they expressed fewer than 500 genes, fewer than 700 total counts, or more than 18,000 counts. To minimize the inclusion of low-complexity libraries, cells with fewer than 10 unique genes were removed. Similarly cells with more than 5,000 genes were removed to prevent doublets. Cells with &gt;10% mitochondrial content were excluded to reduce bias from dying or stressed cells. In addition, cells with &lt;1.5% ribosomal transcripts or &gt;1% HGNC-annotated pseudogene expression were filtered out (
                    <xref ref-type="fig" rid="f1">
Figure 1A</xref>). At the gene level, only features expressed in at least 2,000 cells, with a minimum of seven unique counts, a minimum of 2,000 total counts, and at least 10 maximum counts across cells, were retained. Beyond the standard parameters (n_genes and n_counts), we included n_unique as a measure of distributional spread, providing a more general indicator of transcript diversity than mean- or variance-based metrics that assume normality. The percentages of housekeeping (pct_HK_gtex), intergenic (pct_GTF_IG_genes), and pseudogene (pct_HGNC_pseudogene) expression offer complementary insights into sample composition and annotation fidelity. The displayed metrics represent a selected subset of all available quality control measures, shown here to demonstrate the extended functionality and interpretability of the workflow. In 
                    <xref ref-type="fig" rid="f1">
Figure 1A</xref>, only the top 10% quantile range of each metric is displayed, emphasizing the high end of the distributions where duplicate or outlier cells typically accumulate. This focused view enables refined inspection of potential overrepresented or low-complexity transcriptomes that define the upper QC thresholds. The shown metrics represent a subset of all available QC measures, selected to demonstrate the workflow&#x2019;s extended functionality and interpretability.</p>
                <fig fig-type="figure" id="f1" orientation="portrait" position="float">
                    <label>
Figure 1. </label>
                    <caption>
                        <title>Quality control assessment and database-driven refinement of Blood and Tonsil Cells.</title>
                        <p>(A) Violin plots generated with plot_qc_violins, showing standard and extended quality control metrics across groups for setting up upper QC thresholds. Each violin represents the distribution of n_genes and n_counts per cell, alongside n_unique as a measure of transcript count spread. Additional panels display pct_HK_gtex (housekeeping genes from GTEx), (immunoglobulin genes from the Ensembl GTF), and pct_HGNC_pseudogene (pseudogenes from HGNC). The dashed red line marks the applied filtering threshold, and the function displays only the defined top quantile range (here, the top 10%) to provide a focused and precise view for setting refined upper thresholds.</p>
                        <p>(B) Bar plot summarizing cross-database overlap of B-cell gene sets against non B-cell gene-sets. The first bar represents our consensus B-cell signature derived from high-recurrence markers across databases, while the remaining bars correspond to the individual B-cell gene sets used in its construction. Bar heights indicate the summed Jaccard index of each gene set against all non&#x2013;B-cell gene sets in the reference databases, quantifying cross-category similarity and shown on the left legend. Red dots, connected by a line, denote the total number of genes in each respective gene set, with the corresponding scale shown on the right legend.</p>
                    </caption>
                    <graphic id="gr1" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/191759/3fe06615-bbe9-4a83-bf0b-64a21ebbee8e_figure1.gif"/>
                </fig>
                <p>The results reveal that parameters such as blood of solid tumor patient (BOSTP), non-tumor disease tissue (NTDT), and Tonsil removed during surgery for oropharyngeal papillomatosis (TRDSFOP) show generally lower levels across n_genes, n_counts, and n_unique, lowering the expectation of doublets within these samples. In contrast, the consistent percent of house-keeping genes (pct_HK_gtex) values across all conditions indicate viable and transcriptionally active cells, suggesting comparable baseline activity among cell types. The pct_GTF_IG_genes distributions show a distinct multimodal pattern, where the upper mode indicates the presence of plasma cells. Finally, elevated pct_HGNC_pseudogene values in BONTDP, BOSTP, NTDT, and Disco_blood_normal flag the presence of subsets of low-quality or degraded cells. The remaining groups display lower pseudogene percentages consistent with higher-quality transcriptomic profiles.</p>
                <p>To explore the initial annotation of cell clusters, we utilized a curated library of cell type -specific gene signatures from four complementary resources: PanglaoDB,
                    <sup>
                        <xref ref-type="bibr" rid="ref20">20</xref>
                    </sup> CellMarker,
                    <sup>
                        <xref ref-type="bibr" rid="ref21">21</xref>
                    </sup> SCType,
                    <sup>
                        <xref ref-type="bibr" rid="ref22">22</xref>
                    </sup> and CellTypist (v2).
                    <sup>
                        <xref ref-type="bibr" rid="ref23">23</xref>
                    </sup> To increase tissue relevance, each database was then subset signatures associated with tonsil and blood, ensuring that the resulting markers reflected the diversity of resident immune cell populations within these compartments. This process demonstrates the database integration and refinement functionality of the workflow, we used three core functions: get_ref_db(), search_database(), and get_element_and_counts_with_positional_sum(). First, get_ref_db() collects all available cell type-specific genesets from the supported databases (PanglaoDB, CellTypist, CellMarker, and SCType). Next, search_database() extracts the subset of genesets matching a specified cell type, defined by the user using regular expression.</p>
                <p>Notably, substantial heterogeneity was observed across gene-signatures for the same annotated cell type. To address this, we generated consensus signatures by integrating overlapping features. We calculated the frequency of occurrence of each gene across signatures for a given cell type, ranked genes by their frequency, and defined the top 20 most recurrent genes as the consensus signature (
                    <xref ref-type="fig" rid="f1">
Figure 1B</xref>). Specifically, we used get_element_and_counts_with_positional_sum() to rank all genes by their recurrence across the retrieved genesets, generating consensus signature by taking the top 20 genes. As an exampler, we retrieved cross-database overlap of B-cell gene sets and subsequently generated their consensus signature. For each B cell signature from the databases and the B cell consensus signature, the summed Jaccard index was calculated against all nonB cell gene sets in the reference databases. Results showed that our B cell consensus signature exhibits a minimum similarity (relatively low Jaccard index) to nonB cell signatures compared to the database redived B cell signatures (
                    <xref ref-type="fig" rid="f1">
Figure 1B</xref>). This prevents the selection of unspecific gene-set signature from many existing signature ressources. The refined scToolkit reference represents a consensus-based, high-confidence collection of cell-type-specific gene signatures, illustrating the workflow&#x2019;s ability to generalize this procedure to any cell-type-specific refinement task.</p>
            </sec>
            <sec id="sec11">
                <title>Clustering and cell type annotation of immune cells from blood and tonsil</title>
                <p>Following quality control, we performed unsupervised clustering on the combined dataset using the Leiden algorithm. Cells were projected into UMAP space, where coloring by tissue origin revealed intermixed clustering of cells from Blood and Tonsil (
                    <xref ref-type="fig" rid="f2">
Figure 2A</xref>). The UMAP density distributions show a continuous embedding without visible batch effects between blood- and tonsil-derived cells. Cells from both tissues occupy overlapping yet structured regions, indicating comparable transcriptomic profiles and proper integration of datasets (
                    <xref ref-type="fig" rid="f2">
Figure 2A</xref>). To assign cell identities, we applied single-cell level gene set enrichment analysis using over-representation analysis algorithm (ORA) with our consensus gene signatures. Each cell was assigned the identity for which its transcriptome showed the maximum ORA enrichment score (Idxmax). The major cell types identified included B cells, dendritic cells (DCs), granulocytes, macrophages, NK cells, T cells, and plasma cells (
                    <xref ref-type="fig" rid="f2">
Figure 2B</xref>). To validate these annotations, we compared our results with reference annotations (referred to as ground-truth annotation from hereafter) provided by the DISCO and Tonsil Atlas databases (
                    <xref ref-type="fig" rid="f2">
Figure 2C</xref>). The idxmax ORA assignments align with the broad ground-truth annotation (
                    <xref ref-type="fig" rid="f2">
Figure 2C</xref>), demonstrating that clusters capture major immune and myeloid populations while maintaining distinct lineage boundaries. Notably, cell types of similar identity cluster in close proximity within the joint embedding. This confirms that the refinement and preprocessing preserve biological relationships rather than dataset origin. For instance, cells belonging to the same category (e.g., B cells or T cells) cluster together regardless of tissue origin. This highlights the robustness and reliability of our workflow, demonstrating its ability to successfully integrate datasets from different tissues without the need for specialized batch-correction algorithms (
                    <xref ref-type="fig" rid="f2">
Figure 2A-B</xref>).</p>
                <fig fig-type="figure" id="f2" orientation="portrait" position="float">
                    <label>
Figure 2. </label>
                    <caption>
                        <title>Comparison of cell type refinement, reference annotations, and clustering results.</title>
                        <p>(A) UMAP density maps generated with plot_embedding_density(), showing 0&#x2013;1 scaled cell densities estimated using FFT-based kernel density estimation (KDEpy). The upper panel represents cells of blood origin, the lower those from tonsil tissue.</p>
                        <p>(B) UMAP projection colored by the idxmax categories derived from over-representation analysis (ORA) of the cell type refinement gene sets. Each cell is assigned to the cell type with the highest enrichment score if the adjusted p-value is below the defined significance threshold, illustrating clear segregation of major immune populations and preservation of myeloid lineage relationships.</p>
                        <p>(C) Corresponding UMAP annotated with the broad reference cell type labels from DISCO and the Tonsil Atlas, where closely related subtypes (e.g., B-cell subclasses) were combined into generalized categories.</p>
                        <p>(D) Heatmap of Jaccard similarity scores between refined (idxmax ORA) and reference annotations, generated with plot_jaccard_heatmap_cluster_comparison(). Values are 0&#x2013;1 scaled, with highest overlaps along the diagonal, reflecting accurate matching between methods. Cross-lineage similarities (e.g., Monocyte&#x2013;Macrophage, Monocyte&#x2013;Granulocyte) indicate biologically plausible relationships.</p>
                        <p>(E) UMAP displaying Leiden clusters annotated by their predominant reference-derived cell types, using only the ground truth labels.</p>
                    </caption>
                    <graphic id="gr2" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/191759/3fe06615-bbe9-4a83-bf0b-64a21ebbee8e_figure2.gif"/>
                </fig>
                <p>To quantitatively validate/support our annotations, we computed the Jaccard similarity index between our ORA-based assignments and the reference (ground-truth) labels. The resulting heatmap (
                    <xref ref-type="fig" rid="f2">
Figure 2D</xref>) quantitatively supports this correspondence, with high overlap values between identical or closely related cell types and minor off-diagonal similarities reflecting lineage proximity. Concordance as reflected by the Jaccard index (
                    <xref ref-type="fig" rid="f2">
Figure 2D</xref>), demonstrated the strongest agreement (Jaccard index = 1) for the most abundant populations, including B cells, T/NK cells, granulocytes, plasma cells, DCs, and macrophages. Of note, in ground-truth annotation T and NK cells were combined into a single category, and kept separate in T and NK cells in Idxmax ORA annotations. Interestingly, cells classified as &#x201c;unknown&#x201d; within Idxmax ORA annotations, showed a distribution of Jaccard Scores across many ground-truth cell types with the highest score for T/NK cell categroy. To annotate the clusters we selected the predominant cell types of the ground truth (
                    <xref ref-type="fig" rid="f2">
Figure 2E</xref>). The Leiden clustering labeled with ground-truth cell types (
                    <xref ref-type="fig" rid="f2">
Figure 2E</xref>) further shows that clusters are composed of cells from both tissues and databases, confirming that integration was successful and not driven by dataset-specific biases.</p>
            </sec>
            <sec id="sec12">
                <title>Differential pathways overlap analysis between blood and tonsil</title>
                <p>To investigate the functional roles of the annotated cell types, we performed a pathway enrichment analysis based on differentially expressed genes (DEGs). DEGs were first identified by comparing each cell type specific cluster against all remaining clusters and stringently filtered to ensure robustness. DEGs were retained only if expressed in at least 15% of cells in one of the compared cell type resolved cluster, with an adjusted p-value &lt; 0.0001 and an absolute log
                    <sub>2</sub> fold change &#x2265; 0.5. Following filtering, DEGs are intersected with hallmark gene sets from MSigDB. For each pathway, the z-scores of Wilcoxon rank-test u-statistics from overlapping genes are summed and scaled to &#x2013;1 to 1. This analysis revealed distinct pathway overlap patterns across cell types. Myeloid cell cluster showed strong overlap of inflammatory signaling pathways, including inflammatory response, TNF-&#x03b1; signaling, and complement activation (
                    <xref ref-type="fig" rid="f3">
Figure 3A</xref>). Notably, differences also emerged between T-cell subclusters where the C3: T-cell cluster showed selective overlap of Allograft Rejection and TNF-&#x03b1; signaling genes, which were absent in C1: T-cell cluster, suggesting functional specialization among T-cell subtypes (
                    <xref ref-type="fig" rid="f3">
Figure 3A</xref>).</p>
                <fig fig-type="figure" id="f3" orientation="portrait" position="float">
                    <label>
Figure 3. </label>
                    <caption>
                        <title>Downstream analysis of differential expression and pathway activity.</title>
                        <p>(A) Heatmap of hallmark pathway activity across cell type-annotated clusters, generated from differentially expressed genes (DEGs) meeting stringent thresholds (adjusted p &lt; 10-4,|log
                            <sub>2</sub>FC|&gt; 0.5, &#x2265;15% of cells expressing in either group). DEGs were mapped to hallmark gene sets from MSigDB, and Wilcoxon rank test u-statistics were aggregated as summed z-scores, normalized between &#x2013;1 and 1. Only pathways or clusters with at least one normalized score exceeding &#x00b1;0.5 are displayed, emphasizing those with the strongest pathway activity changes across clusters. The heatmap summarizes pathway activity across clusters, highlighting dominant biological programs.</p>
                        <p>(B) Split dot plot summarizing differential expression results across cell type&#x2013;annotated clusters. Each row represents a cluster and each column one of the top five differentially expressed genes. Dot color encodes the log
                            <sub>2</sub> fold-change between the cluster and all remaining cells, while dot size reflects the fraction of expressing cells in test cell type (left) and in any other (right). Both axes are hierarchically clustered to highlight shared expression patterns and relationships among clusters and marker genes.</p>
                        <p>(C) Split dot plot comparing differential expression between blood- and tonsil-derived cells within each cell type&#x2013;annotated cluster. Layout and scaling follow panel (B). Dot color encodes the log
                            <sub>2</sub> fold-change between Blood and Tonsil in a particular cluster, while dot size reflects the fraction of expressing cells in Blood (left) and Tonsil (right). Rows represent clusters whereas columns represent the top ten differentially expressed genes per comparison, hierarchically clustered to reveal shared condition-specific regulation across clusters.</p>
                        <p>(D) Split violin plots for selected genes (
                            <italic toggle="yes">HLA-DRA
</italic>, 
                            <italic toggle="yes">HLA-C
</italic>, 
                            <italic toggle="yes">HLA-DQA1</italic>) across clusters, grouped by tissue of origin. Each violin is divided into halves representing blood (left) and tonsil (right) conditions; inner boxes mark medians and interquartile ranges, and points show individual cells.</p>
                    </caption>
                    <graphic id="gr3" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/191759/3fe06615-bbe9-4a83-bf0b-64a21ebbee8e_figure3.gif"/>
                </fig>
                <p>Another visualization option is to show the top DEGs for each cluster as split dot plots, where the log2 fold change is color coded (
                    <xref ref-type="fig" rid="f3">
Figure 3B</xref>). The percent expression of DEGs is displayed as split circles, with the left half representing the expression of the cluster of interest and the right half representing expression of all other cells combined. Corroborating with earlier findings, DEG analysis revealed two transcriptionally distinct T cell populations. C3: T-cell cluster was characterized by high expression of canonical T cell receptor (TCR) components (
                    <italic toggle="yes">CD3E</italic>, 
                    <italic toggle="yes">CD3D</italic>, 
                    <italic toggle="yes">CD3G</italic>) together with 
                    <italic toggle="yes">IL32</italic>, consistent with a population of conventional, activated T-cells (
                    <xref ref-type="fig" rid="f3">
Figure 3B</xref>). In contrast, the C1: T-cell cluster lacked strong expression of 
                    <italic toggle="yes">CD3</italic> genes and was instead enriched for signaling-related transcripts, including 
                    <italic toggle="yes">INPP4B</italic> (PI3K/AKT signaling), 
                    <italic toggle="yes">RASGRF2</italic> (Ras/MAPK activation), and 
                    <italic toggle="yes">PLCL1</italic> (calcium signaling regulation), as well as 
                    <italic toggle="yes">CATSPERB</italic> and 
                    <italic toggle="yes">OPRM1</italic>, suggesting a specialized, non-classical functional state (
                    <xref ref-type="fig" rid="f3">
Figure 3B</xref>). The two Bcell clusters (C0: B-cell and C4: B-cell) also showed differential marker experssion. C4: B-cell cluster express genes characteristic of mature B-cells, including B-cell receptor (BCR) components (
                    <italic toggle="yes">HLA-DRA
</italic>, 
                    <italic toggle="yes">CD79B</italic>, 
                    <italic toggle="yes">CD79A</italic>), a B-cell surface antigen (
                    <italic toggle="yes">MS4A1</italic>), and a molecule involved in antigen presentation that&#x2019;s also expressed in B cells (
                    <italic toggle="yes">CD74</italic>) (
                    <xref ref-type="fig" rid="f3">
Figure 3B</xref>). C0: B-cell cluster consists of genes related to B-cell activation, survival, and differentiation, with 
                    <italic toggle="yes">KHDRBS2</italic> and 
                    <italic toggle="yes">TRIO</italic> involved in signaling, 
                    <italic toggle="yes">CDK14</italic> and 
                    <italic toggle="yes">PRKCE</italic> playing roles in cell cycle and signaling respectively, and 
                    <italic toggle="yes">KCNQ5</italic> being less specific to B-cells but also involved in cell processes (
                    <xref ref-type="fig" rid="f3">
Figure 3B</xref>).</p>
                <p>Next, we investigated compartment-specific transcriptional differences within the same immune cell types. For this analysis, we selected clusters that contained a comparable number of cells from both blood and tonsil, including C2: Myeloid-cell, C3: T-cell, and C4: B-cell clusters. Differential expression analysis (DEG) was then performed between the two compartments (blood and tonsil) to identify genes driving tissue-specific adaptations within each cell type. DEG analysis revealed a distinct enrichment of genes associated with immune regulation and tissue adaptation in the tonsil (
                    <xref ref-type="fig" rid="f3">
Figure 3C</xref>). A comparative analysis of myeloid cell clusters from blood and tonsil revealed distinct transcriptional signatures. Blood myeloid cells were characterized by high expression of 
                    <italic toggle="yes">S100A4</italic>, 
                    <italic toggle="yes">S100A6</italic>, 
                    <italic toggle="yes">S100A8</italic>, and 
                    <italic toggle="yes">S100A9</italic>, genes, which are associated with inflammation, cytoskeletal dynamics, and acute immune activation (
                    <xref ref-type="fig" rid="f3">
Figure 3C</xref>). In contrast, tonsil myeloid cells showed elevated levels of 
                    <italic toggle="yes">HLA-DRA
</italic>, 
                    <italic toggle="yes">HLA-DPB1</italic>, and 
                    <italic toggle="yes">HLA-DQA1</italic>, reflecting enhanced antigen-presenting capacity, together with increased expression of 
                    <italic toggle="yes">SERPINF1</italic>, and 
                    <italic toggle="yes">DNASE1L3</italic>, indicative of tissue adaptation and immune regulatory functions (
                    <xref ref-type="fig" rid="f3">
Figure 3C</xref>). Similarly, DEG analysis revealed distinct transcriptional features between blood and tonsillar T-cells. Compared with tonsillar T cells, blood-derived T cells showed higher expression of the interferon-stimulated genes 
                    <italic toggle="yes">IFITM1</italic> and 
                    <italic toggle="yes">RARRES3</italic>, together with increased 
                    <italic toggle="yes">AES</italic>, 
                    <italic toggle="yes">PTPRCAP</italic>, and 
                    <italic toggle="yes">SEPT7</italic>, indicative of an interferon-responsive and activated circulating T-cell state (
                    <xref ref-type="fig" rid="f3">
Figure 3C</xref>). In contrast, tonsillar T cells exhibited elevated levels of 
                    <italic toggle="yes">TRAC</italic> and 
                    <italic toggle="yes">IGKC</italic>, reflecting active T-cell receptor signaling and local immune activation within the lymphoid tissue (
                    <xref ref-type="fig" rid="f3">
Figure 3C</xref>). Analysis of distinct transcriptional profiles between blood and tonsillar B-cells revealed that blood B-cells exhibited higher expression of 
                    <italic toggle="yes">JUN</italic>, 
                    <italic toggle="yes">JUNB</italic>, 
                    <italic toggle="yes">DUSP1</italic>, and 
                    <italic toggle="yes">TSC22D3</italic>, indicating activation of immediate-early response and stress-regulatory pathways characteristic of circulating immune cells (
                    <xref ref-type="fig" rid="f3">
Figure 3C</xref>). In contrast, tonsillar B-cells showed increased expression of 
                    <italic toggle="yes">ACTG1</italic>, consistent with enhanced cytoskeletal remodeling and local activation within the lymphoid microenvironment (
                    <xref ref-type="fig" rid="f3">
Figure 3C</xref>). Together, these results indicate that tonsil immune cells adopt a tissue-adapted, immunoregulatory phenotype that differs markedly from blood-derived immune populations.</p>
                <p>Analysis of HLA gene expression revealed compartment-specific patterns across immune cell types (
                    <xref ref-type="fig" rid="f3">
Figure 3D</xref>). 
                    <italic toggle="yes">HLA-C
</italic>, a class I molecule, showed elevated expression in blood myeloid, B-cells, and T-cells, reflecting stronger class I&#x2013;mediated antigen presentation in circulating immune populations. In contrast, 
                    <italic toggle="yes">HLA-DRA
</italic> and 
                    <italic toggle="yes">HLA-DQA1</italic>, both class II molecules, were highly expressed in tonsillar myeloid cells (
                    <xref ref-type="fig" rid="f3">
Figure 3D</xref>), consistent with enhanced antigen-presenting activity within the lymphoid tissue. These findings highlight differential regulation of antigen presentation pathways between blood and tonsil compartments.</p>
            </sec>
        </sec>
        <sec id="sec13" sec-type="discussion">
            <title>Discussion</title>
            <p>Single-cell transcriptomics, a core component of the Method of the Year 2013,
                <sup>
                    <xref ref-type="bibr" rid="ref24">24</xref>
                </sup> has become a cornerstone of modern molecular biology. It enables the unprecedented dissection of cellular heterogeneity, lineage relationships, and transcriptional dynamics across tissues and conditions.
                <sup>
                    <xref ref-type="bibr" rid="ref25">25</xref>
                </sup> Yet, despite this technological progress, analytical workflows remain fragmented, inconsistently parameterized, and difficult to reproduce.</p>
            <p>ScToolkit addresses these very limitations by unifying preprocessing, normalization, clustering, and visualization within a single reproducible framework. At its core, configuration and metadata tracking are embedded in the AnnData object, ensuring transparent provenance and consistent parameter management. This integration eliminates external bookkeeping and enables analyses to be reproduced or transferred across datasets without loss of information or interpretability.</p>
            <p>The integration of immune cell transcriptomes from blood and tonsil demonstrates the value of this design. Consistent preprocessing preserved the biological signal without introducing artificial batch effects. Consensus marker-based annotation recovered canonical immune populations, and similarity analysis confirmed agreement with reference annotations. Differences in HLA class I and class II expression across tissues reflected genuine biological contrasts, showing that standardized preprocessing reveals true variation rather than computational artifacts.</p>
            <p>The biological plausibility of our findings further supports the robustness of the framework. In our use case, blood-derived cells exhibited inflammatory and stress-responsive transcriptional signatures, while tonsillar cells were enriched for antigen presentation and immune regulation (as shown previously).
                <sup>
                    <xref ref-type="bibr" rid="ref11">11</xref>
                </sup> These patterns emerged from careful parameter control rather than overfitting. Subclustering was intentionally avoided because the available sequencing depth of approximately 25,000 reads per cell did not support confident resolution of minor subpopulations.
                <sup>
                    <xref ref-type="bibr" rid="ref26">26</xref>
                </sup>
            </p>
            <p>Although advances in computational methodology continue to expand the analytical toolkit for single-cell transcriptomics, no post hoc algorithm can replace a well-designed experiment. In datasets with limited sequencing depth or insufficient replication, complex denoising, imputation, trajectory, or copy number inference methods risk emphasizing structure that does not exist. These approaches often operate where signal and noise are inseparable, obscuring the boundary between enhancement and artifact generation. Until upstream protocols achieve higher RNA integrity, lower ambient contamination, and greater depth per cell, conservative and transparent analyses are preferable to speculative modeling. ScToolkit therefore deliberately omits such post hoc inference modules, prioritizing reproducibility and interpretability. As computational methods mature, they must be benchmarked on biologically diverse, non-simulated datasets generated across independent laboratories. Only under such conditions can new modules be integrated modularly without compromising scientific rigor.</p>
            <p>Reliable downstream analysis requires data of sufficient quality. Sequencing depth, saturation, mapping rates, and base-calling accuracy directly determine the confidence of downstream inference. Even large-scale atlas datasets such as the Tonsil Atlas reflect the field&#x2019;s tendency toward insufficient sequencing depth, allowing lineage resolution but limiting subpopulation analysis. We recommend that studies report sequencing depth, saturation, phred quality, mitochondrial and ribosomal fractions, and other key quality metrics to ensure reproducibility and comparability across laboratories.</p>
            <p>We urge the field to reconsider certain analytical conventions. For example, neighborhood graphs may be more robust when computed directly on log-transformed data rather than PCA-reduced dimensions. Raw (non-normalized) counts can be used for differential expression, while log or log-normalized data should be avoided for Wilcoxon ranking, as numerical instabilities can introduce artificial ranks. While our implementation adheres to current good practices for compatibility, we advise these conventions should be revised to better reflect the properties of scRNA-seq
 data.</p>
            <p>ScToolkit extends rather than replaces existing infrastructure. It provides a coherent environment that combines computational performance with transparent parameterization and curated biological annotation. In summary, it strengthens reproducibility and interpretability as cornerstones of rigorous scientific practice.</p>
        </sec>
        <sec id="sec14">
            <title>Software availibility</title>
            <p>The complete source code for scToolkit is freely available at. Documentation and usage instructions are provided.
                <list list-type="bullet">
                    <list-item>
                        <label>-</label>
                        <p>Source code available from: 
                            <ext-link ext-link-type="uri" xlink:href="https://github.com/AG-Boerries/scToolkit">https://github.com/AG-Boerries/scToolkit</ext-link>
                        </p>
                    </list-item>
                    <list-item>
                        <label>-</label>
                        <p>Archived software available from: 
                            <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.17876855">https://doi.org/10.5281/zenodo.17876855</ext-link>
                        </p>
                    </list-item>
                    <list-item>
                        <label>-</label>
                        <p>License: BSD 3-Clause &#x201c;New&#x201d; or &#x201c;Revised&#x201d; License</p>
                    </list-item>
                </list>
            </p>
        </sec>
        <sec id="sec15">
            <title>Data sources</title>
            <p>Human Tonsil Cell Atlas v2: 
                <ext-link ext-link-type="uri" xlink:href="https://zenodo.org/records/8373756">https://zenodo.org/records/8373756</ext-link>
                <sup>
                    <xref ref-type="bibr" rid="ref11">11</xref>
                </sup>
            </p>
            <p>Tonsil v1 (h5ad): 
                <ext-link ext-link-type="uri" xlink:href="https://zenodo.org/records/14196253/files/tonsil.h5ad">https://zenodo.org/records/14196253/files/tonsil.h5ad</ext-link>
                <sup>
                    <xref ref-type="bibr" rid="ref19">19</xref>
                </sup>
            </p>
            <p>Blood v1.1 (h5ad): 
                <ext-link ext-link-type="uri" xlink:href="https://zenodo.org/records/14196253/files/blood.h5ad">https://zenodo.org/records/14196253/files/blood.h5ad</ext-link>
                <sup>
                    <xref ref-type="bibr" rid="ref19">19</xref>
                </sup>
            </p>
        </sec>
        <sec id="sec16">
            <title>Use of AI-assisted editing tools</title>
            <p>ChatGPT (OpenAI, version 5.1) was used solely as a language-editing assistant to improve readability, correct typographical errors, and refine grammar. It was not used to generate, interpret, or modify scientific content, analyses, results, or conclusions. All scientific writing, data interpretation, and methodological descriptions were produced entirely by the authors.</p>
        </sec>
    </body>
    <back>
        <sec id="sec19" sec-type="data-availability">
            <title>Data availability</title>
            <p>The datasets analyzed in this study were obtained from publicly available repositories. Single-cell RNA sequencing data from human tissues were downloaded from the DISCO database 
                <ext-link ext-link-type="uri" xlink:href="https://www.immunesinglecell.com/">https://www.immunesinglecell.com/</ext-link>
                <sup>
                    <xref ref-type="bibr" rid="ref19">19</xref>
                </sup> and the Human Tonsil Cell Atlas 
                <ext-link ext-link-type="uri" xlink:href="https://zenodo.org/records/10373041">https://zenodo.org/records/10373041</ext-link>
                <sup>
                    <xref ref-type="bibr" rid="ref11">11</xref>
                </sup> (version 2).</p>
            <p>All datasets were processed and analyzed in accordance with the data-usage policies of the respective sources.</p>
            <p>The Human Tonsil Cell Atlas v2 is available under a 
                <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</ext-link> license: 
                <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.8373756">https://doi.org/10.5281/zenodo.8373756</ext-link>.
                <sup>
                    <xref ref-type="bibr" rid="ref11">11</xref>
                </sup>
            </p>
            <p>The DISCO Tonsil and Blood datasets are available under a 
                <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</ext-link> license: 
                <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.14196253">https://doi.org/10.5281/zenodo.14196253</ext-link>.
                <sup>
                    <xref ref-type="bibr" rid="ref19">19</xref>
                </sup>
            </p>
        </sec>
        <ack>
            <title>Acknowledgments</title>
            <p>We thank Andreas Tsouris and Eyleen Corrales for valuable discussions and constructive feedback on this study.</p>
        </ack>
        <ref-list>
            <title>References</title>
            <ref id="ref1">
                <label>1</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Zappia</surname>
                            <given-names>L</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Phipson</surname>
                            <given-names>B</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Oshlack</surname>
                            <given-names>A</given-names>
                        </name>
</person-group>:
                    <article-title>Exploring the single-cell RNA-seq analysis landscape with the scRNA-tools database.</article-title>
                    <source>

                        <italic toggle="yes">PLoS Comput. Biol.</italic>
</source>
                    <year>2018</year>;<volume>14</volume>:<fpage>e1006245</fpage>.</mixed-citation>
            </ref>
            <ref id="ref2">
                <label>2</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Khetan</surname>
                            <given-names>N</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Single-cell RNA sequencing algorithms underestimate changes in transcriptional noise compared to single-molecule RNA imaging.</article-title>
                    <source>

                        <italic toggle="yes">Cell Reports Methods.</italic>
</source>
                    <year>2024</year>;<volume>4</volume>:<fpage>100933</fpage>.
                    <pub-id pub-id-type="doi">10.1016/j.crmeth.2024.100933</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref3">
                <label>3</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Crowell</surname>
                            <given-names>HL</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Morillo Leonardo</surname>
                            <given-names>SX</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Soneson</surname>
                            <given-names>C</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>The shaky foundations of simulating single-cell RNA sequencing data.</article-title>
                    <source>

                        <italic toggle="yes">Genome Biol.</italic>
</source>
                    <year>2023</year>;<volume>24</volume>:<fpage>1</fpage>&#x2013;<lpage>19</lpage>.</mixed-citation>
            </ref>
            <ref id="ref4">
                <label>4</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Hou</surname>
                            <given-names>W</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Ji</surname>
                            <given-names>Z</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Ji</surname>
                            <given-names>H</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>A systematic evaluation of single-cell RNA-sequencing imputation methods.</article-title>
                    <source>

                        <italic toggle="yes">Genome Biol.</italic>
</source>
                    <year>2020</year>;<volume>21</volume>:<fpage>1</fpage>&#x2013;<lpage>30</lpage>.</mixed-citation>
            </ref>
            <ref id="ref5">
                <label>5</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Cao</surname>
                            <given-names>Y</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Yang</surname>
                            <given-names>P</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Yang</surname>
                            <given-names>JYH</given-names>
                        </name>
</person-group>:
                    <article-title>A benchmark study of simulation methods for single-cell RNA sequencing data.</article-title>
                    <source>

                        <italic toggle="yes">Nat. Commun.</italic>
</source>
                    <year>2021</year>;<volume>12</volume>:<fpage>1</fpage>&#x2013;<lpage>12</lpage>.</mixed-citation>
            </ref>
            <ref id="ref6">
                <label>6</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Traag</surname>
                            <given-names>VA</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Waltman</surname>
                            <given-names>L</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Eck</surname>
                            <given-names>NJ</given-names>
                            <prefix>van</prefix>
                        </name>
</person-group>:
                    <article-title>From Louvain to Leiden: guaranteeing well-connected communities.</article-title>
                    <source>

                        <italic toggle="yes">Sci. Rep.</italic>
</source>
                    <year>2019</year>;<volume>9</volume>:<fpage>1</fpage>&#x2013;<lpage>12</lpage>.</mixed-citation>
            </ref>
            <ref id="ref7">
                <label>7</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Gao</surname>
                            <given-names>R</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Delineating copy number and clonal substructure in human tumors from single-cell transcriptomes.</article-title>
                    <source>

                        <italic toggle="yes">Nat. Biotechnol.</italic>
</source>
                    <year>2021</year>;<volume>39</volume>:<fpage>599</fpage>&#x2013;<lpage>608</lpage>.
                    <pub-id pub-id-type="pmid">33462507</pub-id>
                    <pub-id pub-id-type="doi">10.1038/s41587-020-00795-2</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref8">
                <label>8</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>De Falco</surname>
                            <given-names>A</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Caruso</surname>
                            <given-names>F</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Su</surname>
                            <given-names>XD</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>A variational algorithm to detect the clonal copy number substructure of tumors from scRNA-seq data.</article-title>
                    <source>

                        <italic toggle="yes">Nat. Commun.</italic>
</source>
                    <year>2023</year>;<volume>14</volume>:<fpage>1</fpage>&#x2013;<lpage>13</lpage>.</mixed-citation>
            </ref>
            <ref id="ref9">
                <label>9</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Song</surname>
                            <given-names>M</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Benchmarking copy number aberrations inference tools using single-cell multi-omics datasets.</article-title>
                    <source>

                        <italic toggle="yes">Brief. Bioinform.</italic>
</source>
                    <year>2025</year>;<volume>26</volume>.
                    <pub-id pub-id-type="doi">10.1093/bib/bbaf076</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref10">
                <label>10</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Mahdipour-Shirayeh</surname>
                            <given-names>A</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Erdmann</surname>
                            <given-names>N</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Leung-Hagesteijn</surname>
                            <given-names>C</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>sciCNV: high-throughput paired profiling of transcriptomes and DNA copy number variations at single-cell resolution.</article-title>
                    <source>

                        <italic toggle="yes">Brief. Bioinform.</italic>
</source>
                    <year>2022</year>;<volume>23</volume>:<fpage>1</fpage>&#x2013;<lpage>15</lpage>.</mixed-citation>
            </ref>
            <ref id="ref11">
                <label>11</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Massoni-Badosa</surname>
                            <given-names>R</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>An atlas of cells in the human tonsil.</article-title>
                    <source>

                        <italic toggle="yes">Immunity.</italic>
</source>
                    <year>2024</year>;<volume>57</volume>:<fpage>379</fpage>&#x2013;<lpage>399.e18</lpage>.
                    <pub-id pub-id-type="pmid">38301653</pub-id>
                    <pub-id pub-id-type="doi">10.1016/j.immuni.2024.01.006</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref12">
                <label>12</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Soneson</surname>
                            <given-names>C</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Srivastava</surname>
                            <given-names>A</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Patro</surname>
                            <given-names>R</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Preprocessing choices affect RNA velocity results for droplet scRNA-seq data.</article-title>
                    <source>

                        <italic toggle="yes">PLoS Comput. Biol.</italic>
</source>
                    <year>2021</year>;<volume>17</volume>:<fpage>e1008585</fpage>.</mixed-citation>
            </ref>
            <ref id="ref13">
                <label>13</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Lan</surname>
                            <given-names>C</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Tang</surname>
                            <given-names>X</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Liu</surname>
                            <given-names>C</given-names>
                        </name>
</person-group>:
                    <article-title>A survey of biclustering and clustering methods in clustering different types of single-cell RNA sequencing data.</article-title>
                    <source>

                        <italic toggle="yes">Brief. Funct. Genomics.</italic>
</source>
                    <year>2025</year>;<volume>24</volume>:<fpage>10</fpage>.
                    <pub-id pub-id-type="doi">10.1093/bfgp/elaf010</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref14">
                <label>14</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Wolf</surname>
                            <given-names>FA</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Angerer</surname>
                            <given-names>P</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Theis</surname>
                            <given-names>FJ</given-names>
                        </name>
</person-group>:
                    <article-title>SCANPY: Large-scale single-cell gene expression data analysis.</article-title>
                    <source>

                        <italic toggle="yes">Genome Biol.</italic>
</source>
                    <year>2018</year>;<volume>19</volume>:<fpage>1</fpage>&#x2013;<lpage>5</lpage>.</mixed-citation>
            </ref>
            <ref id="ref15">
                <label>15</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Dyer</surname>
                            <given-names>SC</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Ensembl 2025.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2025</year>;<volume>53</volume>:<fpage>D948</fpage>&#x2013;<lpage>D957</lpage>.
                    <pub-id pub-id-type="pmid">39656687</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkae1071</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref16">
                <label>16</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Seal</surname>
                            <given-names>RL</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Genenames.org: the HGNC resources in 2023.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2023</year>;<volume>51</volume>:<fpage>D1003</fpage>&#x2013;<lpage>D1009</lpage>.
                    <ext-link ext-link-type="uri" xlink:href="http://Genenames.org">Genenames.org</ext-link>
                    <pub-id pub-id-type="pmid">36243972</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkac888</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref17">
                <label>17</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Baldarelli</surname>
                            <given-names>RM</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Mouse Genome Informatics: an integrated knowledgebase system for the laboratory mouse.</article-title>
                    <source>

                        <italic toggle="yes">Genetics.</italic>
</source>
                    <year>2024</year>;<volume>227</volume>.
                    <pub-id pub-id-type="doi">10.1093/genetics/iyae031</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref18">
                <label>18</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Hounkpe</surname>
                            <given-names>BW</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Chenou</surname>
                            <given-names>F</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Lima</surname>
                            <given-names>F</given-names>
                            <prefix>de</prefix>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>HRT Atlas v1.0 database: redefining human and mouse housekeeping genes and candidate reference transcripts by mining massive RNA-seq datasets.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2021</year>;<volume>49</volume>:<fpage>D947</fpage>&#x2013;<lpage>D955</lpage>.
                    <pub-id pub-id-type="doi">10.1093/nar/gkaa609</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref19">
                <label>19</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Li</surname>
                            <given-names>M</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Rediscovering publicly available single-cell data with the DISCO platform.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2025</year>;<volume>53</volume>:<fpage>D932</fpage>&#x2013;<lpage>D938</lpage>.
                    <pub-id pub-id-type="pmid">39535037</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkae1108</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref20">
                <label>20</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Franz&#x00e9;n</surname>
                            <given-names>O</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Gan</surname>
                            <given-names>LM</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Bj&#x00f6;rkegren</surname>
                            <given-names>JLM</given-names>
                        </name>
</person-group>:
                    <article-title>PanglaoDB: a web server for exploration of mouse and human single-cell RNA sequencing data.</article-title>
                    <source>

                        <italic toggle="yes">Database.</italic>
</source>
                    <year>2019</year>;<volume>2019</volume>:<fpage>46</fpage>.
                    <pub-id pub-id-type="doi">10.1093/database/baz046</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref21">
                <label>21</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Hu</surname>
                            <given-names>C</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>CellMarker 2.0: an updated database of manually curated cell markers in human/mouse and web tools based on scRNA-seq data.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2023</year>;<volume>51</volume>:<fpage>D870</fpage>&#x2013;<lpage>D876</lpage>.
                    <pub-id pub-id-type="pmid">36300619</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkac947</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref22">
                <label>22</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Ianevski</surname>
                            <given-names>A</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Giri</surname>
                            <given-names>AK</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Aittokallio</surname>
                            <given-names>T</given-names>
                        </name>
</person-group>:
                    <article-title>Fully-automated and ultra-fast cell-type identification using specific marker combinations from single-cell transcriptomic data.</article-title>
                    <source>

                        <italic toggle="yes">Nat. Commun.</italic>
</source>
                    <year>2022</year>;<volume>13</volume>:<fpage>1</fpage>&#x2013;<lpage>10</lpage>.</mixed-citation>
            </ref>
            <ref id="ref23">
                <label>23</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Xu</surname>
                            <given-names>C</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Automatic cell-type harmonization and integration across Human Cell Atlas datasets.</article-title>
                    <source>

                        <italic toggle="yes">Cell.</italic>
</source>
                    <year>2023</year>;<volume>186</volume>:<fpage>5876</fpage>&#x2013;<lpage>5891.e20</lpage>.
                    <pub-id pub-id-type="pmid">38134877</pub-id>
                    <pub-id pub-id-type="doi">10.1016/j.cell.2023.11.026</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref24">
                <label>24</label>
                <mixed-citation publication-type="journal">
                    <article-title>Method of the Year 2013.</article-title>
                    <source>

                        <italic toggle="yes">Nat. Methods.</italic>
</source>
                    <year>2014</year>;<volume>11</volume>:<fpage>1</fpage>.
                    <pub-id pub-id-type="pmid">24524124</pub-id>
                    <pub-id pub-id-type="doi">10.1038/nmeth.2801</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref25">
                <label>25</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Luecken</surname>
                            <given-names>MD</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Benchmarking atlas-level data integration in single-cell genomics.</article-title>
                    <source>

                        <italic toggle="yes">Nat. Methods.</italic>
</source>
                    <year>2022</year>;<volume>19</volume>:<fpage>41</fpage>&#x2013;<lpage>50</lpage>.
                    <pub-id pub-id-type="pmid">34949812</pub-id>
                    <pub-id pub-id-type="doi">10.1038/s41592-021-01336-8</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref26">
                <label>26</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Menon</surname>
                            <given-names>V</given-names>
                        </name>
</person-group>:
                    <article-title>Clustering single cells: a review of approaches on high-and low-depth single-cell RNA-seq data.</article-title>
                    <source>

                        <italic toggle="yes">Brief. Funct. Genomics.</italic>
</source>
                    <year>2018</year>;<volume>17</volume>:<fpage>240</fpage>&#x2013;<lpage>245</lpage>.
                    <pub-id pub-id-type="pmid">29236955</pub-id>
                    <pub-id pub-id-type="doi">10.1093/bfgp/elx044</pub-id>
                </mixed-citation>
            </ref>
        </ref-list>
    </back>
    <sub-article article-type="reviewer-report" id="report476446">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.191759.r476446</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Baldoni</surname>
                        <given-names>Pedro L</given-names>
                    </name>
                    <xref ref-type="aff" rid="r476446a1">1</xref>
                    <xref ref-type="aff" rid="r476446a2">2</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-9510-8326</uri>
                </contrib>
                <aff id="r476446a1">
                    <label>1</label>University of Pittsburgh, Pittsburgh, USA</aff>
                <aff id="r476446a2">
                    <label>2</label>Walter and Eliza Hall Institute of Medical Research, Melbourne, Victoria, Australia</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>5</day>
                <month>5</month>
                <year>2026</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2026 Baldoni PL</copyright-statement>
                <copyright-year>2026</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport476446" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.173901.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve-with-reservations</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>The authors present scToolkit, a Python workflow built on top of Scanpy that aims to consolidate and standardise the major steps of scRNA-seq analysis. The presented method has functionalities spanning quality control, clustering, downstream visualisation, and differential expression analyses. Reproducibility in single-cell analysis is a genuine and well-documented challenge, and a unified framework embedded in the AnnData object, as presented here, is a sensible choice. The authors present a case study of immune cell data from blood and tonsil to showcase the method. Below I present some major and minor comments that I believe would strengthen the paper.</p>
            <p> </p>
            <p> Major</p>
            <p> </p>
            <p> - In the Introduction, the authors present an extensive list of current practices in single-cell data analysis alongside reasonable critiques. However, many of the issues raised, such as those caused by imputation or trajectory inference, are not actually addressed by scToolkit and are only marginally related to the paper. This distracts readers from the actual contributions of the work. A more concise introduction focused on motivating scToolkit's design decisions would improve the flow of the paper.</p>
            <p> </p>
            <p> - To strengthen the paper, I believe the authors could add a more thorough discussion of the practical benefits of reproducibility afforded by the config tracking system, ideally through a side-by-side comparison between scToolkit and plain Scanpy. For example, is it possible to quantify the time savings and degree of reproducibility in a scRNA-seq dataset reanalysis with and without scToolkit? That would more clearly highlight the benefits of scToolkit from the perspective of a practising bioinformatician.</p>
            <p> </p>
            <p> - Beyond what other reviewers have already commented regarding the limitations of Wilcoxon rank-sum tests for scRNA-seq data, I believe the authors should consider implementing or at least discussing the possibility of pseudo-bulk analysis within scToolkit, which remains the gold-standard approach for differential gene expression in single-cell data.</p>
            <p> </p>
            <p> - It would be helpful if the authors provided code examples illustrating how users can run scToolkit directly in the paper. That would give readers a one-stop reference for getting started with the presented method.</p>
            <p> </p>
            <p> - There is a mismatch between the cluster labels in Figure 2E and those in Figures 2B&#x2013;C. The authors should address this inconsistency.</p>
            <p> </p>
            <p> - In the second-to-last paragraph of the Discussion, the authors make recommendations for best practices in scRNA-seq data analysis ("We urge the field to reconsider certain analytical conventions."). The authors should consider adding citations to support those suggestions, or include analyses in the paper to substantiate them.</p>
            <p> </p>
            <p> Minor</p>
            <p> </p>
            <p> - The caption of Figure 1 needs to be fixed: "Additional panels display pct_HK_gtex (housekeeping genes from GTEx), (immunoglobulin genes from the Ensembl GTF), and pct_HGNC_pseudogene (pseudogenes from HGNC)." A label appears to be missing before the parenthetical description of immunoglobulin genes.</p>
            <p> </p>
            <p> - Typo on page 8: "As an exampler" should be "As an example."</p>
            <p> </p>
            <p> - It would be clearer to use a diverging colour palette (e.g. blue&#x2013;white&#x2013;red) with white centred at zero in Figures 3B&#x2013;C.</p>
            <p> </p>
            <p> - "ScToolkit" and "scToolkit" are used interchangeably throughout the manuscript. A single form should be adopted and applied consistently.</p>
            <p> </p>
            <p> - There is a missing URL in the Software availability section: "The complete source code for scToolkit is freely available at. Documentation and usage instructions are provided."</p>
            <p>Is the rationale for developing the new method (or application) clearly explained?</p>
            <p>Partly</p>
            <p>Is the description of the method technically sound?</p>
            <p>Partly</p>
            <p>Are the conclusions about the method and its performance adequately supported by the findings presented in the article?</p>
            <p>Partly</p>
            <p>If any results are presented, are all the source data underlying the results available to ensure full reproducibility?</p>
            <p>Yes</p>
            <p>Are sufficient details provided to allow replication of the method development and its use by others?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Statistics, bioinformatics, transcriptomics</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above.</p>
        </body>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report454905">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.191759.r454905</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>K&#x00f6;ster</surname>
                        <given-names>Johannes</given-names>
                    </name>
                    <xref ref-type="aff" rid="r454905a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0001-9818-9320</uri>
                </contrib>
                <aff id="r454905a1">
                    <label>1</label>Institute for AI in Medicine (IKIM), University of Duisburg-Essen, Essen, Germany</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>23</day>
                <month>4</month>
                <year>2026</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2026 K&#x00f6;ster J</copyright-statement>
                <copyright-year>2026</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport454905" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.173901.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve-with-reservations</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>The authors present scToolkit, a Python library for conducting single cell analysis. The library is motivated by the shortcomings of the ad-hoc nature of many single cell analyses conducted nowadays, which may lack (hyper-) parameter documentation, QC, and suffer from robustness and thus reproducibility issues. ScToolkit is presented as an approach to simplify the use of scanpy in a way that overcomes these issues.</p>
            <p> </p>
            <p> 
                <bold>Comments</bold> 
                <list list-type="order">
                    <list-item>
                        <p>Page 1: word repetition (Human Tonsil Atlas atlas)</p>
                    </list-item>
                    <list-item>
                        <p>Page 4/5: For some of the mentioned improvements over scanpy, I wonder whether the effort has been made to contribute them upstream? The improvements could still be described in this paper, but all scanpy users would benefit. Example: in the QC metric calculation section (Page 4) the authors say that scanpy's metrics have been adapted by simplifying names, removing redundant keys, and using more efficient data types for certain values (16-bit floats for percentages).</p>
                    </list-item>
                    <list-item>
                        <p>Page 5: The clustering improvements should be explained more formally and proven. For example, they could be validated/benchmarked in this manuscript, ideally with a given (simulated or extensively manually curated) ground truth.</p>
                    </list-item>
                    <list-item>
                        <p>Page 5: I wonder why DEG analysis relies on Wilcoxon instead of utilizing RNA-seq specific DE models like EdgeR (cf. the single-cell DE benchmark paper by Soneson et al.). This would allow batch handling and have more accurate distributional assumptions. Also, Wilcoxon assumes that the distributions are equal under the null hypothesis. Such an assumption might be violated by effects caused by interaction with other genes or batch effects.</p>
                    </list-item>
                    <list-item>
                        <p>Page 5: the authors should explicitly show what's wrong with scanpy's fold changes and how they are fixed by scToolkit.</p>
                    </list-item>
                    <list-item>
                        <p>Page 5: the mentioned bi-directional conversion between dictionaries and dataframes is unclear to the reader at this stage. Do the authors mean that gene sets can be provided in both formats? If that is meant, why bi-directional, since scToolkit must have decided for one internal representation. Maybe I just don't get it and it needs more explanation, sorry :-).</p>
                    </list-item>
                    <list-item>
                        <p>Page 6: the used thresholds for keeping cells/genes in the use case should be motivated somehow. How where they chose, and what was the rationale each time.</p>
                    </list-item>
                    <list-item>
                        <p>Page 6: I am confused by the wording when cell exclusion is explained. First, the authors say that cells were excluded when fewer than 500 genes were expressed, in the next sentence they say cells with fewer than 10 unique genes were removed. Is the latter also expressed genes? How is expression of a gene defined in terms of the minimum read count for that, what would the additional "unique" mean compared to the sentence before?</p>
                    </list-item>
                    <list-item>
                        <p>Figure 1A: Almost all violin plots become narrower towards the lower bound of the plot. This is irritating since the authors mentioned that only the top 10% quantile range of each metric is shown. Could it be that the violin plots have been estimated on that part of the data only and we see a boundary effect of the density estimate?</p>
                    </list-item>
                    <list-item>
                        <p>Figure 1A: The claim that pct_GTF-ID_genes is multimodal is not well visible in the plots. I wonder whether features like that would not be better visible with vertical histograms instead of violin plots. That would also induce less model specific bias, make the superposition of the individual dots superfluous (if bin-sizes are chosen small enough to capture local features accurately) and avoid density estimate artifacts towards the boundaries.</p>
                    </list-item>
                    <list-item>
                        <p>Page 8: the strategy for obtaining consensus marker genes for cell types leaves some questions to me. I would like to read about a motivation of choosing the top 20. I can imagine that there will be cell types were choosing 20 means included some that are unique to certain databases and others were choosing 20 means skipping genes that are still recurrent for the same cell type in some of the databases. Wouldn't it be better to define a criterion like "the gene has to occur for the cell type in at least 3 of the 4 databases" instead of taking a fixed number from a ranked list?</p>
                    </list-item>
                    <list-item>
                        <p>Page 8, top: "exampler" -&gt; example; "redived" is not an english word I think...</p>
                    </list-item>
                    <list-item>
                        <p>Page 8, clustering: I cannot follow the argument how the UMAPs in Fig 2A show that there are no batch effects. In particular since UMAP can, depending on the used parameters, suffer from both artificially glueing stuff together as well as artificially ripping stuff apart.</p>
                    </list-item>
                    <list-item>
                        <p>Page 8, clustering: I am confused abouve Figure 2D. How can the Granulocyte cells derive from ORA have a jaccard score of almost 1 with both the Monocyte and the Granulocytes in the reference annotation? Further, the label of the x-axis seems to be missing.</p>
                    </list-item>
                    <list-item>
                        <p>Page 8, clustering: I think there is a contradiction. At the beginning of the paragraph the authors claim there there are no (visible) batch effects between the cell origins. At the end of the paragraph, the authors claim that their approach makes specialized batch correction unnecessary. However, if this dataset does not exhibit batch effects, how can analyzing it show that batch effect correction is not needed?</p>
                    </list-item>
                    <list-item>
                        <p>Figure 2E: why does the legend show T-cell for the green cluster while it is annotated as B-cell with both ORA and the reference annotation?</p>
                    </list-item>
                    <list-item>
                        <p>Page 8, differential expression analysis: cf. my comment on Wilcoxon from above. The authors should at least verify that for non-diffexp genes the distributional properties are the same. I am further unsure how the tests were performed: cluster of interest against each other cluster separately or against the union of all other clusters? In the latter case, the Wilcoxon assumption about the same distribution under the null hypothesis would be violated for sure (e.g. generating mix distributions with up in the first other cluster, down in the second other cluster).</p>
                    </list-item>
                    <list-item>
                        <p>Page 8, differential expression analysis: what adjustment method is used for the p-values? Since the genes in a cell might depend on each other in their expressions, was an FDR control method used that accounts for this, e.g. Benjamini&#x2013;Yekutieli?</p>
                    </list-item>
                    <list-item>
                        <p>Page 8, differential expression analysis: although probably somewhat accepted, I would like to see a discussion about the effects of the essential pseudoreplication approach that is taken here. Cells are treated as independent although they aren't. Will this hamper the results? Can the effect be quantified? What alternatives are there (e.g. mixed effects models) and why have they been ruled out here? Maybe one could even compare and see whether the results are different then?</p>
                    </list-item>
                    <list-item>
                        <p>Software: the usage/installation instructions are overcomplex. Since scToolkit is a Python library, I strongly suggest to properly package it and upload it to pypi as well as providing a conda recipe in Bioconda. This way, people can simply install it with a conda frontend of their choice (conda, pixi, micromamba; note: mamba is deprecated and unmaintained nowadays). No need for all those complex steps outlined in the readme. The recipe on Bioconda can even include the required R packages for the seurat compatibility layer. In case you want to avoid those dependencies for the average user, the recipe can have two outputs, a minimal one without the R stuff, and a full one including those.</p>
                    </list-item>
                    <list-item>
                        <p>Reproducibility: in particular since this is mentioned in the paper, one would expect the code for the data analysis conducted in the use case to be available. Moreover, it should be available ideally in a way such that the reader can obtain the data and reproduce all figures automatically.</p>
                    </list-item>
                </list>
            </p>
            <p>Is the rationale for developing the new method (or application) clearly explained?</p>
            <p>Yes</p>
            <p>Is the description of the method technically sound?</p>
            <p>Partly</p>
            <p>Are the conclusions about the method and its performance adequately supported by the findings presented in the article?</p>
            <p>Partly</p>
            <p>If any results are presented, are all the source data underlying the results available to ensure full reproducibility?</p>
            <p>Yes</p>
            <p>Are sufficient details provided to allow replication of the method development and its use by others?</p>
            <p>Partly</p>
            <p>Reviewer Expertise:</p>
            <p>bioinformatics, reproducibility</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above.</p>
        </body>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report464687">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.191759.r464687</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Hemberg</surname>
                        <given-names>Martin</given-names>
                    </name>
                    <xref ref-type="aff" rid="r464687a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0001-8895-5239</uri>
                </contrib>
                <contrib contrib-type="author">
                    <name>
                        <surname>Ammula</surname>
                        <given-names>Pranay</given-names>
                    </name>
                    <xref ref-type="aff" rid="r464687a1">1</xref>
                    <role>Co-referee</role>
                </contrib>
                <aff id="r464687a1">
                    <label>1</label>Brigham and Women's Hospital, Boston, Massachusetts, USA</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>2</day>
                <month>4</month>
                <year>2026</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2026 Hemberg M and Ammula P</copyright-statement>
                <copyright-year>2026</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport464687" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.173901.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve-with-reservations</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>Here, Krolla et al, present scToolkit, a python package which is meant to enhance the reproducibility of scanpy. The single cell field currently has a very rich ecosystem of computational methods which on the one hand is advantageous as it provides users with many options. On the other hand, it can also be bewildering and make it difficult for a user to gain an overview. A particular challenge, not just for single cell genomics, is to ensure reproducible findings. As such, scToolkit is a welcome addition, that seeks to facilitate and streamline the analysis process. I believe that it will be of use to the many researchers using Scanpy for their analysis, but I nevertheless think that the authors need to address the following issues:</p>
            <p> 1. The introduction is quite fragmented, and it reads more like bullet point list of specific problems rather than trying to frame a problem, discussing the state of the art, and existing solutions. In particular, it would be useful to mention if there are other packages (including for R) that have similarities to scToolkit.</p>
            <p> 2. The set of functions available for storing QC information seem very useful. However, I believe that the authors have missed an opportunity here. What would be very useful is to have a set of functions for comparing and visualizing QC metrics across studies to facilitate these types of comparisons.</p>
            <p> 3. I suspect that the gene sets used in fig 1b have a lot of overlap. Would it be possible to also draw an upset plot to illustrate this?</p>
            <p> 4. The authors highlight differences across the various metrics in 1a, but it would be useful to have statistical tests to support these claims.</p>
            <p> 5. Just eyeballing the data to conclude that there are no batch effects is not all that convincing. I suggest that the authors use one or more quantitative metrics (e.g. batch entropy) to assess.</p>
            <p> 6. In 2d, the information from the numbers and the colors are redundant. I would suggest using absolute numbers instead to add more information.</p>
            <p> 7.The environment YAML file for installation does not function properly on HPC systems as it experiences missing dependencies and complete build failures. The authors should make sure to test across more platforms.</p>
            <p> 8.The code needs both 'SLURM_JOB_CPUS_PER_NODE' and 'marsilea' to run correctly because it requires users to create a database symlink manually, without which the execution fails, and this becomes clear only during execution.</p>
            <p> 9.The function 'get_n_unique()' does not process dense inputs as mentioned, while the function 'save_h5ad()' requires users to execute 'setup_adata()' before using it, this requirement remains undocumented.</p>
            <p>Is the rationale for developing the new method (or application) clearly explained?</p>
            <p>Partly</p>
            <p>Is the description of the method technically sound?</p>
            <p>Yes</p>
            <p>Are the conclusions about the method and its performance adequately supported by the findings presented in the article?</p>
            <p>Yes</p>
            <p>If any results are presented, are all the source data underlying the results available to ensure full reproducibility?</p>
            <p>Yes</p>
            <p>Are sufficient details provided to allow replication of the method development and its use by others?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Computational genomics</p>
            <p>We confirm that we have read this submission and believe that we have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however we have significant reservations, as outlined above.</p>
        </body>
    </sub-article>
</article>
