---
title: "RNA-velocity for SuperCell"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{RNA-velocity for SuperCell}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "figures/",
  fig.width = 6, fig.height = 6,
  eval = FALSE
)
```

## RNA velocity combining with metacells computed with SuperCell

```{r library, warning=FALSE, eval=FALSE}
if (!requireNamespace("remotes")) install.packages("remotes")
remotes::install_github("GfellerLab/SuperCell")
```

```{r load libraries, warning=FALSE}
library(SuperCell)
library(velocyto.R)
```

We show an example of how SuperCell can be used prior to velocyto.R to compute RNA velocity.

### Load data and compute metacells' spliced and un-spliced counts


We use a built-in *pancreas* dataset from [Bastidas-Ponce et al. (2019)](https://journals.biologists.com/dev/article/146/12/dev173849/19483/Comprehensive-single-cell-mRNA-profiling-reveals-a) For RNA velocity, we need spliced and un-spliced count matrices.

```{r load data}
data("pancreas")
```

```{r compute metacells for RNA velocity}
SC_pancreas <- SCimplify_for_velocity(
  pancreas$emat, 
  pancreas$nmat, 
  gamma = 10)
```

### Compute RNA velocity

```{r compute RNA velocity}
Vel <- supercell_estimate_velocity(SC_pancreas$emat, SC_pancreas$nmat)
```

### Plot RNA velocity on a tSNE's coordinates

```{r plot RNA velocity}
# Assign clusters to metacells based on the given single clustering
clusters <- supercell_assign(pancreas$meta$clusters, SC_pancreas$membership)
```

#### Set up the color scheme
```{r set up the color scheme}
# Set up the color scheme
N.clusters <- length(unique(clusters))
pal <- setNames(colorRampPalette(RColorBrewer::brewer.pal(8, name= "Set1"))(N.clusters), 
                as.character(unique(clusters))) 
color <- setNames(pal[as.character(clusters)], names(clusters))

map_cluster_to_cluster_name <- c('Ngn3 low EP', 'Alpha', 'Delta', 'Beta', 'Pre-endocrine', 'Ngn3 high EP', 'Ductal', 'Epsilon')
```

#### Plot tSNE
```{r Plot tSNE, fig.asp=1, fig.height=5, fig.width=5, fig.ext='pdf'}
size <- sqrt(1+table(SC_pancreas$membership))/sqrt(2)/2
set.seed(3)
tsne10 <- tSNE.velocity.plot(Vel, 
                             cell.colors = ac(color, alpha = 0.6), 
                             scale = "log", do.par = T,
                             delta.norm = FALSE, nPcs = 15, norm.nPcs = 15 * 10, perplexity = 50,
                             show.grid.flow = FALSE, grid.n = 20, grid.sd = NULL, min.grid.cell.mass = 1,
                             pcount = 1, verbose = TRUE, min.arrow.median.ratio = 1/10,
                             max.arrow.quantile = 0.9, arrow.scale = 1, arrow.lwd = 1,
                             xlab = "tSNE-x", ylab = "tSNE-y", size.norm = FALSE, cex = size
)
legend("topleft", legend=map_cluster_to_cluster_name,
       fill=pal,  cex=0.8)

```
