Skip to main content
PLOS One logoLink to PLOS One
. 2026 Aug 17;21(8):e0355867. doi: 10.1371/journal.pone.0355867

Accurate quantification of spliced and unspliced transcripts for single-cell RNA sequencing with tidesurf

Jan T Schleicher 1,2,3,4, Doreen Klingler 3, Manfred Claassen 1,2,3,4,*
Editor: Andreas Neueder5
PMCID: PMC13480657  PMID: 42607077

Abstract

RNA velocity enables predicting future cellular states from single-cell RNA-sequencing (scRNA-seq) data by inferring the derivative of gene expression from separately quantified spliced and unspliced transcripts. Although the original implementation, velocyto, established the foundation for such analyses and remains widely used, it has not been updated to accommodate major advances in scRNA-seq technologies. Notably, some modern 10x Genomics protocols capture transcripts from the 5’ end rather than the 3’ end, introducing reversed transcript orientations and other protocol-specific features not implemented in velocyto. We demonstrate that velocyto systematically assumes opposite transcript direction compared to 10x Genomics Cell Ranger in 5’-sequencing data, leading to different count assignments than for other tools, substantial deviations in inferred velocities, and ultimately divergent biological interpretations. To address these shortcomings, we present tidesurf, a command-line tool designed for accurate quantification of spliced and unspliced molecules across both 3’- and 5’-based scRNA-seq protocols. By evaluating tidesurf on four publicly available 10x Genomics Chromium datasets and comparing it to state-of-the-art quantification approaches, we show that it reliably recovers correct transcript counts in settings where velocyto performs well (3’ chemistry) and where it produces unexpected results (5’ chemistry). These results underscore that the validity of RNA velocity analyses critically depends on reliable splicing-state quantification and that continued use of velocyto with 5’-sequencing data is inadvisable. Tidesurf provides a robust, up-to-date alternative that preserves the interpretability and reliability of RNA velocity across diverse experimental designs.

Introduction

Over the last decade, single-cell RNA sequencing (scRNA-seq) has established itself as a method routinely used to study dynamic processes of cells in development, differentiation, diseases, and immune responses [1,2].

The first droplet-based scRNA-seq protocols were based on capturing the poly-A tail at the 3’ end of transcripts through oligo-dT nucleotide-coated gel beads. More recently, additional protocols have been developed to capture the 5’ end of mRNA molecules, enabling, for example, the concurrent analysis of T or B cell receptor repertoires. In both cases, in the following denoted 5’ and 3’ scRNA-seq, sequencing of the gene expression library results in two separate read files, with the first read containing the cell barcode (CBC) and unique molecular identifier (UMI) and the second read containing the captured mRNA sequence. The resulting data is used to generate a cell-by-gene read count matrix. This requires read alignment to a reference genome and transcript quantification. The scRNA-seq protocols are implemented on the 10x Genomics Chromium platform, which further provides the Cell Ranger software based on the STAR aligner to achieve the alignment and quantification tasks [3,4]. While Cell Ranger considers both exonic and intronic read alignments, it does not quantify them separately but instead produces a single gene expression matrix.

La Manno et al. first described how a separate quantification of those reads can be leveraged for the analysis of dynamic cellular processes from snapshot data [5]. Their tool, velocyto, produces distinct count matrices for spliced, unspliced, and ambiguously assigned mRNA molecules, based on the Cell Ranger Binary Alignment Map (BAM) files. Other tools, such as alevin-fry [6] and kallisto-bustools [7], based on the pseudo-aligners salmon [8] and kallisto [9], respectively, are also capable of producing separate count matrices, using the raw sequencing FASTQ files as input. From these matrices, so-called RNA velocity, the temporal derivative of gene expression, can be estimated through a simple differential equation model [5].

While the estimation of RNA velocity has been refined by many other methods such as scVelo [10], it is usually still based on spliced and unspliced counts computed with velocyto. This is potentially problematic as velocyto has not been updated since the beginning of 2019, despite the significant progress in scRNA-seq protocols. For example, it does not offer a mode for the analysis of 10x Genomics 5’ scRNA-seq data, resulting in unexpected quantification results when used on such datasets. Nonetheless, a considerable number of studies applied velocyto to 5’ scRNA-seq data [11–18].

In this study, we re-analyzed two publicly available scRNA-seq datasets, generated with 5’ protocols and originally processed by Cell Ranger and velocyto [11,13], to assess whether velocyto could accurately quantify spliced and unspliced reads for 5’ data. We show that, compared to Cell Ranger, velocyto severely underestimates the total number of transcripts and assigns gene counts to overlapping genes on the opposite strand, assuming a different orientation of sequencing reads. To solve this issue, we present a Tool for IDentification and Enumeration of Spliced and Unspliced Read Fragments (tidesurf) from the Cell Ranger BAM files, which, unlike velocyto, was developed for both 3’ and 5’ data generated with 10x Genomics Chromium. We applied tidesurf to the aforementioned datasets, as well as to two further datasets based on the 3’ protocol [19,20], to demonstrate its utility. Comparing the results to the analysis of the same datasets with velocyto, alevin-fry, and STARsolo, we demonstrated its accuracy concerning the quantification of spliced, unspliced, and ambiguous counts. Furthermore, we could show that RNA velocities estimated from spliced and unspliced counts computed with tidesurf were in line with previous results. In contrast, the velocity estimates based on velocyto’s quantification for 5’ data differed considerably from those estimated from the output of the other tools, leading to different biological interpretations.

Results

Total counts estimated by velocyto markedly deviate from Cell Ranger for 5’ scRNA-seq data

To test the hypothesis of velocyto’s incompatibility with the analysis of 10x Genomics 5’ scRNA-seq data, we estimated spliced and unspliced counts from Cell Ranger output using velocyto for two datasets of peripheral B cells [11] and alloreactive T cells [13], generated with the 5’ chemistry. Because of differing read lengths, Cell Ranger used paired-end (PE) alignment for some samples of the T cell dataset with longer reads, while only R2 was used for alignment of the other samples (single-end, SE). We compared the sum of spliced, unspliced, and ambiguous counts of each cell, obtained by velocyto, to the total Cell Ranger counts (Fig 1A), splitting the T cell data into SE and PE samples. Velocyto yielded considerably lower counts per cell, especially for the R2-only aligned samples of both datasets, where the total count distributions differed by an order of magnitude. This was even more apparent in the per-cell differences in total counts obtained from velocyto, compared to Cell Ranger (Fig 1B). For the PE samples of the T cell dataset, there were also marked differences, albeit lower than those seen for the SE samples.

Fig 1. Strong disagreements between Cell Ranger and velocyto quantifications.

Fig 1

(A-D) Boxplots of cell- or gene-wise statistics for the velocyto quantification for two 5’ scRNA-seq datasets [11,13]. The T cell dataset [13] is split into samples mapped by single-end (SE) and paired-end (PE) alignment. (A) Total counts per cell obtained from Cell Ranger and velocyto, respectively. (B) Difference of velocyto total counts per cell from the Cell Ranger total counts. (C) Pearson correlation per gene of Cell Ranger and velocyto counts. (D) Proportion of unspliced counts in the sum of spliced and unspliced counts per cell for velocyto. (E) Illustration of the overlap of the gene RPL35A on the forward strand with an intron of the gene IQCG on the reverse strand. Grey arrows represent introns and indicate the direction of the respective transcripts. Colored boxes represent exons, split into coding DNA sequence (CDS, darker shades) and untranslated regions (UTR, lighter shades). (F) Pearson correlation of Cell Ranger counts and velocyto unspliced counts of overlapping genes on opposite strands. Gene pairs are grouped by the proportion of overlapping bases, relative to the gene corresponding to the Cell Ranger counts. The T cell dataset [13] is split into samples mapped by single-end (SE) and paired-end (PE) alignment. (G) Correlation of Cell Ranger counts and velocyto unspliced counts of overlapping genes on opposite strands for the B cell dataset [11] (ρ: Pearson correlation). Genes on the x-axis are sorted in descending order of the proportion of their nucleotides overlapping with a gene located on the antiparallel strand (displayed on the y-axis).

Furthermore, the median Pearson correlation of Cell Ranger counts of a gene with its velocyto total counts was around 0.1 for the SE samples of the B cell and T cell datasets (Fig 1C). For the PE samples of the T cell dataset, the correlation was considerably higher, with a median of 0.9.

Additionally, we observed unusually high proportions of unspliced counts (Fig 1D). For the B cell dataset and the SE samples of the T cell dataset, the median unspliced proportions were above 60 %. For the PE samples of the T cell data, the proportion of unspliced counts was in the range of 15–25 % reported by La Manno et al. [5], with a median below 20 %.

Taken together, these results demonstrate that velocyto produces unexpected results on 10x Genomics 5’ scRNA-seq data, particularly for single-end aligned samples.

Velocyto assigns unspliced counts to overlapping genes

Next, we investigated the mechanistic causes of these discrepancies. While velocyto assumes strand-specific reads, it does not take into account that the orientation of reads differs between 5’ and 3’ protocols. We hypothesized that the observed unspliced counts do not arise from the genes to which Cell Ranger assigns the reads, but rather from transcripts on the opposing DNA strand at the same position. This phenomenon is common in the human and mouse genomes [21]. The majority of overlaps occur between intronic regions of one gene and exons of another gene, exemplified by the human gene RPL35A on the forward strand, which is fully embedded within the first intron of the gene IQCG on the reverse strand (Fig 1E). Indeed, we observed a high correlation of unspliced gene counts assigned by velocyto with the Cell Ranger counts of the respective overlapping gene (Fig 1F–1G and S1). The degree of correlation is related to the overlap length, relative to the gene corresponding to the Cell Ranger counts (Fig 1F). Moreover, the correlation did not originate from co-expression of the genes (S2 Fig). The correlation was considerably lower for the PE samples of the T cell dataset (Fig 1F). The human and mouse genomes also contain gene pairs on opposite strands exhibiting exon-exon overlaps, at considerably lower frequency than exon-intron overlaps [21]. For example, the exons of the human gene MIF overlap with the last exon of the long non-coding RNA MIF-AS1 (S1B Fig). In this case, velocyto assigned counts to the spliced transcript of the overlapping gene (S1C and S1D Fig).

In conclusion, velocyto assumed strand-specific reads for 10x Genomics scRNA-seq data, but misinterpreted the read direction relative to the transcript annotations. As a result, it frequently did not assign reads to the same gene as Cell Ranger, but to another, overlapping gene on the opposite strand.

Tidesurf, a tool for splice state-aware quantification

To address the above quantification issues, we propose a Tool for IDentification and Enumeration of Spliced and Unspliced Read Fragments (tidesurf). Similar to velocyto, tidesurf uses gene annotations in General Transfer Format (GTF) and Cell Ranger-aligned reads in Binary Alignment Map (BAM) format to separately quantify spliced, unspliced, and ambiguous transcripts (Fig 2A). To efficiently retrieve transcripts overlapping with aligned sequencing reads, we use a transcript index. The index consists of a list of genomic intervals represented by their genomic starting position and the set of transcripts overlapping each interval (Fig 2B).

Fig 2. Overview of the tidesurf algorithm.

Fig 2

(A) Tidesurf takes a GTF file with transcript annotations and the Cell Ranger output, containing the alignments in BAM format, as input and produces count matrices for spliced, unspliced, and ambiguous mRNA molecules. (B) The annotated genome is used to construct an index. To this end, a list of intervals represented by their genomic starting position is constructed, where for each interval, the set of overlapping transcripts is stored. (C-F) Examples of reads for the different read types used in tidesurf. Two example transcripts with different final exon compositions are shown. Exon reads overlap with exons for all transcripts for a gene (C), while exon-exon reads span junctions between exons (D). Intron reads are those aligned to introns for all transcripts (E), while ambiguous reads map to exons for some of the transcripts, and to introns for others (F).

After retrieving transcripts, we determine the splice state by evaluating whether reads map to exonic or intronic regions, accounting for splice isoforms (Fig 2C-F). Our algorithm distinguishes between four mapped read types. (1) Exon reads map exclusively to exonic regions for all transcript isoforms, (2) exon-exon reads align to both flanks of an intron, spanning an exon-exon-junction, (3) intron reads overlap intronic regions for all isoforms, and (4) ambiguous reads align to exonic regions for a subset of transcripts, and to intronic regions for the others. The splice state of the transcript is determined based on the mapping behavior of its corresponding read types. For method details, refer to Implementation of tidesurf.

Counts obtained with tidesurf recapitulate the Cell Ranger quantification

To demonstrate the utility of tidesurf, we analyzed four publicly available datasets generated with the 10x Genomics Chromium technology.

The pancreatic endocrinogenesis [19] and the developing retina datasets [20] were generated with the 3’ chemistry, while the peripheral B cell [11] and alloreactive T cell datasets [13] were generated with the 5’ chemistry. For all four datasets, we compared the read count output of tidesurf to the Cell Ranger expression matrix and quantifications obtained with the tools velocyto [5], alevin-fry [6], and STARsolo [4]. Further, we compared the RNA velocity estimates based on the quantifications by the competing approaches.

First, we assessed the total read count outputs. For the 3’ datasets, the distribution of total counts per cell (sum of spliced, unspliced, and ambiguous counts for velocyto) was very similar between all four methods and Cell Ranger, with velocyto and STARsolo showing slightly lower total counts (Fig 3A). In contrast, velocyto total counts were considerably lower than those of alevin-fry, tidesurf, STARsolo, and Cell Ranger for the 5’ datasets, especially for the B cell data [11]. Due to the large sample size (high number of cells), most total count distributions were significantly different from each other between the different methods (pairwise two-sided Mann-Whitney U test with Bonferroni multiple testing correction, α=0.05, Table 1). The same trend was observed for the difference of total counts per cell of velocyto, alevin-fry, STARsolo, and tidesurf from Cell Ranger (Fig 3B). All differences were significantly different from 0, regardless of the magnitude (one-sample Student’s t-test with Bonferroni multiple testing correction, α=0.001). The median difference between tidesurf total counts and Cell Ranger was less than 100 for all datasets except for the T cell data, where it was slightly higher at around 280. For alevin-fry, the absolute median difference ranged between approximately 200 on the 3’ datasets and almost 800 on the B cell data. For the STARsolo quantification, the median difference was around 200 for the two 5’ datasets, but around 1,000 for the 3’ datasets. Velocyto’s median difference was around 500 for the retina data, around 1,000 for the pancreas and T cell datasets, and above 3,000 for the B cell data. The counts showed a high Pearson correlation with the Cell Ranger counts of the same gene for alevin-fry, STARsolo, and tidesurf on all four datasets (median correlation always above 0.88), while for velocyto, this was only the case for the 3’ datasets (Fig 3C).

Fig 3. Comparison of total counts across methods.

Fig 3

(A) Boxplot of total counts per cell (sum of spliced, unspliced, and ambiguous for velocyto, alevin-fry, and tidesurf) per dataset. Pairwise Mann-Whitney U test with Bonferroni multiple testing correction for m = 40 tests. Non-significant comparisons are marked with “ns”. All other tests are significant at α=0.05. (B) Boxplot of differences of total counts per cell from Cell Ranger counts. (C) Boxplot of per-gene Pearson correlation of counts with Cell Ranger counts.

Table 1. Test results for the comparison of total count distributions across methods. Pairwise Mann-Whitney U test with Bonferroni multiple testing correction for m = 40 tests. *: p < 0.05, **: p < 0.01, ***: p < 0.001, ns: not significant at α=0.05. Method name abbreviations in the columns: V: velocyto, A: alevin-fry, S: STARsolo, T: tidesurf.

Dataset Pancreas Retina B cells T cells
Method V A S T V A S T V A S T V A S T
alevin-fry *** *** *** ***
STARsolo ns *** *** *** *** *** *** ***
tidesurf *** ns *** *** * *** *** *** *** *** *** ***
Cell Ranger *** *** *** ns *** ns *** ns *** *** *** ns *** *** *** ***

In summary, the sum of tidesurf’s spliced and unspliced counts closely resembled the Cell Ranger counts on all evaluated datasets. In contrast, alevin-fry and STARsolo showed slightly larger discrepancies, and velocyto strongly deviated from Cell Ranger for the two 5’ datasets.

Spliced, unspliced, and ambiguous counts are similar between tidesurf, alevin-fry, and STARsolo

Furthermore, we separately compared the total spliced, unspliced, and ambiguous counts per cell before normalization. For the 3’ datasets, the distributions of total spliced counts were similar between all four methods (Fig 4A). In contrast, velocyto produced considerably lower spliced counts than alevin-fry, STARsolo, and tidesurf for the 5’ datasets. The distributions of unspliced counts were comparable between all tools on all four datasets, regardless of the assay chemistry (Fig 4B). Alevin-fry tended to report higher ambiguous counts than velocyto, STARsolo and tidesurf (Fig 4C). Due to the large sample size (high number of cells), most spliced, unspliced, and ambiguous count distributions were significantly different from each other between the different methods (pairwise two-sided Mann-Whitney U test with Bonferroni multiple testing correction, α=0.05, Table 2). Accordingly, the total counts differences per cell from the tidesurf quantification were low for spliced counts for alevin-fry and STARsolo on all four datasets, but more pronounced for velocyto on the 5’ datasets (S3A Fig). On the pancreas and retina datasets, velocyto quantified more molecules as unspliced than tidesurf (S3B Fig) and achieved similar total ambiguous counts (S3C Fig). STARsolo yielded lower unspliced and similar ambiguous counts as tidesurf on all datasets except for the B cell data, where unspliced counts were very similar to tidesurf. In contrast, alevin-fry produced lower total spliced counts and higher ambiguous counts on all four datasets. This difference may stem from the different resolution strategies for UMI splice types. In contrast to velocyto and tidesurf, alevin-fry bases its assignment of a UMI to a splice type on a majority vote of its corresponding reads. In all cases, regardless of the magnitude, the differences from tidesurf were significantly different from 0 (one-sample Student’s t-test with Bonferroni multiple testing correction, p < 0.001 for all methods except for velocyto on the B cell data, where p < 0.01).

Fig 4. Comparison of spliced, unspliced, and ambiguous counts across methods.

Fig 4

(A-C) Boxplots of total spliced (A), unspliced (B), and ambiguous (C) counts per cell. (D-F) Boxplots of ratios of spliced (D), unspliced (E), and ambiguous (F) counts out of total counts per cell. Panels A-F: Pairwise Mann-Whitney U test with Bonferroni multiple testing correction for m = 24 tests. Non-significant comparisons are marked with “ns”. All other tests are significant at α=0.05. (G-I) Boxplots of cosine similarity of spliced (G), unspliced (H), and ambiguous (I) counts per cell between methods.

Table 2. Test results for the comparison of spliced, unspliced, and ambiguous count distributions across methods. Pairwise Mann-Whitney U test with Bonferroni multiple testing correction for m = 24 tests per splice state. *: p < 0.05, **: p < 0.01, ***: p < 0.001, ns: not significant at α=0.05. Method name abbreviations in the columns: V: velocyto, A: alevin-fry, S: STARsolo.

Dataset Pancreas Retina B cells T cells
Splice state Method V A S V A S V A S V A S
spliced alevin-fry *** *** *** ***
STARsolo *** ** *** *** *** *** *** ***
tidesurf *** *** *** *** ns *** *** *** ns *** *** ***
unspliced alevin-fry *** *** *** ***
STARsolo *** *** *** ns *** *** *** ***
tidesurf *** *** *** ns ns *** *** *** ns *** *** ***
ambiguous alevin-fry *** *** *** ***
STARsolo ** *** ns *** *** *** *** ***
tidesurf *** *** *** ns *** ** *** *** *** *** *** ***

Similarly, the ratios of spliced (Fig 4D), unspliced (Fig 4E), and ambiguous counts (Fig 4F) per cell out of all counts were in a comparable range for all methods on the 3’ datasets, while velocyto had much lower proportions of spliced and much higher proportions of unspliced molecules for the 5’ datasets. Nonetheless, as for the count distribution, most of the ratio distributions were significantly different between the different methods (pairwise two-sided Mann-Whitney U test with Bonferroni multiple testing correction, α=0.05, Table 3).

Table 3. Test results for the comparison of spliced, unspliced, and ambiguous ratio distributions across methods. Pairwise Mann-Whitney U test with Bonferroni multiple testing correction for m = 24 tests per splice state. *: p < 0.05, **: p < 0.01, ***: p < 0.001, ns: not significant at α=0.05. Method name abbreviations in the columns: V: velocyto, A: alevin-fry, S: STARsolo.

Dataset Pancreas Retina B cells T cells
Splice state Method V A S V A S V A S V A S
spliced alevin-fry *** *** *** ***
STARsolo *** *** *** ns *** *** *** ***
tidesurf *** *** *** *** ** ns *** *** *** *** *** ***
unspliced alevin-fry *** *** *** ***
STARsolo *** * *** *** *** *** *** ***
tidesurf *** *** *** *** *** ns *** *** ns *** *** ***
ambiguous alevin-fry *** *** *** ***
STARsolo *** *** *** *** *** *** *** ***
tidesurf ns *** *** *** *** *** *** *** *** *** *** ***

For a direct, pairwise comparison between methods, we investigated the per-cell cosine similarities and per-gene Pearson correlations of spliced, unspliced, and ambiguous counts, respectively. For this analysis, we only considered genes present for all three methods. On the 3’ datasets, the median cosine similarity of spliced counts between tidesurf and alevin-fry was close to 1, and above 0.9 for all other pairs of methods (Fig 4G). In contrast, the median similarity between velocyto and any other method was below 0.1 for the B cell data and between 0.6 and 0.7 for the T cell data, but above 0.89 for all pairwise comparisons not involving velocyto. The median Pearson correlation was above 0.95 for all pairwise comparisons on the pancreas and retina datasets, and between 0.89 and 0.98 for the pairwise comparisons of all methods except for velocyto on the B cell and T cell datasets (S3D Fig). Like the cosine similarity, the Pearson correlation between velocyto’s spliced counts and those of the other two methods was also considerably lower on the 5’ datasets, especially on the B cell data. For unspliced counts, the median pairwise cosine similarities between tidesurf, alevin-fry, and STARsolo were above 0.92 on the 3’ datasets. For the 5’ datasets, the median similarities were around 0.4 and 0.5 for comparisons of alevin-fry and STARsolo or tidesurf, and around 0.9 and 0.7 between tidesurf and STARsolo on the B cell and T cell data, respectively. Velocyto had a lower similarity to the other three methods for all datasets, with particularly low values for the B cell data (median below 0.05, Fig 4H). A similar trend was observed for gene-wise Pearson correlations on the 5’ datasets, while velocyto had slightly higher correlations to tidesurf than the other comparisons on the 3’ data (S3E Fig). Ambiguous counts had a median cosine similarity above 0.8 on the pancreas and retina datasets for all comparisons, median cosine similarities between 0.6 and 0.75 on the 5’ datasets for all comparisons not involving velocyto (Fig 4I). The correlations of the ambiguous counts showed a similar trend (S3F Fig). The similarity and correlation between velocyto and the other three methods were considerably lower. As described above, the considerable differences between velocyto and the other three tools on the 5’ datasets were expected since velocyto’s quantification also differed considerably from Cell Ranger for these protocols (Figs 1 and S1).

There are multiple plausible reasons for the higher differences between alevin-fry and tidesurf on the 5’ datasets compared to the 3’ datasets. First, the 3’ datasets stem from murine samples, while the 5’ datasets originate from human donors. The human genome contains more repetitive sequences than the murine genome [22], which could lead to differences in the (pseudo-)alignments of Cell Ranger and alevin-fry, especially for intronic sequences. Furthermore, the total unspliced counts were considerably lower on the two 5’ datasets, rendering small absolute differences relatively more important. Finally, alevin-fry’s quantification of total counts differed slightly more from the Cell Ranger output than tidesurf’s (Fig 3B–3D).

RNA velocities and their interpretation are similar between quantification methods except for velocyto on 5’ data

Finally, we computed RNA velocities based on the spliced and unspliced counts obtained from the four different tools. To reduce the impact of other factors, we used the same PCA embedding and neighborhood graph for each method. For visualization, the velocities were projected onto the UMAP embedding obtained from the original processed dataset of the respective reference publication. To highlight differences between the methods, we computed the cosine similarity of the projected, two-dimensional velocities between tidesurf and the other three methods for each cell.

For the pancreatic endocrinogenesis dataset, the velocity embedding is very similar between all four methods (Fig 5A). In particular, there is always a cyclical component in the ductal cells on the left side of the embedding and a unidirectional flow through the endocrine progenitor (EP) and pre-endocrine cells at the bottom. The cosine similarity to the projected velocities based on tidesurf’s quantification is high for all three methods for almost all cells. The only major difference lies in the β-cells, where the grid arrows in the velocyto embedding all point towards the top left corner of the cluster, coinciding with a negative cosine similarity to tidesurf in this region, while the arrows in the top left part of the cluster point towards the lower right for alevin-fry, STARsolo, and tidesurf. We speculate that this localized discrepancy might arise from small upstream differences in the ratio of spliced and unspliced counts, in particular for β-cell-related genes, as well as from the selection of different velocity genes. Especially in differentiated cells close to the steady state, such small variations in a handful of cell-type-defining genes could lead to reversed projected velocities.

Fig 5. Comparison of RNA velocities between methods.

Fig 5

(A-B) Visualization of velocities for the pancreatic endocrinogenesis [19] (A) and B cell [11] (B) datasets, computed from spliced and unspliced counts obtained with velocyto, alevin-fry, STARsolo, or tidesurf (top to bottom) on a two-dimensional UMAP embedding. In the top three subpanels, color represents the cosine similarity between two-dimensional UMAP velocity projections between the respective method and tidesurf. In the bottom panel, color represents cell type. (C) Boxplot of cosine similarity of velocity vectors per cell between methods for velocity genes. (D) Boxplot of Pearson correlation of velocities per gene between methods for velocity genes.

On the visualization of the developing retina dataset, there are no discernible differences, with high cosine similarity across the embedding (S4A Fig). In contrast, the embedded velocities based on velocyto differ more strongly from those based on alevin-fry, STARsolo, and tidesurf on the UMAPs of the 5’ datasets. For example, they are different in the DN1, DN4, and Naive clusters of the B cell data (Fig 5B). Across the embedding of the velocyto-based velocities, a large proportion of the cells show a negative cosine similarity to tidesurf. While there are also cells with low similarity for alevin-fry and STARsolo, their number is much lower, and the majority of cells have a high similarity. Similarly, there were many cells with velocities pointing in the opposite direction for velocyto compared to tidesurf on the T cell data (S4B Fig). The differences between alevin-fry or STARsolo and tidesurf were less pronounced.

Additionally, we directly compared cell-wise, high-dimensional velocity vectors. For this analysis, we focused on so-called “velocity genes”, that is, genes with a sufficiently good fit of scVelo’s model, which are used for downstream analyses, including the computation of a transition probability matrix and the two-dimensional representation of velocities. Since the sets of velocity genes differed across quantification methods, we used the pairwise union of velocity genes for each method, excluding genes filtered out in either quantification due to low counts. The number of genes used in the respective pairwise comparisons, as well as the number of velocity genes per quantification, are shown in Table 4. All pairwise cosine similarities were above 0.94 in the median on the pancreas and retina datasets (Fig 5C). For the 5’ datasets, cosine similarities were lower. Here, the highest similarities were observed in the comparisons between tidesurf, alevin-fry, and STARsolo (median above 0.9 and above 0.8 for B cells and T cells, respectively), whereas the velocities obtained based on the velocyto quantification were considerably less similar. The median gene-wise Pearson correlation out of the pairwise union of velocity genes was above 0.95 for all comparisons on the 3’ datasets, and above 0.76 between tidesurf, alevin-fry, and STARsolo on the 5’ data (Fig 5D). Velocities based on velocyto had considerably lower correlations to those from the other tools.

Table 4. Number of velocity genes in the analyzed datasets. For each dataset, the diagonal shows the number of velocity genes based on the respective quantification. The below-diagonal elements indicate the number of genes in the pairwise union of velocity genes between the respective tools, excluding those filtered out for one of the compared quantifications because of low spliced and unspliced counts. Method name abbreviations in the columns: V: velocyto, A: alevin-fry, S: STARsolo, T: tidesurf.

Dataset Pancreas Retina B cells T cells
Method V A S T V A S T V A S T V A S T
velocyto 1,177 1,042 10 266
alevin-fry 1,189 1,102 1,072 1,001 36 162 492 443
STARsolo 1,207 1,166 1,009 1,089 1,069 852 32 183 153 510 525 472
tidesurf 1,214 1,180 1,191 1,167 1,080 1,072 1,099 1,049 37 192 187 182 547 573 590 532

Overall, RNA velocities based on the different tools were very similar for the 3’ datasets, both in gene expression space and on the two-dimensional projection. For the 5’ datasets, the differences between alevin-fry, STARsolo, and tidesurf were more pronounced, but the RNA velocities still showed high similarities. In contrast, the velocyto-derived velocities differed considerably from those derived from any of the other tools.

When comparing velocity vectors for all pairwise common genes, observed cosine similarities were considerably lower, especially on the 5’ datasets (S4C Fig). Only the similarity between STARsolo and tidesurf was at a high level for the B cell and T cell data, with a median of approximately 0.9 and 0.8, respectively. Gene-wise Pearson correlations showed similar distributions for all genes as for velocity genes (S4D Fig). We assume that the drop in cosine similarity is related to the well-known phenomenon that cosine similarities become more sensitive to small differences with increasing dimensionality [23]. Further, we presume that the higher differences between velocities based on alevin-fry, STARsolo, and tidesurf, respectively, on the 5’ datasets can be attributed to the differences in unspliced counts described above, as they significantly impact velocity estimation. Additionally, the B cell and T cell datasets might be less suitable for RNA velocity analysis than the pancreas and retina datasets. While the latter have been used in many RNA velocity analyses, showing biologically meaningful results, we selected the former because they had been analyzed with velocyto by the original authors, yielding possibly erroneous velocity estimates. A strong indication of the unsuitability of these datasets for RNA velocity is their generally lower number of velocity genes (below 200 and around 500 for the B and T cell data, respectively, and approximately 1,000 for the 3’ datasets, see Table 4), showing that fewer genes had a good fit for scVelo’s velocity model.

Cluster transitions inferred by PAGA differ depending on the quantification method

As an example for the influence of differing RNA velocity estimates on downstream trajectory inference tasks, we performed partition-based graph abstraction (PAGA) [24] with velocity-directed edges. For the pancreas dataset, the general PAGA-inferred cluster transition trend was the same for all four methods, highlighting the transition from Ngn3 low EP cells to the four differentiated endocrine cell types (alpha, beta, epsilon, and delta) via Ngn3 high EP and pre-endocrine cells (Fig 6A). However, there were some differences in the inferred transitions between the differentiated endocrine cell types between the different methods. Additionally, PAGA inferred a transition from ductal to Ngn3 low EP cells for the velocyto-, and STARsolo-, and tidesurf-based velocities, while it detected the opposite direction for alevin-fry. This effect could be attributed to the cycling nature of the ductal cells. Similarly, PAGA inferred the same transitions from neuroblasts to all other cell types for the retina dataset (S5 Fig).

Fig 6. Comparison of inferred cluster transitions.

Fig 6

(A-B) Partition-based graph abstraction (PAGA) [24] with velocity-directed edges for the pancreatic endocrinogenesis [19] (A) and B cell [11] (B) datasets. The underlying RNA velocity estimates were computed from the spliced and unspliced counts obtained with velocyto, alevin-fry, STARsolo, and tidesurf, respectively (top to bottom). Dashed lines show connectivities, and solid arrows indicate transitions.

For the B cell data, the inferred PAGA transitions showed a high agreement between alevin-fry, STARsolo, and tidesurf (Fig 6B). However, the direction of the transitions between naive and M-Mem2 or DN4 was inverted in the graph inferred from velocyto-based velocities. Here, there was also an additional suggested transition from DN1 to DN4 that was not inferred for any of the other methods.

For cluster transition inference on the T cell data, we restricted the analysis to five clusters chosen by the original authors for PAGA analysis [13]. In contrast to their approach, we did not perform separate analyses for different sample types. Only a couple of transitions were inferred for all four quantification methods: from c03 to c01 and from c04 to c02 (S5B Fig). Apart from these similarities, the PAGA graphs differed considerably. Notable differences for the velocyto-based graph were the prediction of transitions from c04 to c03 and c07, which were not present for any of the other tools, as well as the transition from c02 to c01, which was inverted compared to all other methods.

In summary, trajectory inference with PAGA demonstrated the overall high concordance across quantification tools for the 3’ datasets. Furthermore, it underscored the differences for the 5’ datasets, in particular for the results based on velocyto. We assume that differences in spliced and unspliced counts propagate and accumulate through velocity estimation downstream to trajectory inference. Hence, the larger differences between the PAGA graphs on the 5’ datasets, which, as argued above, might be less suitable for RNA velocity analysis in general, are not surprising. Moreover, PAGA seems to be sensitive to even small differences in the input.

Run time and memory requirements of tidesurf are comparable to velocyto

Lastly, we also compared the run times and memory requirements of tidesurf, velocyto, alevin-fry, and STARsolo on a cluster with AMD EPYC 7343 CPUs. We allocated 32 cores for each process. For velocyto, the threads and memory per thread for sorting with samtools were set to 32 threads and 4 GB, respectively. To obtain accurate estimates, we selected five of the 19 samples analyzed in this study, representing the quartiles of BAM file size based on the number of reads. We executed all tools five times per sample. Tidesurf had similar run times and memory requirements as velocyto (S6 Fig). In contrast, alevin-fry and STARsolo had considerably lower execution times and memory requirements. The lower run times of these tools can be attributed to the pseudo-alignment in the case of alevin-fry and the implementation in Rust (alevin-fry) and C/C++ (STARsolo).

Discussion

The standard tool for quantification of spliced and unspliced molecules for scRNA-seq data, velocyto, was developed before 10x Genomics introduced 5’ gene expression protocols. Despite this technological progress, velocyto has not been updated, and on the velocyto GitHub repository (https://github.com/velocyto-team/velocyto.py, accessed 16.06.2026), the authors state that it is no longer maintained and should not be used anymore. Nevertheless, it was used for spliced/unspliced quantification in a plethora of studies using 5’ scRNAseq [11–18]. By reanalyzing the data from two such studies, we demonstrated that velocyto assigned reads to overlapping genes on the opposite strand compared to Cell Ranger, 10x Genomics’ own software, for 5’ scRNA-seq data, resulting in considerably underestimated total counts and highly inflated unspliced proportions. For samples where Cell Ranger aligned the reads in paired-end mode, these issues were alleviated. However, for some genes, the assignment remained inaccurate, indicating that velocyto should, in general, not be used for 10x Genomics 5’ datasets.

Therefore, we introduced tidesurf as a novel command-line tool for quantifying spliced and unspliced transcripts from 10x Genomics Chromium scRNA-seq experiments. We showed its application to four different datasets covering both 3’ and 5’ sequencing technology and demonstrated its accuracy. The accurate quantification of spliced and unspliced counts is a prerequisite for sensible RNA velocity estimates. Consequently, tidesurf represents a replacement for velocyto on 5’ data, where the latter produces count matrices that differ considerably from those produced by any other tool tested here. Additionally, we propose to use tidesurf on 3’ data as well, since it generates comparable count matrices and avoids, unlike velocyto, generating an additional BAM file sorted by cells. Tidesurf’s total counts also showed considerably lower discrepancies from the Cell Ranger expression matrix than those obtained with velocyto.

In contrast to alevin-fry and STARsolo, tidesurf can be more easily incorporated into standard pipelines where 10x Genomics Cell Ranger is commonly used for gene expression quantification. Tidesurf directly uses Cell Ranger’s output and produces spliced, unspliced, and ambiguous counts for the same cell barcodes (or a superset if filtering is turned off) in convenient AnnData format for easy integration with Cell Ranger’s expression matrix. For alevin-fry, on the other hand, it is necessary to run a second analysis from scratch, which can lead to the calling of slightly different cell barcodes. Similarly, STARsolo performs its own cell filtering steps, which may result in different cells than the Cell Ranger pipeline. While the STARsolo documentation, a single markdown document that is several versions behind the most recent release, describes parameter settings for obtaining similar results as with Cell Ranger, we still observed greater differences from Cell Ranger than when using tidesurf. Furthermore, the use of alevin-fry on Chromium 5’ data requires the adjustment of two parameters relating to read orientation with respect to each other and the reference genome in two different functions, which we only detected through a thorough search of multiple issues on the respective project repositories. In the same way, we had to make multiple adjustments for STARsolo on the 5’ data. Even with all adjustments made according to the documentation, when processing some samples with longer reads in paired-end alignment mode, STARsolo crashed with a segmentation fault, necessitating falling back to single-end alignment mode. This issue has been reported by many users on the STAR GitHub repository, which has almost 1,000 open issues. For tidesurf, only a single command line argument has to be changed to switch from the default sense orientation of reads to reference annotations for 3’ data to the antisense orientation for 5’ data. Moreover, the tidesurf quantification was closest to Cell Ranger across all tested datasets in terms of absolute count differences and expression profile similarity.

We compared velocity embeddings to assess the quality of tidesurf’s read count annotations as a basis for RNA velocity estimates. This comparison relied on RNA velocity estimates using scVelo’s stochastic model. We acknowledge that the resulting velocities are estimates, and that for these and their visualization shortcomings have been demonstrated [25,26]. The comparisons using cosine similarity and Pearson correlation offered a more detailed view and showed differences in counts and estimated velocities between the methods. However, the significance of these differences is hard to judge. In the absence of a ground truth, we cannot conclusively answer the question of which quantification is more correct. Nonetheless, on the 5’ datasets, we observed considerable differences between velocities based on velocyto and those based on any of the other methods, while differences between the other three tools were less pronounced. These differences were observed in comparisons of high-dimensional and projected velocities as well as in downstream trajectory inference. Because of this and because of the aforementioned assignment to transcripts on the opposite strand compared to Cell Ranger, we assume that the results of velocyto on the 5’ datasets were less reliable than the results based on the other quantification tools.

All of the tools described in this study, including tidesurf, make simplifying assumptions about splicing dynamics. Rather than explicitly modeling different transcript isoforms, molecules are categorized as either spliced or unspliced. This approach also does not account for partially spliced intermediates.

Finally, tidesurf is currently limited to 10x Genomics Chromium single-cell sequencing libraries processed with Cell Ranger. While Chromium is one of, if not the, most widely used platform for suspension-based scRNA-seq, we plan to adapt tidesurf to other single-cell protocols and alignment pipelines in future work. These adaptations would make it more widely applicable to replace velocyto.

Conclusion

We demonstrate that velocyto, the seminal tool for quantification of spliced and unspliced transcripts from aligned scRNA-seq reads, systematically assumes a different read direction in 10x Genomics 5’ scRNA-seq data than Cell Ranger, leading to the assignment of counts to overlapping transcripts, affecting RNA velocity estimates, downstream analyses, and their biological interpretation, with results differing from those obtained with other tools. Therefore, we advise against using velocyto on scRNA-seq data generated with recent experimental protocols, such as 10x 5’ scRNA-seq. Instead, we propose to use our novel tool tidesurf. Alternatively, other methods enable splice state-aware quantification as well, such as alevin-fry [6], STARsolo [4], or kallisto-bustools [7]. Our analyses showed that tidesurf’s quantifications most closely resembled the results obtained with Cell Ranger. This highlights the utility of tidesurf to obtain quantifications of spliced and unspliced transcripts that complement a previous analysis with only minor discrepancies. If the analysis is started from scratch, alevin-fry and STARsolo are good options as well. However, their correct usage is slightly more complicated. In our experience, especially STARsolo is not very user-friendly, with insufficient documentation and almost 1,000 unresolved issues on the GitHub repository.

In conclusion, accurate quantifications of spliced and unspliced mRNA molecules are paramount for sensible RNA velocity analysis and trajectory inference. The correctness and plausibility of the count matrices should be investigated in detail before performing downstream analyses, especially when using outdated tools.

Materials and methods

Implementation of tidesurf

We developed tidesurf, a command-line tool for quantifying spliced and unspliced transcripts, implemented in Python. The tool takes a General Transfer Format (GTF) file with gene and transcript annotations for the reference genome used for read alignment and a Cell Ranger [3] output directory as input (Fig 2A).

In the first step, a transcript index is built from the GTF file to efficiently retrieve transcripts overlapping with aligned sequencing reads. To this end, all transcripts on a particular strand (plus or minus) and chromosome in the GTF file and their exons are inserted into a sorted list of intervals (Fig 2B). Each entry in the list consists of the start position of the respective interval and the set of transcripts contained therein. Hence, each interval start corresponds to the start of one or multiple transcripts or the base directly after one or multiple transcripts.

In the second step, the Binary Alignment Map (BAM) file produced by Cell Ranger is processed. The aligned reads are processed iteratively. Unmapped reads, those that have a mapping quality below 255 (i.e., not confidently mapped to a single locus), or reads that do not have a cell barcode (CBC) or unique molecular identifier (UMI) tag are discarded. All other reads are handled individually to determine the gene of origin and splicing status.

First, all transcript annotations overlapping the read are extracted from the transcript index using a binary search for the genomic start and end positions of the read alignment. Since the list of intervals and transcripts contained therein is sorted, this allows us to obtain all relevant transcripts. Here, we only take the strand into account that has the correct orientation relative to the read alignment. For 10x Genomics Chromium, this is the sense orientation for 3’ and the antisense orientation for 5’ protocols. Next, we determine for each overlapping transcript if the read maps to an exonic or intronic region (Fig 2C-F). This is done by iterating over the exons and introns of the transcript and summing up the respective base overlaps, taking the Concise Idiosyncratic Gapped Alignment Report (CIGAR) string of the aligned read into account. Furthermore, we keep track of the number of exons aligned with the read. For each transcript, we determine the read type based on the following criteria. If the number of bases not overlapping with exons is smaller than a threshold (default: 5), the read is classified as exonic (Fig 2C) or as spanning an exon-exon junction (Fig 2D), depending on whether the number of exons is 1 or greater than 1. On the other hand, if the number of bases overlapping with introns is greater than or equal to that threshold, the read is classified as intronic with respect to the transcript (Fig 2E). Finally, we determine the overall type of a read based on all transcripts. If all transcripts belong to the same gene, a read is classified as spanning an exon-exon junction if that annotation is present. Otherwise, it is classified as either intronic or exonic if the same type was inferred for all transcripts or ambiguous if the type differs between transcripts (Fig 2F). The rationale behind this is that a read aligning to a region that is an exon for one splice isoform, but an intron for another one cannot be unambiguously assigned unless it spans an exon-exon junction for one of the transcripts. This behavior only occurs when an intron is spliced out.

If the transcripts belong to multiple genes, the default is to discard the read. Alternatively, a read type can be assigned per gene as described above. In that case, it is weighted by the inverse of the number of genes for downstream processing.

In the third step, CBCs and UMIs are deduplicated. For each CBC/UMI/gene/read type combination, we compute its read support. After filtering out read types with very low counts and percentages, we retain only one read type for each barcode/UMI/gene combination. Here, we keep the first read type, where the sort order is intronic < exon-exon junction < ambiguous < exonic. Then, we map the read type to a splice type, where intronic maps to unspliced, ambiguous stays ambiguous, and the two exonic read types map to spliced.

Then, multi-mapped UMIs are resolved. Following Cell Ranger’s gene expression algorithm [27], we assign a CBC/UMI combination to the gene with the highest read support. Ties for maximal read support are discarded.

Finally, spliced, unspliced, and ambiguous UMIs are counted for each cell and gene, resulting in three separate count matrices which are combined into and saved as an AnnData object [28].

Data retrieval

For the mouse pancreatic endocrinogenesis dataset at embryonic day 15.5 [19], FASTQ files were obtained from the Gene Expression Omnibus (GEO, sample accession number GSM3852755). Processed data was obtained from the scVelo (v0.3.3) pancreas dataset.

For the dataset of developing mouse retinal neurons [20], FASTQ files for batch F2 were downloaded from GEO (sample accession number GSM3466902). Processed data was downloaded from the dataset link provided by the authors of UniTVelo [29] on the UniTVelo GitHub repository.

Raw FASTQ files and processed data of human peripheral B cells [11] were obtained from ArrayExpress (accession number E-MTAB-9544).

BAM files and processed data of human alloreactive T cells [13] were accessed from GEO (series accession number GSE252994). The BAM files were converted to FASTQ using 10x Genomics bamtofastq.

Cell Ranger

Raw reads were aligned to the respective annotated reference genome mouse mm10 (GENCODE vM23/Ensembl98) or human GRCh38 (GENCODE v32/Ensembl98), obtained from the Cell Ranger 2020-A reference packages, using 10x Genomics Cell Ranger (v7.1.0) count with automatic chemistry detection [3].

Velocyto

To obtain spliced and unspliced counts with velocyto (v0.17.17), the Cell Ranger output directories were processed using run10x [5] with the respective annotation GTF file.

Alevin-fry

Spliced + intronic (splici) references were generated from the Cell Ranger reference transcriptomes with pyroe (v0.9.3) make-splici according to the read length of the respective study (pancreas [19]: 151 bases, retina [20]: 100 bases, B cells [11]: 100 bases, and T cells [13]: 91 bases (samples MJ001, MJ002, MJ003, MJ016, and MJ017) or 101 bases (samples MJ005, MJ006, MJ007, MJ008, MJ009, MJ018, and MJ019)) with a flank trim length of 5 bases. Transcriptome indices were built with salmon (v1.10.2) index [8]. Reads were mapped against the respective index with salmon alevin with library type ISR for 3’ data and ISF for 5’ data. For quantification of spliced and unspliced reads with alevin-fry (v0.8.2), permit lists were generated using generate-permit-list with expected orientation fw for 3’ data and rc for 5’ data, and barcodes were corrected with collate [6]. Finally, quant was used for quantification. The results were transformed into an AnnData object using load_fry from pyroe. An overview of the parameter settings is shown in Table 5.

Table 5. Parameter settings for pyroe, salmon, and alevin-fry. For the pancreas, retina, and B cell datasets, the same parameters were used for all samples. For the T cell dataset, different settings were used for samples where Cell Ranger performed single-end (SE) and paired-end (PE) alignment.

Tool Command Parameter Pancreas Retina B cells T cells
all all all SE PE
pyroe make-splici read length 151 100 100 91 101
flank trim length 5 5 5 5 5
salmon alevin library type ISR ISR ISF ISF ISF
alevin-fry generate-permit-list orientation fw fw rc rc rc

STARsolo

To quantify spliced and unspliced transcript molecules with STARsolo (v2.7.11b), STAR genome indices were generated from Cell Ranger annotated reference genomes with the command STAR --runMode genomeGenerate --genomeDir path/to/genome/dir --genomeFastaFiles /path/to/genome.fa --sjdbGTFfile /path/to/genes.gtf --genomeSAsparseD 3 according to the documentation [4]. For the pancreas dataset, we additionally set the length of the sequence on each side of splice junctions to 149 with the argument --sjdbOverhang 149 to account for the read length of 150 bp as recommended, while using the default value of 100 for the other datasets with shorter reads.

Following the STARsolo documentation to match Cell Ranger results, for the pancreas and retina datasets, we used the following parameters for single-end alignment of read 2 to the mouse reference indices and ensuing quantification: --readFilesIn path/to/read2.fastq.gz path/to/read1.fastq.gz --soloType CB_UMI_Simple --clipAdapterType CellRanger4 --outFilterScoreMin 30 --soloCBmatchWLtype 1MM_multi_Nbase_pseudocounts --soloUMIfiltering MultiGeneUMI_CR --soloUMIdedup 1MM_CR --soloCellFilter EmptyDrops_CR --soloStrand Forward --soloBarcodeReadLength 0 --soloCBstart 1 --soloCBlen 16 --soloUMIstart 17 --soloUMIlen 10 --soloFeatures Gene Velocyto --readFilesCommand zcat.

In contrast, we performed paired-end alignment to the human reference index for the B cell dataset and for the samples from the T cell dataset with shorter read length (refer to Methods subsection Alevin-fry for details about read lengths). Based on the STARsolo documentation, this was achieved using the following parameters: --readFilesIn path/to/read1.fastq.gz path/to/read2.fastq.gz --soloType CB_UMI_Simple --outFilterScoreMin 30 --soloCBmatchWLtype 1MM_multi_Nbase_pseudocounts --soloUMIfiltering MultiGeneUMI_CR --soloUMIdedup 1MM_CR --soloCellFilter EmptyDrops_CR --soloBarcodeMate 1 --clip5pNbases 39 0 --soloCBstart 1 --soloCBlen 16 --soloUMIstart 17 --soloUMIlen 10 --soloFeatures Gene Velocyto --readFilesCommand zcat. Here, the read order was reversed compared to the input for the single-end alignment. When the same approach was used for the T cell samples with slightly longer reads, STARsolo crashed with a segmentation fault error. Therefore, we used single-end alignment for those samples with the following arguments: --readFilesIn path/to/read2.fastq.gz path/to/read1.fastq.gz --soloType CB_UMI_Simple --outFilterScoreMin 30 --soloCBmatchWLtype 1MM_multi_Nbase_pseudocounts --soloUMIfiltering MultiGeneUMI_CR--soloUMIdedup 1MM_CR --soloCellFilter EmptyDrops_CR --soloStrand Reverse --soloBarcodeReadLength 0 --soloCBstart 1 --soloCBlen 16 --soloUMIstart 17 --soloUMIlen 10 --soloFeatures Gene Velocyto --readFilesCommand zcat.

Two main differences between the paired- and single-end alignment of the 5’ data are the order of the read files and the parameter soloStrand. Because of the reversed order when performing paired-end alignment, soloStrand needs to be set to “Forward” here to ensure correct read orientation: While read 2 has an antisense orientation, the aligned portion of read 1 is on the sense strand relative to the reference transcriptome.

For all datasets, we used the Cell Ranger 737K barcodes as the whitelist, matching the 10x Genomics assay chemistry. An overview of the parameter settings is shown in Table 6.

Table 6. Parameter settings for STARsolo. For the pancreas, retina, and B cell datasets, the same parameters were used for all samples. For the T cell dataset, different settings were used for samples where Cell Ranger performed single-end (SE) and paired-end (PE) alignment. For the parameter readFilesIn, the path to the corresponding FASTQ file for read 1 and read 2 is indicated by R1 or R2, respectively. An asterisk (*) marks settings that correspond to the default value and were not explicitly set.

Run Mode Parameter Pancreas Retina B cells T cells
all all all SE PE
genomeGenerate sjdbOverhang 149 100 100 100 100
alignReads readFilesIn 〈R2〉 〈R1〉 〈R2〉 〈R1〉 〈R1〉 〈R2〉 〈R1) 〈R2〉 〈R2〉 〈R1〉
soloType CB_UMI_Simple
clipAdapterType CellRanger4
outFilterScoreMin 30
soloCBmatchWLtype 1MM_multi_Nbase_pseudocounts
soloUMIfiltering MultiGeneUMI_CR
soloUMIdedup 1MM_CR
soloCellFilter EmptyDrops_CR
soloBarcodeMate 0* 0* 1 1 0*
clip5pNbases 0* 0* 39 0 39 0 0*
soloStrand Forward Forward Forward Forward Reverse
soloBarcodeReadLength 0 0 1* 1* 0
soloCBstart 1
soloCBlen 16
soloUMIstart 17
soloUMIlen 10
soloFeatures Gene Velocyto
readFilesCommand zcat

Tidesurf

For quantification of spliced and unspliced transcripts with tidesurf (v0.2.0), the Cell Ranger output directories were processed using default parameters and the respective gene annotation GTF files from the Cell Ranger references. For 3’ data, the orientation was specified as sense, while it was set to antisense for 5’ datasets.

Data processing and RNA velocity analysis

All datasets were processed using scanpy (v1.11.1) [30] and scVelo (v0.3.3) [10]. For comparisons of counts per cell (total or splice state-specific), the processed reference datasets and the count matrices obtained from Cell Ranger, velocyto, alevin-fry, and tidesurf were filtered to contain only common cells (Table 7).

Table 7. Cell numbers in the analyzed datasets.

Number of cells
Dataset Publication Reference Common
Pancreas Bastidas-Ponce et al. [19] 3,696 3,696
Retina Lo Giudice et al. [20] 2,726 2,635
B cells Stewart et al. [11] 8,771 7,310
T cells Fu et al. [13] 51,504 50,314

For downstream RNA velocity analysis, the datasets were additionally subsetted to common genes. Genes with fewer than 20 counts (spliced and unspliced) were filtered out. The gene expression matrix, as well as the spliced and unspliced counts, were normalized so that the total counts per cell were equal to the median total counts before normalization. Highly variable genes were determined with scvelo.pp.filter_genes_dispersion, using the seurat flavor and the top 2,000 genes. The expression matrix was log(x+1)-transformed. The first 30 principal components from the respective reference dataset were used to compute a neighborhood graph with 30 neighbors. Based on this neighborhood graph, moments of spliced and unspliced counts were calculated, and velocities were computed using scVelo’s stochastic model. Finally, velocities were projected onto the 2-dimensional UMAP embedding of the respective reference dataset for visualization.

PAGA

Partition-based graph abstraction (PAGA) [24] with velocity-directed edges was performed with the function scvelo.tl.paga on the processed data containing RNA velocity information using default parameters, except for disabling the minimum spanning tree pruning step. As described above (see Methods subsection Data processing and RNA velocity analysis), the same neighborhood graph was used for all quantification methods. The cell type annotations of the respective dataset were used as groups for PAGA.

In contrast to the other three datasets, the T cell dataset was subsetted to five clusters (c01, c02, c03, c04, and c07) used for PAGA trajectory inference by the original authors [13]. The neighborhood graph with 30 neighbors was recomputed from the reference dataset. Based on this neighborhood graph, moments of spliced and unspliced counts and velocities were computed as described before (see Methods subsection Data processing and RNA velocity analysis). Then, PAGA was run as described above.

Supporting information

S1 Fig. Correlation of Cell Ranger and velocyto counts of overlapping genes.

(A) Relation between Cell Ranger counts and velocyto unspliced counts of overlapping genes on opposite strands for the T cell dataset [13]. Color indicates the Cell Ranger alignment mode for the corresponding sample (single-end (SE) or paired-end (PE)). ρSE/ρPE: Pearson correlation for SE and PE aligned samples, respectively. Genes on the x-axis are sorted in descending order of the proportion of their nucleotides overlapping with a gene located on the antiparallel strand (displayed on the y-axis). (B) Illustration of the overlap of the gene MIF on the forward strand with an exon of the long non-coding RNA MIF-AS1 on the reverse strand. Grey arrows represent introns and indicate the direction of the respective transcripts. Colored boxes represent exons, split into coding DNA sequence (CDS, darker shades) and untranslated regions (UTR, lighter shades). (C-D) Relation between Cell Ranger counts for MIF and velocyto spliced counts for the overlapping transcript MIF-AS1 for the B cell (C) and T cell (D) datasets. Color in subpanel D represents the Cell Ranger alignment mode for the corresponding sample (single-end (SE) or paired-end (PE)).

(TIF)

pone.0355867.s001.tif (1.5MB, tif)
S2 Fig. No co-expression of overlapping genes.

Relation between Cell Ranger counts of overlapping genes on opposite strands for the B cell dataset [11] (ρ: Pearson correlation). Genes on the x-axis are sorted in descending order of the proportion of their nucleotides overlapping with a gene located on the antiparallel strand (displayed on the y-axis). The same gene pairs as in Fig 1G are shown.

(TIF)

pone.0355867.s002.tif (641.9KB, tif)
S3 Fig. Comparison of spliced, unspliced, and ambiguous counts across methods.

(A-C) Boxplots of the difference from tidesurf for total spliced (A), unspliced (B), and ambiguous (C) counts per cell. (D-F) Boxplots of Pearson correlation of spliced (D), unspliced (E), and ambiguous (F) counts per gene between methods.

(TIF)

pone.0355867.s003.tif (1.6MB, tif)
S4 Fig. Comparison of RNA velocities between methods.

(A-B) Visualization of velocities for the developing retina (A) [20] and T cell (B) [13] datasets, computed from spliced and unspliced counts obtained with velocyto, alevin-fry, STARsolo, or tidesurf (top to bottom) on a two-dimensional UMAP embedding. In the top three subpanels, color represents the cosine similarity between two-dimensional UMAP velocity projections between the respective method and tidesurf. In the bottom panel, color represents cell type. (C) Boxplot of cosine similarity of velocity vectors per cell between methods for all genes. (D) Boxplot of Pearson correlation of velocities per gene between methods for all genes.

(TIF)

pone.0355867.s004.tif (7.3MB, tif)
S5 Fig. Comparison of inferred cluster transitions.

(A-B) Partition-based graph abstraction (PAGA) [24] with velocity-directed edges for the developing retina [20] (A) and T cell [13] datasets (B). The underlying RNA velocity estimates were computed from the spliced and unspliced counts obtained with velocyto, alevin-fry, STARsolo, and tidesurf, respectively (top to bottom). Dashed lines show connectivities, and solid arrows indicate transitions.

(TIF)

pone.0355867.s005.tif (7.6MB, tif)
S6 Fig. Comparison of run time and memory requirements.

(A-B) Mean run time (A) and utilized memory (B) for five selected samples, plotted against the number of reads in the sample. The lines represent the mean of five runs. Error bars show standard deviation.

(TIF)

pone.0355867.s006.tif (382.6KB, tif)

Acknowledgments

We thank the members of the Claassen group for constructive discussions and feedback. Special thanks go to Matthias Bruhns and Marcello Zago for helpful feedback on code efficiency and implementation details. The authors thank the International Max Planck Research School for Intelligent Systems (IMPRS-IS) for supporting J.T.S.

Data Availability

Raw count matrices and processed AnnData objects are available on Zenodo at https://doi.org/10.5281/zenodo.19096002. A Python implementation of tidesurf is available from PyPI and at https://github.com/janschleicher/tidesurf. Code for reproducing the analyses is available at https://github.com/janschleicher/tidesurf_projects.

Funding Statement

This work was supported by grants DFG CL 792/1-1 and DFG EXC 2180. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.

References

  • 1.Griffiths JA, Scialdone A, Marioni JC. Using single-cell genomics to understand developmental processes and cell fate decisions. Mol Syst Biol. 2018;14(4):e8046. doi: 10.15252/msb.20178046 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 2.Nayak R, Hasija Y. A hitchhiker’s guide to single-cell transcriptomics and data analysis pipelines. Genomics. 2021;113(2):606–19. doi: 10.1016/j.ygeno.2021.01.007 [DOI] [PubMed] [Google Scholar]
  • 3.Zheng GXY, Terry JM, Belgrader P, Ryvkin P, Bent ZW, Wilson R, et al. Massively parallel digital transcriptional profiling of single cells. Nat Commun. 2017;8:14049. doi: 10.1038/ncomms14049 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 4.Dobin A, Davis CA, Schlesinger F, Drenkow J, Zaleski C, Jha S, et al. STAR: ultrafast universal RNA-seq aligner. Bioinformatics. 2013;29(1):15–21. doi: 10.1093/bioinformatics/bts635 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 5.La Manno G, Soldatov R, Zeisel A, Braun E, Hochgerner H, Petukhov V, et al. RNA velocity of single cells. Nature. 2018;560(7719):494–8. doi: 10.1038/s41586-018-0414-6 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 6.He D, Zakeri M, Sarkar H, Soneson C, Srivastava A, Patro R. Alevin-fry unlocks rapid, accurate and memory-frugal quantification of single-cell RNA-seq data. Nat Methods. 2022;19(3):316–22. doi: 10.1038/s41592-022-01408-3 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 7.Melsted P, Booeshaghi AS, Liu L, Gao F, Lu L, Min KHJ, et al. Modular, efficient and constant-memory single-cell RNA-seq preprocessing. Nat Biotechnol. 2021;39(7):813–8. doi: 10.1038/s41587-021-00870-2 [DOI] [PubMed] [Google Scholar]
  • 8.Patro R, Duggal G, Love MI, Irizarry RA, Kingsford C. Salmon provides fast and bias-aware quantification of transcript expression. Nat Methods. 2017;14(4):417–9. doi: 10.1038/nmeth.4197 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 9.Bray NL, Pimentel H, Melsted P, Pachter L. Near-optimal probabilistic RNA-seq quantification. Nature Biotechnology. 2016;34(5):525–7. doi: 10.1038/nbt.3519 [DOI] [PubMed] [Google Scholar]
  • 10.Bergen V, Lange M, Peidli S, Wolf FA, Theis FJ. Generalizing RNA velocity to transient cell states through dynamical modeling. Nat Biotechnol. 2020;38(12):1408–14. doi: 10.1038/s41587-020-0591-3 [DOI] [PubMed] [Google Scholar]
  • 11.Stewart A, Ng JCF, Wallis G, Tsioligka V, Fraternali F, Dunn-Walters DK. Single-cell transcriptomic analyses define distinct peripheral B cell subsets and discrete development pathways. Front Immunol. 2021;12. doi: 10.3389/fimmu.2021.602539 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 12.Mathew NR, Jayanthan JK, Smirnov IV, Robinson JL, Axelsson H, Nakka SS, et al. Single-cell BCR and transcriptome analysis after influenza infection reveals spatiotemporal dynamics of antigen-specific B cells. Cell Rep. 2021;35(12):109286. doi: 10.1016/j.celrep.2021.109286 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 13.Fu J, Wang Z, Martinez M, Obradovic A, Jiao W, Frangaj K, et al. Plasticity of intragraft alloreactive T cell clones in human gut correlates with transplant outcomes. J Exp Med. 2024;221(1):e20230930. doi: 10.1084/jem.20230930 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 14.Marzano P, Balin S, Terzoli S, Della Bella S, Cazzetta V, Piazza R. Transcriptomic profile of TNF high MAIT cells is linked to B cell response following SARS-CoV-2 vaccination. Front Immunol. 2023;14. doi: 10.3389/fimmu.2023.1208662 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 15.McClory SE, Bardhan O, Rome KS, Giles JR, Baxter AE, Xu L, et al. The pseudokinase Trib1 regulates the transition of exhausted T cells to a KLR+ CD8+ effector state, and its deletion improves checkpoint blockade. Cell Rep. 2023;42(8). Available from: doi: 10.1016/j.celrep.2023.112905 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 16.Liu B, Hu X, Feng K, Gao R, Xue Z, Zhang S, et al. Temporal single-cell tracing reveals clonal revival and expansion of precursor exhausted T cells during anti-PD-1 therapy in lung cancer. Nat Cancer. 2022;3(1):108–21. doi: 10.1038/s43018-021-00292-8 [DOI] [PubMed] [Google Scholar]
  • 17.Zhong H, Huan X, Zhao R, Su M, Yan C, Song J, et al. Peripheral immune landscape for hypercytokinemia in myasthenic crisis utilizing single-cell transcriptomics. J Transl Med. 2023;21(1):564. doi: 10.1186/s12967-023-04421-y [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 18.Argyriou A, Wadsworth MH 2nd, Lendvai A, Christensen SM, Hensvold AH, Gerstner C, et al. Single cell sequencing identifies clonally expanded synovial CD4+ TPH cells expressing GPR56 in rheumatoid arthritis. Nat Commun. 2022;13(1):4046. doi: 10.1038/s41467-022-31519-6 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 19.Bastidas-Ponce A, Tritschler S, Dony L, Scheibner K, Tarquis-Medina M, Salinno C, et al. Comprehensive single cell mRNA profiling reveals a detailed roadmap for pancreatic endocrinogenesis. Development. 2019;146(12):dev173849. doi: 10.1242/dev.173849 [DOI] [PubMed] [Google Scholar]
  • 20.Lo Giudice Q, Leleu M, La Manno G, Fabre PJ. Single-cell transcriptional logic of cell-fate specification and axon guidance in early-born retinal neurons. Development. 2019;146(17):dev178103. doi: 10.1242/dev.178103 [DOI] [PubMed] [Google Scholar]
  • 21.Sanna CR, Li W-H, Zhang L. Overlapping genes in the human and mouse genomes. BMC Genomics. 2008;9:169. doi: 10.1186/1471-2164-9-169 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 22.Lu JY, Shao W, Chang L, Yin Y, Li T, Zhang H, et al. Genomic repeats categorize genes with distinct functions for orchestrated regulation. Cell Rep. 2020;30(10):3296-3311.e5. doi: 10.1016/j.celrep.2020.02.048 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 23.Blum A, Hopcroft J, Kannan R. Foundations of data science. Cambridge: Cambridge University Press; 2020. doi: 10.1017/9781108755528 [DOI] [Google Scholar]
  • 24.Wolf FA, Hamey FK, Plass M, Solana J, Dahlin JS, Göttgens B, et al. PAGA: graph abstraction reconciles clustering with trajectory inference through a topology preserving map of single cells. Genome Biol. 2019;20(1):59. doi: 10.1186/s13059-019-1663-x [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 25.Gorin G, Fang M, Chari T, Pachter L. RNA velocity unraveled. PLoS Comput Biol. 2022;18(9):e1010492. doi: 10.1371/journal.pcbi.1010492 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 26.Zheng SC, Stein-O’Brien G, Boukas L, Goff LA, Hansen KD. Pumping the brakes on RNA velocity by understanding and interpreting RNA velocity estimates. Genome Biol. 2023;24(1):246. doi: 10.1186/s13059-023-03065-x [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 27.10x Genomics. Cell Ranger’s Gene Expression Algorithm [Internet]. 10x Genomics; 2026. [cited 2026 Jun 16]. Available from: https://www.10xgenomics.com/support/software/cell-ranger/latest/algorithms-overview/cr-gex-algorithm
  • 28.Virshup I, Rybakov S, Theis FJ, Angerer P, Wolf FA. anndata: Access and store annotated data matrices. JOSS. 2024;9(101):4371. doi: 10.21105/joss.04371 [DOI] [Google Scholar]
  • 29.Gao M, Qiao C, Huang Y. UniTVelo: temporally unified RNA velocity reinforces single-cell trajectory inference. Nat Commun. 2022;13(1):6586. doi: 10.1038/s41467-022-34188-7 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 30.Wolf FA, Angerer P, Theis FJ. SCANPY: large-scale single-cell gene expression data analysis. Genome Biol. 2018;19(1):15. doi: 10.1186/s13059-017-1382-0 [DOI] [PMC free article] [PubMed] [Google Scholar]

Decision Letter 0

Andreas Neueder

4 May 2026

-->PONE-D-26-15640-->-->Accurate quantification of spliced and unspliced transcripts for single-cell RNA sequencing with tidesurf.-->-->PLOS One

Dear Dr. Claassen,

Thank you for submitting your manuscript to PLOS ONE. After careful consideration, we feel that it has merit but does not fully meet PLOS ONE’s publication criteria as it currently stands. Therefore, we invite you to submit a revised version of the manuscript that addresses the points raised during the review process.-->--> -->-->The reviewers have suggested a few experiments and re-writes, which will strengthen the manuscript.

Please let me know if you need more time to conduct the revision.

Please submit your revised manuscript by Jun 18 2026 11:59PM. If you will need more time than this to complete your revisions, please reply to this message or contact the journal office at plosone@plos.org. When you're ready to submit your revision, log on to https://www.editorialmanager.com/pone/ and select the 'Submissions Needing Revision' folder to locate your manuscript file.

Please include the following items when submitting your revised manuscript:-->

  • A letter that responds to each point raised by the academic editor and reviewer(s). You should upload this letter as a separate file labeled 'Response to Reviewers'.

  • A marked-up copy of your manuscript that highlights changes made to the original version. You should upload this as a separate file labeled 'Revised Manuscript with Track Changes'.

  • An unmarked version of your revised paper without tracked changes. You should upload this as a separate file labeled 'Manuscript'.

-->

If you would like to make changes to your financial disclosure, please include your updated statement in your cover letter. Guidelines for resubmitting your figure files are available below the reviewer comments at the end of this letter.

If applicable, we recommend that you deposit your laboratory protocols in protocols.io to enhance the reproducibility of your results. Protocols.io assigns your protocol its own identifier (DOI) so that it can be cited independently in the future. For instructions see: https://journals.plos.org/plosone/s/submission-guidelines#loc-laboratory-protocols. Additionally, PLOS ONE offers an option for publishing peer-reviewed Lab Protocol articles, which describe protocols hosted on protocols.io. Read more information on sharing protocols at https://plos.org/protocols?utm_medium=editorial-email&utm_source=authorletters&utm_campaign=protocols.

As the corresponding author, your ORCID iD is verified in the submission system and will appear in the published article. PLOS supports the use of ORCID, and we encourage all coauthors to register for an ORCID iD and use it as well. Please encourage your coauthors to verify their ORCID iD within the submission system before final acceptance, as unverified ORCID iDs will not appear in the published article. Only  the individual author can complete the verification step; PLOS staff cannot  verify ORCID iDs on behalf of authors.

We look forward to receiving your revised manuscript.

Kind regards,

Andreas Neueder

Academic Editor

PLOS One

Journal Requirements:

When submitting your revision, we need you to address these additional requirements.

1. Please ensure that your manuscript meets PLOS ONE's style requirements, including those for file naming. The PLOS ONE style templates can be found at

https://journals.plos.org/plosone/s/file?id=wjVg/PLOSOne_formatting_sample_main_body.pdf and

https://journals.plos.org/plosone/s/file?id=ba62/PLOSOne_formatting_sample_title_authors_affiliations.pdf

2. We note that the grant information you provided in the ‘Funding Information’ and ‘Financial Disclosure’ sections do not match.

When you resubmit, please ensure that you provide the correct grant numbers for the awards you received for your study in the ‘Funding Information’ section.

3. Thank you for stating the following financial disclosure: [DFG CL 792/1-1, DFG EXC 2180].

Please state what role the funders took in the study.  If the funders had no role, please state: ""The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.""

If this statement is not correct you must amend it as needed.

Please include this amended Role of Funder statement in your cover letter; we will change the online submission form on your behalf.

4. Thank you for uploading your study's underlying data set. Unfortunately, the repository you have noted in your Data Availability statement does not qualify as an acceptable data repository according to PLOS's standards.

At this time, please upload the minimal data set necessary to replicate your study's findings to a stable, public repository (such as figshare or Dryad) and provide us with the relevant URLs, DOIs, or accession numbers that may be used to access these data. For a list of recommended repositories and additional information on PLOS standards for data deposition, please see https://journals.plos.org/plosone/s/recommended-repositories.

5. If the reviewer comments include a recommendation to cite specific previously published works, please review and evaluate these publications to determine whether they are relevant and should be cited. There is no requirement to cite these works unless the editor has indicated otherwise.

6. Please review your reference list to ensure that it is complete and correct. If you have cited papers that have been retracted, please include the rationale for doing so in the manuscript text, or remove these references and replace them with relevant current references. Any changes to the reference list should be mentioned in the rebuttal letter that accompanies your revised manuscript. If you need to cite a retracted article, indicate the article’s retracted status in the References list and also include a citation and full reference for the retraction notice.

[Note: HTML markup is below. Please do not edit.]

Reviewers' comments:

Reviewer's Responses to Questions

-->Comments to the Author

1. Is the manuscript technically sound, and do the data support the conclusions?

The manuscript must describe a technically sound piece of scientific research with data that supports the conclusions. Experiments must have been conducted rigorously, with appropriate controls, replication, and sample sizes. The conclusions must be drawn appropriately based on the data presented. -->

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Partly

**********

-->2. Has the statistical analysis been performed appropriately and rigorously? -->

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: No

**********

-->3. Have the authors made all data underlying the findings in their manuscript fully available?

The PLOS Data policy requires authors to make all data underlying the findings described in their manuscript fully available without restriction, with rare exception (please refer to the Data Availability Statement in the manuscript PDF file). The data should be provided as part of the manuscript or its supporting information, or deposited to a public repository. For example, in addition to summary statistics, the data points behind means, medians and variance measures should be available. If there are restrictions on publicly sharing data—e.g. participant privacy or use of data from a third party—those must be specified.-->

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

-->4. Is the manuscript presented in an intelligible fashion and written in standard English?

PLOS ONE does not copyedit accepted manuscripts, so the language in submitted articles must be clear, correct, and unambiguous. Any typographical or grammatical errors should be corrected at revision, so please note any specific errors here.-->

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

-->5. Review Comments to the Author

Please use the space provided to explain your answers to the questions above. You may also include additional comments for the author, including concerns about dual publication, research ethics, or publication ethics. (Please upload your review as an attachment if it exceeds 20,000 characters)-->

Reviewer #1: The manuscript “Accurate quantification of spliced and unspliced transcripts for single-cell RNA sequencing with tidesurf” by Schleicher et al. describes the implementation of a new tool, tidesurf, for RNA velocity inference. The key advance of this tool is its ability to infer RNA velocity measures from both 3′- and 5′-based scRNA-seq protocols. The authors demonstrate clear advantages of tidesurf over velocyto, which was not designed to handle 5′-based scRNA-seq protocols but has nevertheless been used for this purpose, often leading to misleading results. They present a strong and defensible case for the superiority of tidesurf in analyzing 5′-based scRNA-seq data by identifying the underlying issues that affect velocyto’s performance.

The authors also compare tidesurf with alevin-fry and STARsolo, showing high concordance between these tools for 5′-based scRNA-seq protocols and demonstrating that all tools perform similarly on 3′-based scRNA-seq. The performance benchmarks provided in the supplementary materials are additionally helpful for understanding how these tools compare depending on what resources an investigator may have at their disposal.

One area where differences remain between tidesurf and alevin-fry is in datasets derived from human donors. The authors address this, noting: “The human genome contains more repetitive sequences than the murine genome [21], which could lead to differences in the (pseudo-) alignments of Cell Ranger and alevin-fry, especially for intronic sequences. Furthermore, the total unspliced counts were considerably lower on the two 5′ datasets, rendering small absolute differences relatively more important. Finally, alevin-fry’s quantification of total counts differed slightly more from the Cell Ranger output than tidesurf’s (Fig. 3B–D).”

I wonder whether there is a dataset that could serve as a ground truth (even a simulated dataset) to more directly evaluate the performance of these tools and clarify the sources of similarity or divergence between tidesurf and alevin-fry. One possible candidate is the dataset described in PMID: 38782298, which includes both long-read and short-read data generated from the same 10x Chromium samples. Although this dataset is not human, and the authors suggest the discrepancies may be human-specific, it could still provide informative insights for readers seeking to understand how these tools behave under conditions where transcript structures are more fully resolved.

Reviewer #2: 1. Is the manuscript technically sound, and do the data support the conclusions?

Yes. The study is technically solid and the comparisons across datasets and tools are well done. The data generally support the main conclusion that velocyto performs poorly on 5′ scRNA-seq data, while tidesurf and other tools give more consistent results. The conclusions are reasonable based on the presented evidence.

2. Has the statistical analysis been performed appropriately and rigorously?

The analyses used (correlations, distribution comparisons, and velocity/PAGA comparisons) are appropriate for this type of benchmarking study. However, the statistical evaluation is mostly descriptive, and a bit more formal testing would improve clarity, although it is not critical.

3. Have the authors made all data underlying the findings fully available?

Yes. The datasets are clearly referenced with GEO/ArrayExpress accessions, and processed data and tools are described well enough to allow reproduction. Data availability is adequate.

4. Is the manuscript presented in an intelligible fashion and written in standard English?

Yes. The manuscript is clearly written and easy to follow. Only minor language polishing is needed in a few dense methodological sections.

5. Review comments to the author

The manuscript is well written and addresses an important issue in scRNA-seq velocity analysis. The findings are convincing and supported by multiple datasets and methods. T

A few minor points to improve the manuscript:

•The conclusions about “incorrect” assignments in velocyto could be slightly softened, since there is no direct ground truth.

•A small summary table comparing tool settings would improve readability.

Generally, this is a solid and useful methodological paper with clear practical relevance.

Reviewer #3: The manuscript talks about an interesting aspect of identifying spliced and unspliced RNA transcripts but I am little confused as to why the authors have downplayed Velocyto which looks like the crux of the entire manuscript. I understand that Velocyto has not been upgraded to include the pitfalls of 5’ chemistry but what if they do that upgrade soon and make Velocyto as powerful as 10X genomics softwares.

It would have been nice if the authors have introduced Tidesurf as the new command line software which addresses the pitfalls of existing softwares such as Velocyto in a sentence or two but not make it the crux of the entire manuscript.

Can the existing manuscript be rearranged and rewritten so as to put the focus completely on the USPs of Tidesurf highlighting the real time importance rather than downgrading an existing software which was introduced in 2018-2019. I would say few sentences about Velocyto are in harsh language which is not desired for the readers.

If that modification (major revision) can be done than the manuscript will be in a good shape and can be considered for publication.

**********

-->6. PLOS authors have the option to publish the peer review history of their article (what does this mean?). If published, this will include your full peer review and any attached files.

If you choose “no”, your identity will remain anonymous but your review may still be made public.

Do you want your identity to be public for this peer review?  For information about this choice, including consent withdrawal, please see our Privacy Policy.-->

Reviewer #1: No

Reviewer #2: Yes: Addis Tekaw

Reviewer #3: Yes: Dr. Gauri Awasthi

**********

[NOTE: If reviewer comments were submitted as an attachment file, they will be attached to this email and accessible via the submission site. Please log into your account, locate the manuscript record, and check for the action link "View Attachments". If this link does not appear, there are no attachment files.]

To ensure your figures meet our technical requirements, please review our figure guidelines: https://journals.plos.org/plosone/s/figures

You may also use PLOS’s free figure tool, NAAS, to help you prepare publication quality figures: https://journals.plos.org/plosone/s/figures#loc-tools-for-figure-preparation.

NAAS will assess whether your figures meet our technical requirements by comparing each figure against our figure specifications.

-->

Attachment

Submitted filename: PLOS One tidesurf - review.docx

pone.0355867.s007.docx (12.3KB, docx)

Decision Letter 1

Andreas Neueder

27 Jul 2026

Accurate quantification of spliced and unspliced transcripts for single-cell RNA sequencing with tidesurf.

PONE-D-26-15640R1

Dear Dr. Claassen,

We’re pleased to inform you that your manuscript has been judged scientifically suitable for publication and will be formally accepted for publication once it meets all outstanding technical requirements.

Within one week, you’ll receive an e-mail detailing the required amendments. When these have been addressed, you’ll receive a formal acceptance letter and your manuscript will be scheduled for publication.

An invoice will be generated when your article is formally accepted. Please note, if your institution has a publishing partnership with PLOS and your article meets the relevant criteria, all or part of your publication costs will be covered. Please make sure your user information is up-to-date by logging into Editorial Manager at Editorial Manager® and clicking the ‘Update My Information' link at the top of the page. For questions related to billing, please contact billing support.

If your institution or institutions have a press office, please notify them about your upcoming paper to help maximize its impact. If they’ll be preparing press materials, please inform our press team as soon as possible -- no later than 48 hours after receiving the formal acceptance. Your manuscript will remain under strict press embargo until 2 pm Eastern Time on the date of publication. For more information, please contact onepress@plos.org.

Kind regards,

Andreas Neueder

Academic Editor

PLOS One

Additional Editor Comments (optional):

Reviewers' comments:

Reviewer's Responses to Questions

-->Comments to the Author

1. If the authors have adequately addressed your comments raised in a previous round of review and you feel that this manuscript is now acceptable for publication, you may indicate that here to bypass the “Comments to the Author” section, enter your conflict of interest statement in the “Confidential to Editor” section, and submit your "Accept" recommendation.-->

Reviewer #1: All comments have been addressed

Reviewer #2: All comments have been addressed

Reviewer #3: All comments have been addressed

**********

-->2. Is the manuscript technically sound, and do the data support the conclusions?

The manuscript must describe a technically sound piece of scientific research with data that supports the conclusions. Experiments must have been conducted rigorously, with appropriate controls, replication, and sample sizes. The conclusions must be drawn appropriately based on the data presented. -->

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

-->3. Has the statistical analysis been performed appropriately and rigorously? -->

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

-->4. Have the authors made all data underlying the findings in their manuscript fully available?

The PLOS Data policy requires authors to make all data underlying the findings described in their manuscript fully available without restriction, with rare exception (please refer to the Data Availability Statement in the manuscript PDF file). The data should be provided as part of the manuscript or its supporting information, or deposited to a public repository. For example, in addition to summary statistics, the data points behind means, medians and variance measures should be available. If there are restrictions on publicly sharing data—e.g. participant privacy or use of data from a third party—those must be specified.-->

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

-->5. Is the manuscript presented in an intelligible fashion and written in standard English?

PLOS ONE does not copyedit accepted manuscripts, so the language in submitted articles must be clear, correct, and unambiguous. Any typographical or grammatical errors should be corrected at revision, so please note any specific errors here.-->

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

-->6. Review Comments to the Author

Please use the space provided to explain your answers to the questions above. You may also include additional comments for the author, including concerns about dual publication, research ethics, or publication ethics. (Please upload your review as an attachment if it exceeds 20,000 characters)-->

Reviewer #1: The authors went beyond what was expected from me and actually bring to light interesting differences between long-read and short-read sequencing in their response. I think this manuscript contributes to the understanding of 5' sequencing and brings a new tool to this assessment.

Reviewer #2: The authors have addressed my comments satisfactorily. The manuscript has been improved by adding formal statistical tests, clarifying the interpretation of the results, and softening conclusions where no direct ground truth is available. The addition of summary tables for tool settings also improves readability and reproducibility. Overall, this is a well-executed and practically relevant benchmarking study that provides useful guidance for RNA velocity analysis of 10x Genomics 5′ scRNA-seq data. I have no further major concerns and recommend the manuscript for publication after these revisions.

Reviewer #3: All comments have been addressed satisfactorily by the authors in the revised version. Recommended for acceptance.

**********

-->7. PLOS authors have the option to publish the peer review history of their article (what does this mean?). If published, this will include your full peer review and any attached files.

If you choose “no”, your identity will remain anonymous but your review may still be made public.

Do you want your identity to be public for this peer review?  For information about this choice, including consent withdrawal, please see our Privacy Policy.-->

Reviewer #1: Yes: Philip J. Moos

Reviewer #2: No

Reviewer #3: Yes: Dr. Gauri Awasthi

**********

Acceptance letter

Andreas Neueder

PONE-D-26-15640R1

PLOS One

Dear Dr. Claassen,

I'm pleased to inform you that your manuscript has been deemed suitable for publication in PLOS One. Congratulations! Your manuscript is now being handed over to our production team.

At this stage, our production department will prepare your paper for publication. This includes ensuring the following:

* All references, tables, and figures are properly cited

* All relevant supporting information is included in the manuscript submission,

* There are no issues that prevent the paper from being properly typeset

You will receive further instructions from the production team, including instructions on how to review your proof when it is ready. Please keep in mind that we are working through a large volume of accepted articles, so please give us a few days to review your paper and let you know the next and final steps.

Lastly, if your institution or institutions have a press office, please let them know about your upcoming paper now to help maximize its impact. If they'll be preparing press materials, please inform our press team within the next 48 hours. Your manuscript will remain under strict press embargo until 2 pm Eastern Time on the date of publication. For more information, please contact onepress@plos.org.

You will receive an invoice from PLOS for your publication fee after your manuscript has reached the completed accept phase. If you receive an email requesting payment before acceptance or for any other service, this may be a phishing scheme. Learn how to identify phishing emails and protect your accounts at https://explore.plos.org/phishing.

If we can help with anything else, please email us at customercare@plos.org.

Thank you for submitting your work to PLOS ONE and supporting open access.

Kind regards,

PLOS ONE Editorial Office Staff

on behalf of

Prof. Dr. Andreas Neueder

Academic Editor

PLOS One

Associated Data

    This section collects any data citations, data availability statements, or supplementary materials included in this article.

    Supplementary Materials

    S1 Fig. Correlation of Cell Ranger and velocyto counts of overlapping genes.

    (A) Relation between Cell Ranger counts and velocyto unspliced counts of overlapping genes on opposite strands for the T cell dataset [13]. Color indicates the Cell Ranger alignment mode for the corresponding sample (single-end (SE) or paired-end (PE)). ρSE/ρPE: Pearson correlation for SE and PE aligned samples, respectively. Genes on the x-axis are sorted in descending order of the proportion of their nucleotides overlapping with a gene located on the antiparallel strand (displayed on the y-axis). (B) Illustration of the overlap of the gene MIF on the forward strand with an exon of the long non-coding RNA MIF-AS1 on the reverse strand. Grey arrows represent introns and indicate the direction of the respective transcripts. Colored boxes represent exons, split into coding DNA sequence (CDS, darker shades) and untranslated regions (UTR, lighter shades). (C-D) Relation between Cell Ranger counts for MIF and velocyto spliced counts for the overlapping transcript MIF-AS1 for the B cell (C) and T cell (D) datasets. Color in subpanel D represents the Cell Ranger alignment mode for the corresponding sample (single-end (SE) or paired-end (PE)).

    (TIF)

    pone.0355867.s001.tif (1.5MB, tif)
    S2 Fig. No co-expression of overlapping genes.

    Relation between Cell Ranger counts of overlapping genes on opposite strands for the B cell dataset [11] (ρ: Pearson correlation). Genes on the x-axis are sorted in descending order of the proportion of their nucleotides overlapping with a gene located on the antiparallel strand (displayed on the y-axis). The same gene pairs as in Fig 1G are shown.

    (TIF)

    pone.0355867.s002.tif (641.9KB, tif)
    S3 Fig. Comparison of spliced, unspliced, and ambiguous counts across methods.

    (A-C) Boxplots of the difference from tidesurf for total spliced (A), unspliced (B), and ambiguous (C) counts per cell. (D-F) Boxplots of Pearson correlation of spliced (D), unspliced (E), and ambiguous (F) counts per gene between methods.

    (TIF)

    pone.0355867.s003.tif (1.6MB, tif)
    S4 Fig. Comparison of RNA velocities between methods.

    (A-B) Visualization of velocities for the developing retina (A) [20] and T cell (B) [13] datasets, computed from spliced and unspliced counts obtained with velocyto, alevin-fry, STARsolo, or tidesurf (top to bottom) on a two-dimensional UMAP embedding. In the top three subpanels, color represents the cosine similarity between two-dimensional UMAP velocity projections between the respective method and tidesurf. In the bottom panel, color represents cell type. (C) Boxplot of cosine similarity of velocity vectors per cell between methods for all genes. (D) Boxplot of Pearson correlation of velocities per gene between methods for all genes.

    (TIF)

    pone.0355867.s004.tif (7.3MB, tif)
    S5 Fig. Comparison of inferred cluster transitions.

    (A-B) Partition-based graph abstraction (PAGA) [24] with velocity-directed edges for the developing retina [20] (A) and T cell [13] datasets (B). The underlying RNA velocity estimates were computed from the spliced and unspliced counts obtained with velocyto, alevin-fry, STARsolo, and tidesurf, respectively (top to bottom). Dashed lines show connectivities, and solid arrows indicate transitions.

    (TIF)

    pone.0355867.s005.tif (7.6MB, tif)
    S6 Fig. Comparison of run time and memory requirements.

    (A-B) Mean run time (A) and utilized memory (B) for five selected samples, plotted against the number of reads in the sample. The lines represent the mean of five runs. Error bars show standard deviation.

    (TIF)

    pone.0355867.s006.tif (382.6KB, tif)
    Attachment

    Submitted filename: PLOS One tidesurf - review.docx

    pone.0355867.s007.docx (12.3KB, docx)
    Attachment

    Submitted filename: Schleicher_2026_rebuttal.pdf

    pone.0355867.s009.pdf (1.4MB, pdf)

    Data Availability Statement

    Raw count matrices and processed AnnData objects are available on Zenodo at https://doi.org/10.5281/zenodo.19096002. A Python implementation of tidesurf is available from PyPI and at https://github.com/janschleicher/tidesurf. Code for reproducing the analyses is available at https://github.com/janschleicher/tidesurf_projects.


    Articles from PLOS One are provided here courtesy of PLOS

    RESOURCES