From Gene-Level Rates to a Cell-Level Vector
RNA velocity describes a model-based, local prediction: for a particular cell, how is each gene’s spliced expression expected to change over a short time interval? The answer across many genes is a vector. Its coordinates are gene expression variables, and each component is a predicted rate of change—not a record of how the cell has already moved between two observations.
For gene \(g\) in cell \(c\), let \(u_{gc}\) and \(s_{gc}\) denote the unspliced and spliced expression quantities used by the fitted kinetic model. In the standard kinetic formulation, unspliced RNA is spliced at rate \(\beta_g\), while spliced RNA is degraded at rate \(\gamma_g\). The model’s instantaneous rate of change in spliced expression is therefore \(\beta_g u_{gc}-\gamma_g s_{gc}\). The earlier material on the steady-state and dynamical RNA velocity models develops how such rates and states are estimated; here the focus is how the gene-level rates form a vector for a cell.
In this expression, \(\hat\beta_g\) and \(\hat\gamma_g\) are estimated gene-specific kinetic rates, and \(u_{gc}\) and \(s_{gc}\) are the corresponding expression quantities on the scale used for the kinetic model. The formula applies when those quantities and rates are defined compatibly by that model. For example, if expression is measured in scaled expression units and time in hours, a component has units of scaled expression units per hour. It is not meaningful to combine a rate estimated for one expression scale with state values on an incompatible scale.
A positive component predicts increasing spliced expression locally; a negative component predicts decreasing spliced expression locally; and a component near zero predicts little instantaneous change under the model. These are statements about a fitted derivative. They do not claim that the expression of every sampled cell will change by that amount, or that a sampled cell has been followed over time.
Why the Vector Is a Local Prediction
The kinetic model gives a differential rate at a cell’s inferred state. If the state changes smoothly over time, a short-step approximation connects this rate to a predicted expression value. For a sufficiently small \(\Delta t\), the first-order Taylor approximation for gene \(g\) is
Here, \(O(\Delta t^2)\) represents terms that become small relative to \(\Delta t\) as the interval shrinks, assuming the trajectory is sufficiently smooth. The approximation is local: it uses the velocity at the starting state. Over a longer interval, the velocity can change as unspliced and spliced expression change, so multiplying the starting velocity by the entire interval may give a poor prediction.
Applying the same approximation to all genes gives a vector prediction: the expression vector is adjusted by the velocity vector times the time interval. This makes clear why the components have units of expression per time, while the resulting predicted changes have units of expression. It also clarifies that the vector is attached to a cell’s modeled state at a particular time; it is not itself a second expression vector or a difference between two cells.
This interpretation depends on the kinetic model being a reasonable description of the local RNA dynamics, on expression values and rates being on compatible scales, and on the time scale being defined consistently. It also presumes that the inferred state and parameters are informative enough to estimate a local derivative. If those conditions are weak, the vector is still a model output, but it should not be treated as a precise biological prediction.
Worked Example: Calculating Two Components
Suppose a hypothetical cell has two genes with scaled expression values and fitted rates expressed per hour. For gene A, \(u_{Ac}=8\), \(s_{Ac}=10\), \(\hat\beta_A=0.50\), and \(\hat\gamma_A=0.30\). For gene B, \(u_{Bc}=3\), \(s_{Bc}=12\), \(\hat\beta_B=0.40\), and \(\hat\gamma_B=0.20\). Assume the kinetic model uses these expression quantities on a compatible scale.
For gene A, the splicing contribution is \(0.50(8)=4.00\) scaled expression units per hour, and the degradation contribution is \(0.30(10)=3.00\) scaled expression units per hour. Thus
For gene B, the corresponding calculation is
The cell’s two-gene velocity vector is \((1.00,-1.20)\) scaled expression units per hour. The model predicts local increase in spliced expression for gene A and decrease for gene B. For a short interval of \(0.25\) hours, the first-order predicted changes are \(1.00(0.25)=0.25\) units for A and \(-1.20(0.25)=-0.30\) units for B. If the current spliced values are 10 and 12, respectively, the corresponding first-order predictions are 10.25 and 11.70. These are local approximations, not observed follow-up measurements.
Velocity Is Not a Difference Between Sampled Cells
A difference between two cells is a displacement in expression coordinates, but it is not automatically a velocity. For example, subtracting one cell’s spliced-expression vector from another’s gives a contrast between two observed states. The cells may differ in their histories, environments, or other properties, and the difference does not specify an elapsed time or establish that one cell became the other.
A velocity component instead comes from a kinetic model evaluated at a cell’s inferred state. To turn it into a short-interval predicted change, a time interval must be specified and the local approximation used. Even then, it remains a model prediction rather than an observed transition. This distinction is especially important when single-cell data are cross-sectional: the cells are generally different sampled units, not repeated measurements of the same cell.
Worked Example: A Cell Difference Is Not a Velocity
Consider two hypothetical cells measured for two genes. Their spliced-expression vectors are \(\mathbf{s}_A=(10,20)\) and \(\mathbf{s}_B=(14,15)\) scaled expression units. The observed vector difference, computed as B minus A, is
Suppose the kinetic model estimates cell A’s velocity as \(\hat{\mathbf{v}}_A=(1,-2)\) scaled expression units per hour. If cell A were locally followed for one hour and its velocity remained approximately constant, the first-order predicted change would be \((1,-2)\) units—not \((4,-5)\). In fact, the observed difference between A and B has no time unit because no elapsed time between those two cell measurements has been established.
The two quantities answer different questions. The cell difference describes how the measured expression values of two cells contrast. The kinetic velocity describes the model-predicted instantaneous change for one cell’s state. Without longitudinal observations and a suitable design, the former cannot be substituted for the latter.
Coordinates, Scaling, and Assumptions
A velocity vector is defined relative to its coordinates. If each gene’s spliced-expression coordinate is rescaled by a fixed factor, the corresponding velocity coordinate must be rescaled by the same factor. Thus, numerical components depend on the expression scale and time unit, while their meaning remains “change in this coordinate per unit time.” Comparing vector components across genes also requires attention to their units and scaling; a larger numerical value alone need not mean a larger biological change on a common scale.
For a simple coordinate transformation \(z_g=a_gs_g\), where \(a_g\) is a fixed scaling constant, differentiation gives \(dz_g/dt=a_g\,ds_g/dt\). More generally, for a differentiable transformation \(\mathbf{z}=f(\mathbf{s})\), the transformed velocity is the derivative of the transformation applied to the velocity, not the original vector copied unchanged. This is why a velocity expressed in gene coordinates should not be mistaken for a rate in some other coordinate system.
where \(J_f(\mathbf{s})\) is the matrix of first derivatives of the transformation \(f\) at \(\mathbf{s}\). This is a coordinate-calculus identity, not a guarantee that a transformed representation preserves all biological or kinetic interpretation.
The component formula also relies on the kinetic specification: splicing and degradation rates are estimated appropriately, the states supplied to the formula correspond to the model’s assumptions, and the modeled processes are sufficiently informative at that cell’s state. A poor fit, uncertain rates, incompatible scaling, or a state with little informative signal can make a component unstable or misleading. The earlier material on uncertainty in gene-level velocity estimates is relevant when assessing how much confidence to place in estimated components.
Worked Example: Rescaling Velocity Coordinates
Suppose a hypothetical two-gene velocity in expression coordinates is \((1,-2)\) scaled expression units per hour. Now define new coordinates by \(z_1=s_1/10\) and \(z_2=s_2/5\). These are fixed linear rescalings, so the velocity components in the new coordinates are rescaled in the same way:
The velocity in the new coordinates is \((0.10,-0.40)\) new coordinate units per hour. The change in the numerical values does not indicate a change in the underlying modeled state dynamics; it reflects a change in the coordinate scales. If the rescaling were ignored, the reported rates would not describe changes in the stated coordinates.
Diagnostics, Alternatives, and Limitations
Several checks help reveal when a velocity vector is being overinterpreted or computed on an unsuitable basis. Confirm that the spliced and unspliced quantities, fitted rates, and reported time units match the kinetic model’s scale. Check whether the gene-level fits support the inferred rates and whether uncertainty is substantial. Inspect whether components are dominated by weakly informed states or unstable parameter estimates. These checks assess whether the model output is credible; a vector’s existence does not by itself establish that the assumptions hold.
The main alternative sometimes confused with a velocity is a finite difference between observed expression vectors. A finite difference can estimate a rate only when observations correspond to an appropriate repeated measurement or trajectory, with a defined time interval and assumptions that support the comparison. In ordinary cross-sectional single-cell data, cells sampled at different states are not automatically repeated observations of one evolving cell. Another approach is to estimate changes along an ordering of cells, but such a difference depends on how the ordering and interval are defined and is not the same as evaluating a kinetic derivative at a cell’s state.
The kinetic vector has its own limitations. It is model-based, can inherit uncertainty or misspecification from gene-level rate estimation, and is local rather than a complete forecast of a long trajectory. Its components refer to the selected gene coordinates and expression scale. Therefore, it is most carefully described as an estimated instantaneous direction and rate of change in spliced expression under the specified model—not as direct observation of a cell’s future or a measured displacement between sampled cells.
Check Your Understanding
Answer each question, then compare with the solutions.
- For a gene with \(u=5\), \(s=8\), \(\hat\beta=0.6\) per hour, and \(\hat\gamma=0.25\) per hour, calculate the velocity component and interpret its sign.
- A cell has a component of \(-0.8\) scaled expression units per hour. What first-order change does the model predict over \(0.5\) hours, and what is the key qualification?
- Why is the expression difference between two cross-sectionally sampled cells not, by itself, a velocity?
- If a gene’s expression coordinate is multiplied by 3, how does its velocity coordinate change under that fixed rescaling?
Solutions. 1. \(\hat v=0.6(5)-0.25(8)=3.00-2.00=1.00\) scaled expression units per hour, so spliced expression is predicted to increase locally under the model. 2. The first-order change is \((-0.8)(0.5)=-0.40\) scaled expression units; it is a local model-based prediction, not an observed change, and may be inaccurate if velocity changes appreciably over the interval. 3. The cells are different observed units, and their contrast has neither a defined elapsed time nor evidence that one cell became the other. 4. The velocity coordinate is also multiplied by 3, because differentiating \(z=3s\) gives \(dz/dt=3\,ds/dt\).