Skip to contents

Runs the Slingshot algorithm on a Seurat object.

Usage

RunSlingshot(
  srt,
  group.by,
  reduction = NULL,
  dims = NULL,
  start = NULL,
  end = NULL,
  prefix = NULL,
  reverse = FALSE,
  align_start = FALSE,
  show_plot = TRUE,
  lineage_palette = "Dark2",
  seed = 11,
  ...
)

Arguments

srt

A Seurat object.

group.by

The variable to group the cells by.

reduction

The reduction technique to use for dimensionality reduction. Default is NULL, which uses the default reduction for the Seurat object.

dims

The dimensions to use for the Slingshot algorithm. Default is NULL, which uses first two dimensions.

start

The starting group for the Slingshot algorithm. Default is NULL.

end

The ending group for the Slingshot algorithm. Default is NULL.

prefix

The prefix to add to the column names of the resulting pseudotime variable. Default is NULL.

reverse

Logical value indicating whether to reverse the pseudotime variable. Default is FALSE.

align_start

Logical value indicating whether to align the starting pseudotime values at the maximum pseudotime. Default is FALSE.

show_plot

Logical value indicating whether to show the dimensionality plot. Default is TRUE.

lineage_palette

The color palette to use for the lineages in the plot. Default is "Dark2".

seed

The random seed to use for reproducibility. Default is 11.

...

Additional arguments to be passed to the slingshot function.

Examples

data("pancreas_sub")
pancreas_sub <- RunSlingshot(
  pancreas_sub,
  group.by = "SubCellType",
  reduction = "UMAP"
)
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: Removed 9 rows containing missing values or values outside the scale range
#> (`geom_path()`).
#> Warning: Removed 9 rows containing missing values or values outside the scale range
#> (`geom_path()`).
#> Warning: Removed 13 rows containing missing values or values outside the scale range
#> (`geom_path()`).
#> Warning: Removed 13 rows containing missing values or values outside the scale range
#> (`geom_path()`).

pancreas_sub <- RunSlingshot(
  pancreas_sub,
  group.by = "SubCellType",
  reduction = "PCA",
  dims = 1:10
)
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.

CellDimPlot(
  pancreas_sub,
  group.by = "SubCellType",
  reduction = "UMAP",
  lineages = paste0("Lineage", 1:2),
  lineages_span = 0.1
)
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.


# 3D lineage
pancreas_sub <- standard_scop(pancreas_sub)
#>  [2025-07-02 03:06:28] Start standard_scop
#>  [2025-07-02 03:06:28] Checking srt_list...
#>  [2025-07-02 03:06:29] Data 1/1 of the srt_list has been log-normalized.
#>  [2025-07-02 03:06:29] Perform FindVariableFeatures on the data 1/1 of the srt_list...
#>  [2025-07-02 03:06:29] Use the separate HVF from srt_list...
#>  [2025-07-02 03:06:29] Number of available HVF: 2000
#>  [2025-07-02 03:06:30] Finished checking.
#>  [2025-07-02 03:06:30] Perform ScaleData on the data...
#>  [2025-07-02 03:06:30] Perform linear dimension reduction (pca) on the data...
#>  [2025-07-02 03:06:30] linear_reduction(pca) is already existed. Skip calculation.
#>  [2025-07-02 03:06:30] Perform FindClusters (louvain) on the data...
#>  [2025-07-02 03:06:30] Reorder clusters...
#> ! [2025-07-02 03:06:30] Using 'Seurat::AggregateExpression()' to calculate pseudo-bulk data for 'Assay5'.
#>  [2025-07-02 03:06:31] Perform nonlinear dimension reduction (umap) on the data...
#>  [2025-07-02 03:06:31] Non-linear dimensionality reduction(umap) using Reduction(Standardpca, dims:1-50) as input
#>  [2025-07-02 03:06:35] Non-linear dimensionality reduction(umap) using Reduction(Standardpca, dims:1-50) as input
#>  [2025-07-02 03:06:40] Run standard_scop done
#>  [2025-07-02 03:06:40] Elapsed time:11.31 secs
pancreas_sub <- RunSlingshot(
  pancreas_sub,
  group.by = "SubCellType",
  reduction = "StandardpcaUMAP3D"
)
CellDimPlot(
  pancreas_sub,
  group.by = "SubCellType",
  reduction = "UMAP",
  lineages = paste0("Lineage", 1:2),
  lineages_span = 0.1,
  lineages_trim = c(0.05, 0.95)
)
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.