Plot velocities embedded into low-dimensional space as a stream plot. Stream lines are lines that follow the gradient in the velocity field and illustrate paths that cells could follow based on observed RNA velocities.
plotVelocityStream(
sce,
embedded,
use.dimred = 1,
color_by = "#444444",
color.alpha = 0.2,
grid.resolution = 60,
scale = TRUE,
stream.L = 10,
stream.min.L = 0,
stream.res = 4,
stream.width = 8,
color.streamlines = FALSE,
color.streamlines.map = c("#440154", "#482576", "#414487", "#35608D", "#2A788E",
"#21908C", "#22A884", "#43BF71", "#7AD151", "#BBDF27", "#FDE725"),
arrow.angle = 8,
arrow.length = 0.8
)
A SingleCellExperiment object containing
low-dimensional coordinates, e.g., after t-SNE, in its
reducedDims
.
A low-dimensional projection of the velocity vectors into the
embedding of sce
. This should be of the same dimensions as sce
and is typically produced by embedVelocity
.
String or integer scalar specifying the reduced dimensions
to retrieve from sce
.
A character scalar specifying a column in colData(sce)
to color cells in the phase graph. Alternatively, color_by
can be
set to a valid R color to be used to color cells.
An integer scalar giving the transparency of colored cells. Possible values are between 0 (fully transparent) and 1.0 (opaque).
Integer scalar specifying the resolution of the grid, in terms of the number of grid intervals along each axis.
Logical scalar indicating whether the averaged vectors should be scaled by the grid resolution.
Integer scalar giving the typical length of a streamline low-dimensional space units.
A numeric scalar with the minimum length of segments to be shown.
Numeric scalar specifying the resolution of estimated streamlines (higher numbers increase smoothness of lines but also the time for computation).
A numeric scalar controlling the width of streamlines.
Logical scalar. If TRUE
streamlines will
be colored by local velocity. Arrows cannot be shown in that case.
A character vector specifying the
color range used for mapping local velocities to streamline colors. The
default is viridisLite::viridis(11)
.
Numeric scalars giving the angle
and
length
of arrowheads.
A ggplot2
object with the streamline plot.
grid.resolution
and scale
are passed to
gridVectors
, which is used to summarized the velocity vectors
into an initial grid. A full regular grid is computed from that and used
in geom_streamline
to calculate streamlines. The
following arguments are passed to the arguments given in parenthesis of
geom_streamline
:
stream.L
(L
), stream.res
(res
),
stream.min.L
(min.L
), arrow.angle
(arrow.angle
)
and arrow.length
(arrow.length
).
Streamlines are computed by simple integration with a forward Euler method,
and stream.L
and stream.res
are used to compute the number of
steps and the time interval between steps for the integration.
stream.width
is multiplied with ..step..
estimated by
geom_streamline
to control the width of streamlines.
gridVectors
used to summarize velocity vectors into
a grid (velocity field), the ggplot2 package used for plotting,
geom_streamline
in package metR used to
calculate and add streamlines from the RNA velocity field to the plot,
viridis
for creation of color palettes.
library(scuttle)
set.seed(42)
sce1 <- mockSCE(ncells = 100, ngenes = 500)
sce2 <- mockSCE(ncells = 100, ngenes = 500)
datlist <- list(X=counts(sce1), spliced=counts(sce1), unspliced=counts(sce2))
out <- scvelo(datlist, mode = "dynamical")
em <- embedVelocity(reducedDim(out, 1), out)[,1:2]
#> ℹ Using the 'X' assay as the X matrix
plotVelocityStream(out, em)
#> Warning: The dot-dot notation (`..step..`) was deprecated in ggplot2 3.4.0.
#> ℹ Please use `after_stat(step)` instead.
#> ℹ The deprecated feature was likely used in the velociraptor package.
#> Please report the issue at <https://github.com/kevinrue/velociraptor/issues>.
plotVelocityStream(out, em, color.streamlines = TRUE)