# SeuratIntegrate: an R package to facilitate the use of integration methods with Seurat

Florian Specque, Aurélien Barré, Macha Nikolski, Domitille Chalopin

► To cite this version:

Florian Specque, Aurélien Barré, Macha Nikolski, Domitille Chalopin. SeuratIntegrate: an R package to facilitate the use of integration methods with Seurat. Bioinformatics, 2025, 41 (6), pp.btaf358. 10.1093/bioinformatics/btaf358. hal-05338852

HAL Id: hal-05338852

https://hal.science/hal-05338852v1

Submitted on 30 Oct 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Gene expression

## SeuratIntegrate: an R package to facilitate the use of integration methods with Seurat

Florian Specque<fnref n="1" />,*, Aurélien Barré<fnref n="2" />, Macha Nikolski<fnref n="1" />,<fnref n="2" />, Domitille Chalopin<fnref n="1" />,*

### Abstract

**Motivation:** Integrating multiple datasets has become an increasingly common task in scRNA-seq analysis. The advent of single-cell atlases adds further complexity, as they often involve combining data with nested batch effects. While common tools such as Seurat offer access to batch-correction methods, the diversity of available options remains limited. With growing evidence that integration method performance varies significantly between datasets, making an informed decision in selecting the most appropriate integration approach is not trivial. A broader range of accessible methods combined with a comprehensive toolbox for comparative integration analysis, would support more effective and flexible single-cell data integration workflows.

**Results:** Built on Seurat's foundations, we developed SeuratIntegrate, an open source R package that expands integration methods available to Seurat users, including Python-based approaches, while operating entirely within the R environment. The package enables integration benchmarking using well-established performance metrics, and provides automated Python environment management, cross-language object conversion, and tools for score handling and visualization. All features are designed for ease of use and extensibility.

**Availability and implementation:** The source code, installation process and vignettes demonstrating usage are freely available on GitHub: https://github.com/cbib/Seurat-Integrate. A Zenodo deposit contains a copy of the package code along with the data to reproduce the results presented above (accession 10.5281/zenodo.14288360). The package is released under the MIT License.

### 1 Introduction

The rapid growth of single-cell datasets in recent years has enabled the possibility to study multiple samples from different biological and technical contexts, all aggregated in large atlases. These atlases compile data from different experiments, reagent batches or sequencing technologies. While these resources are invaluable for advancing single-cell based studies, bringing together such large datasets presents the challenge of overcoming confounding effects that may mask true biological differences and thus potentially impact analyses such as for example differential expression (Argelaguet et al. 2021, Nguyen et al. 2023, Maan et al. 2024).

Seurat v5 (Hao et al. 2024) and Scanpy (Wolf et al. 2018) are the most widely used R-based and Python-based tools, respectively, for single-cell data analysis. Both tools offer comprehensive functionalities, including visualization, clustering, and trajectory analysis. A key feature of both is their support for batch-effect correction and data integration, essential steps for harmonizing datasets from diverse biological and technical contexts. Particularly, Seurat v5 streamlines integrative analyses by introducing a multi-layered object structure enabling batch-wise normalization and a unified and consistent interface to multiple integration algorithms.

Seurat originally adopted an “anchor-based” strategy for integration based on Mutual Nearest Neighbors (MNN, Haghverdi et al. 2018) for batch-effect correction. Version 5 added native support for Harmony (Korsunsky et al. 2019) and the Python-based scVI (Lopez et al. 2018), bringing the total number of supported integration methods to five. However, Luecken et al. (2022) evaluated the performance, usability, and scalability of over 20 integration and batch-effect correction methods and demonstrated that their effectiveness varies widely across contexts depending on data complexity, such as the number of samples, cell-type diversity, and technological differences. These findings highlight the need for broader access to integration methods and tools to help users select the most appropriate one for their specific dataset.

Here, we present ‘SeuratIntegrate’, a flexible and comprehensive R package designed as an extension of Seurat by enabling seamless access to additional integration methods not natively supported in Seurat. In particular, it allows users to run both R- and Python-based methods entirely within the R environment. To date, SeuratIntegrate includes three R-based methods and five Python-based integration methods as well as complementary functions for performance evaluation.

<footnote n="1">¹CNRS UMR 5095, IBGC, Biological and Medical Sciences Department, University of Bordeaux, Bordeaux F-33000, France</footnote>

<footnote n="2">²Bordeaux Bioinformatics Center (CBiB), University of Bordeaux, Bordeaux 33076, France</footnote>

<footnote>*Corresponding author. CNRS UMR 5095, IBGC, Biological and Medical Sciences Department, University of Bordeaux, 146 rue Léo Saignat, Bordeaux F-33000, France. E-mail: domitille.chalopin-fillot@u-bordeaux.fr.</footnote>

<footnote>Associate Editor: Anthony Mathelier</footnote>
# 2 Package description and implementation

## 2.1 Integration methods provided by SeuratIntegrate

SeuratIntegrate extends the functionality of Seurat v5 by providing access to additional integration methods not included in the original package, particularly those written in Python. Cross-language interoperability is handled internally by SeuratIntegrate, allowing users to access Python-based methods without leaving the R environment. The package performs in-RAM object conversion at runtime: relevant components of the Seurat objects are transformed into annotation data format for compatibility with Python tools, and the resulting integration outputs (e.g. Assay, DimReduc, Neighbor or Graph) are automatically converted back and reintegrated into the Seurat object for downstream analysis. The “Post-processing” section of the vignette “Get started” provides additional guidance on this process. For integration methods that operate directly on gene count matrices and in line with findings in Luecken et al. (2022), SeuratIntegrate selects the most appropriate layer by default. Estimates of running time and memory usage for all supported integration approaches are available in the Supplementary Material, available as supplementary data at Bioinformatics online.

### 2.1.1 Description of supported integration methods

SeuratIntegrate offers both R- and Python-based methods, enabling users to harness a wide range of computational approaches for dataset harmonization (Table 1). The expected input and output(s) of each integration method, including the most suitable data layer (e.g., raw counts, normalized expression), and the feature set to use (all genes or variable features), are listed in Supplementary Table S1, available as supplementary data at Bioinformatics online.

For each method, the following details are provided: original implementation language (R- or Python-based), link to the source code of this initial implementation, a brief description of the basic algorithm and reference to the original paper where the method was introduced. Acronyms: MNN—Mutual Nearest Neighbors; ComBat—Combating Batch Effects; scVI—single-cell Variational Inference; scANVI—single-cell ANnotation using Variational Inference; BBKNN—Batch balanced K Nearest Neighbors; Scanorama—Panoramic stitching of single-cell data; trVAE—transfer Variational AutoEncoder.

### 2.1.2 Key functionality: DoIntegrate

Building on Seurat's *IntegrateLayers* function introduced in version 5, SeuratIntegrate implements a new function called *DoIntegrate*. It provides users with:

* The ability to launch multiple integrations in a single command,

* Customizable parameters for each integration method,

* Flexibility in choosing the input matrix type and the features to include.

As highlighted by Luecken et al. (2022), the choice of input matrix can have a significant impact on integration performance. By allowing users to select the most appropriate matrix (raw, normalized or scaled) and features, DoIntegrate ensures flexibility in the use of integration workflows. Additionally, the function is compatible with other Seurat-supported integration methods, such as Canonical Correlation Analysis (CCA), Reciprocal Principal Component Analysis (RPCA), and FastMNN (available in SeuratWrappers), enabling seamless interoperability across different integration approaches.

### 2.1.3 Reimplementation of Harmony and scVI

Although Harmony and scVI are already supported by Seurat, they have been re-implemented in SeuratIntegrate to provide users with enhanced flexibility:

* Harmony: Implemented via the RunHarmony function, adhering to the original developers' guidelines. A seed is set by default to ensure reproducible results.

* scVI: Allows users to fine-tune specific parameters, such as the number of layers in the neural network and their size, providing greater control over the integration process.

### 2.1.4 Python integration via reticulate

SeuratIntegrate leverages the reticulate package (Ushey et al. 2017) to enable Python-based integration methods. To streamline this process, the package includes tools to create and manage Conda environments for each Python-based method. UpdateEnvCache function offers a unified interface for creating, storing, and removing conda environments directly from R. We provide further guidance for troubleshooting common errors and issues with conda and reticulate in the “Troubleshooting with conda” section of the vignette dedicated to conda environments. Since R sessions can only load one Python environment at a time, SeuratIntegrate overcomes this limitation by using the Future package (Bengtsson 2021) to launch background R sessions for each environment. This functionality is seamlessly integrated into the DoIntegrate function.

For more details on using these features and additional functionalities, such as connectivity computation from cell-to-cell distances, please refer to the GitHub vignettes.

<table><caption>**Table 1.** Comprehensive overview of the integration methods provided by SeuratIntegrate.</caption><thead><tr><td>Method</td><td>Type</td><td>Timing</td><td>Underlying algorithm</td><td>Reference</td></tr></thead><tbody><tr><td>MNN</td><td>R</td><td>batchelor (Bioconductor)</td><td>Aligns datasets by mutual neighbors</td><td>Haghverdi et al. (2018)</td></tr><tr><td>Harmony</td><td>R</td><td>harmony (CRAN)</td><td>Iterative embedding correction</td><td>Korsunsky et al. (2019)</td></tr><tr><td>ComBat</td><td>R</td><td>sva (Bioconductor)</td><td>Empirical Bayes adjustment</td><td>Johnson et al. (2007)</td></tr><tr><td>scVI</td><td>Python</td><td>scvi-tools (GitHub, scverse/scvi-tools)</td><td>Variational autoencoder</td><td>Lopez et al. (2018)</td></tr><tr><td>scANVI</td><td>Python</td><td>scvi-tools (GitHub, scverse/scvi-tools)</td><td>Semi-supervised variational autoencoder</td><td>Xu et al. (2021)</td></tr><tr><td>BBKNN</td><td>Python</td><td>bbknn (GitHub, Teichlab/bbknn)</td><td>Batch-balanced nearest neighbors</td><td>Polański et al. (2020)</td></tr><tr><td>Scanorama</td><td>Python</td><td>scanorama (GitHub, brianhie/scanorama)</td><td>Manifold alignment</td><td>Hie et al. (2019)</td></tr><tr><td>trVAE</td><td>Python</td><td>scArches (GitHub, theislab/scarches)</td><td>Conditional variational autoencoder</td><td>Lotfollahi et al. (2020)</td></tr></tbody></table>
<figure><img src="image_2.png" /><figcaption>**Figure 1.** Overview of the SeuratIntegrate's workflow. (a) Summary of methods available in SeuratIntegrate either for integration or evaluation of the integration. (b) Running example of the use of SeuratIntegrate with eight samples downloaded from four different studies, containing immune cells from liver tumor microenvironment. UMAPs from unintegrated, as well as best-performing scANVI, RPCA and scVI integrated data are colored by the origin of the study (upper) or by manual cell-type annotation (lower). (c) Dotplot displaying overall evaluation scores for all integration methods available in SeuratIntegrate. Absence of a dot indicates metrics that were not evaluated due to the characteristics of the integration method. For example, PCA scores are not computed for BBKNN because it returns a graph instead of numerical components. Label-based metrics were calculated using manually curated annotation with 17 cell types. Scores are organized in two main categories: batch correction and biological conservation. Asterisks (*) indicate methods guided with the cell-type labels during the integration.</figcaption></figure>

## 2.2 Evaluation metrics

### 2.2.1 Metrics

SeuratIntegrate provides a suite of evaluation metrics to compare integration results (Fig. 1a), many of which have been previously described in Luecken et al. (2022) and Tran et al. (2020). These metrics include local inverse Simpson's index (LISI) (Korsunsky et al. 2019) comprising iLISI and cLISI (Luecken et al. 2022), k-nearest neighbor batch effect test (kBET, Büttner et al. 2019), Regression-PCA (Büttner

et al. 2019), cell-cycle conservation (Luecken et al. 2022), average silhouette width (ASW, Büttner et al. 2019, Luecken et al. 2022), graph connectivity (Luecken et al. 2022), normalized mutual information (NMI, Strehl and Ghosh 2002), adjusted Rand index (ARI, Hubert and Arabie 1985). We also included the recently published scGraph (Wang et al. 2024). Below, we group these metrics based on whether they require known cell-type labels or can be used in a label-free manner:
### 2.2.1.1 Label-based metrics

* cLISI: Measures the preservation of cell-type purity.

* NMI and ARI: Focus on classification accuracy.

* Silhouette (ASW): Evaluates within- and between-cluster similarity and can be calculated with or without labels (batch-based).

* Graph Connectivity: Estimates to what extent same-label cells are directly connected in the k-nearest neighbor (KNN) graph.

* scGraph: Assesses preservation of between-cell-type distances within batches based on centroid distances.

### 2.2.1.2 Label-free metrics

* iLISI and kBET: Measure batch mixing using graph-based methods. SeuratIntegrate allows users to adjust the parameter k for these metrics.

* PCA-related Scores:

* Regression-PCA: Quantifies batch removal via principal component regression.

* Density-PCA (DPCA): Uses Gaussian kernel density overlap as a proxy for batch removal.

* Cell-cycle conservation: Evaluates cell-cycle conservation before and after batch correction.

One can refer to the memo vignette covering scoring metrics to get a brief overview of input types expected by each score and the category it belongs to (either batch correction or bio-conservation).

### 2.2.2 Scoring framework for integration evaluation and method selection

To streamline evaluation, SeuratIntegrate allows users to save multiple scores for different integration methods directly within the Seurat object as a two-dimensional array using functions starting with AddScore. All scores can be scaled between 0 and 1 for easier interpretation. Additionally, a batch-correction score and a bio-conservation score can be computed as a mean of the corresponding metrics. To ensure a more balanced contribution of each score, min-max rescaling can be performed beforehand, either on scores directly or on ranks computed from the scores. Finally, an overall score, calculated as the weighted sum of batch correction and bio-conservation scores for each method, is provided to guide users in selecting the best-performing integration.

The choice of integration method needs to consider several factors. Before integration, one can assess its necessity using simple visualization tools (e.g. PCA or Uniform Manifold Approximation and Projection (UMAP)), metrics like SCIntRuler (Lyu et al. 2024) or the PCA-regression score. While not quantitative, visual inspection of dimensional reductions is often a first step to detect major batch effects. Benchmarking studies, such as Luecken et al. (2022) can help guide initial method prioritization. Scalability tests (see Supplementary Material, available as supplementary data at Bioinformatics online), demonstrating the effectiveness of these methods in reducing batch effects and aligning datasets. The dotplot depicting evaluation metric scores revealed distinct performance patterns across different methods (Fig. 1c):

* Batch Correction: trVAE outperformed all methods, followed by CCA and scANVI. In contrast, MNN and unintegrated performed the worst.
* Biological Conservation: scANVI and RPCA ranked highest, followed by ComBat. trVAE and CCA integration yielded the lowest performance in this category.

The final choice should reflect the user's priorities—emphasizing batch correction, biological conservation, or both. After computing and rescaling scores, the top-ranked method based on these priorities can be selected. Its output can then be used for downstream analyses such as clustering, visualization, or differential expression within standard Seurat workflows.

### 2.2.3 Visualization options

SeuratIntegrate includes three plotting options—dotplot, lollipop, and radar plots—within a unique function PlotScores to facilitate visual comparisons of integration performance. These plots are built using ggplot2, ensuring compatibility with popular visualization workflows.

## 3 Usage example

### 3.1 Dataset preparation

To demonstrate the utility of SeuratIntegrate, we analyzed immune cells from the hepatocellular carcinoma microenvironment. This dataset comprises eight samples from four publicly available studies: Sharma et al. (2020) [GSE156337], Song et al. (2020) [CRA002308], Zheng et al. (2020) [CRA001276], and Giraud et al. (2024) [GSE245909]. After preprocessing all samples (see Supplementary Material, available as supplementary data at Bioinformatics online), we randomly selected a total of 10 000 cells (2500 per dataset) and ran all eight integration methods available in SeuratIntegrate, as well as those implemented in Seurat.

### 3.2 Integration and evaluation

The unintegrated data revealed a clear bias in cell distribution based on the study of origin, as visualized in UMAP plots (Fig. 1b “Unintegrated” UMAP). For instance, CD4 T, CD8 T, and other T cells were segregated by study rather than biological cell type, highlighting the impact of batch effects and justifying the need for integration. Indeed, in a correct integration, we would expect cells to intermingle at the study level while remaining distinct by cell type.

Using SeuratIntegrate, we applied all integration methods and used the evaluation metrics including batch correction scores and biological knowledge conservation scores. Biological knowledge was assessed using a manual annotation containing 17 cell types (Fig. 1b—lower panels).

### 3.3 Findings

After integration, UMAP plots showed improved mixing of cells from different studies while preserving cell-type separation (Fig. 1b; Supplementary Material, available as supplementary data at Bioinformatics online), demonstrating the effectiveness of these methods in reducing batch effects and aligning datasets. The dotplot depicting evaluation metric scores revealed distinct performance patterns across different methods (Fig. 1c):

* Batch Correction: trVAE outperformed all methods, followed by CCA and scANVI. In contrast, MNN and unintegrated performed the worst.

* Biological Conservation: scANVI and RPCA ranked highest, followed by ComBat. trVAE and CCA integration yielded the lowest performance in this category.

Based on overall scores, scANVI provided the best integration performance, followed by RPCA and scVI.
# 4 Conclusion

The proposed R package named SeuratIntegrate facilitates the use of integration methods for single-cell transcriptomic data allowing easy interoperability between R and Python. We illustrated how SeuratIntegrate facilitates comprehensive integration and evaluation workflows by applying it to a dataset composed by immune cells from the hepatocellular carcinoma microenvironment. The observed variability in performance underscored the importance of dataset-specific evaluations, as demonstrated by our results and previous studies (e.g. Luecken et al. 2022).

# Author contributions

Florian Specque (Conceptualization [equal], Methodology [equal], Resources [equal], Software [equal], Visualization [equal], Writing—review & editing [equal]), Aurélien Barré (Resources [equal], Validation [equal]), Macha Nikolski (Funding acquisition [equal], Project administration [equal], Supervision [equal], Writing—review & editing [equal]), and Domitille Chalopin (Conceptualization [equal], Funding acquisition [equal], Methodology [equal], Project administration [equal], Supervision [equal], Validation [equal], Writing—original draft [equal])

# Supplementary data

Supplementary data is available at *Bioinformatics* online.

Conflict of interest: None declared.

# Funding

This work was supported by the Agence Nationale de la Recherche [N°ANR-21-CE16-0040] and by the ITMO Aviesan MCMP2022 [N°251534] of the Institut National du Cancer (INCA) grants.

# Data availability

The data underlying this article are available in the Zenodo Repository at https://dx.doi.org/10.5281/zenodo.14288360.

# References

Argelaguet R, Cuomo ASE, Stegle O et al. Computational principles and challenges in single-cell data integration. *Nat Biotechnol* 2021; 39:1202–15. https://doi.org/10.1038/s41587-021-00895-7

Bengtsson H. A unifying framework for parallel and distributed processing in R using futures. *R J* 2021;13:208. https://doi.org/10.32614/RJ-2021-048

Büttner M, Miao Z, Wolf FA et al. A test metric for assessing single-cell RNA-seq batch correction. *Nat Methods* 2019;16:43–9. https://doi.org/10.1038/s41592-018-0254-1

Giraud J, Chalopin D, Ramel E et al. THBS1+ myeloid cells expand in SLD hepatocellular carcinoma and contribute to immunosuppression and unfavorable prognosis through TREM1. *Cell Rep* 2024;43: 113773. https://doi.org/10.1016/j.celrep.2024.113773

Haghverdi L, Lun ATL, Morgan MD et al. Batch effects in single-cell RNA-sequencing data are corrected by matching mutual nearest neighbors. *Nat Biotechnol* 2018;36:421–7. https://doi.org/10.1038/nbt.4091

Hao Y, Stuart T, Kowalski MH et al. Dictionary learning for integrative, multimodal and scalable single-cell analysis. *Nat Biotechnol* 2024;42:293–304. https://doi.org/10.1038/s41587-023-01767-y

Hie B, Bryson B, Berger B. Efficient integration of heterogeneous single-cell transcriptomes using Scanorama. *Nat Biotechnol* 2019;37: 685–91. https://doi.org/10.1038/s41587-019-0113-3

Hubert L, Arabie P. Comparing partitions. *J Classif* 1985;2:193–218. https://doi.org/10.1007/BF01908075

Johnson WE, Li C, Rabinovic A. Adjusting batch effects in microarray expression data using empirical Bayes methods. *Bio statistics* 2007; 8:118–27. https://doi.org/10.1093/biostatistics/kxj037

Korsunsky I, Millard N, Fan J et al. Fast, sensitive and accurate integration of single-cell data with Harmony. *Nat Methods* 2019;16: 1289–96. https://doi.org/10.1038/s41592-019-0619-0

Lopez R, Regier J, Cole MB et al. Deep generative modeling for single-cell transcriptomics. *Nat Methods* 2018;15:1053–8. https://doi.org/10.1038/s41592-018-0229-2

Lotfollahi M, Naghipourfar M, Theis FJ et al. Conditional out-of-distribution generation for unpaired data using transfer VAE. *Bioinformatics* 2020;36:i610–i617. https://doi.org/10.1093/bioinformatics/btaa800

Luecken MD, Büttner M, Chaichoompu K et al. Benchmarking atlas-level data integration in single-cell genomics. *Nat Methods* 2022;19: 41–50. https://doi.org/10.1038/s41592-021-01336-8

Lyu Y, Lin SH, Wu H et al. SCIntRuler: guiding the integration of multiple single-cell RNA-seq datasets with a novel statistical metric. *Bioinformatics* 2024;2;40:btae537. https://doi.org/10.1093/bioinformatics/btae537

Maan H, Zhang L, Yu C et al. Characterizing the impacts of dataset imbalance on single-cell data integration. *Nat Biotechnol* 2024;42: 1899–908. https://doi.org/10.1038/s41587-023-02097-9

Nguyen HCT, Baik B, Yoon S et al. Benchmarking integration of single-cell differential expression. *Nat Commun* 2023;14:1570. https://doi.org/10.1038/s41467-023-37126-3

Polański K, Young MD, Miao Z et al. BBKNN: fast batch alignment of single cell transcriptomes. *Bioinformatics* 2020. 36:964–5. https://doi.org/10.1093/bioinformatics/btz625

Sharma A, Seow JJW, Dutertre C-A et al. Onco-fetal reprogramming of endothelial cells drives immunosuppressive macrophages in hepatocellular carcinoma. *Cell* 2020;183:377–94.e21. https://doi.org/10.1016/j.cell.2020.08.040

Song G, Shi Y, Zhang M et al. Global immune characterization of HBV/HCV-related hepatocellular carcinoma identifies macrophage and T-cell subsets associated with disease progression. *Cell Discov* 2020;6:90. https://doi.org/10.1038/s41421-020-00214-5

Strehl A, Ghosh J. Cluster ensembles—a knowledge reuse framework for combining multiple partitions. *J Mach Learn Res* 2002;3: 583–617. https://doi.org/10.1162/153244303321897735

Tran HTN, Ang KS, Chevrier M et al. A benchmark of batch-effect correction methods for single-cell RNA sequencing data. *Genome Biol* 2020;21:12. https://doi.org/10.1186/s13059-019-1850-9

Ushey K, Allaire J, Tang Y. reticulate: interface to "Python." CRAN: Contributed Packages. 2017. https://doi.org/10.32614/cran.packagetericulate (2024, date last accessed).

Wang H, Leskovec J, Regev A. Metric mirages in cell embeddings. *bioRxiv*. https://doi.org/10.1101/2024.04.02.587824, 2024, preprint: not peer reviewed.

Wolf FA, Angerer P, Theis FJ. SCANPY: large-scale single-cell gene expression data analysis. *Genome Biol* 2018;19:15. https://doi.org/10.1186/s13059-017-1382-0

Xu C, Lopez R, Mehlman E et al. Probabilistic harmonization and annotation of single-cell transcriptomics data with deep generative models. *Mol Syst Biol* 2021;17:e9620. https://doi.org/10.15252/msb.20209620

Zheng B, Wang D, Qiu X et al. Trajectory and functional analysis of PD-1high CD4+CD8+ T cells in hepatocellular carcinoma by single-cell cytometry and transcriptome sequencing. *Adv Sci* 2020; 7:2000224. https://doi.org/10.1002/advs.202000224
© The Author(s) 2025. Published by Oxford University Press.

This is an Open Access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/), which permits unrestricted reuse, distribution, and reproduction in any medium, provided the original work is properly cited.

Bioinformatics, 2025, 41, 1–5

https://doi.org/10.1093/bioinformatics/btaf358

Applications Note