Luise-Seeker-Human-WM-Glia / src / 23_DEG_along_pseudotime.Rmd
23_DEG_along_pseudotime.Rmd
Raw
---
title: "DGE along pseudotime"
author: "Luise A. Seeker"
date: "19/04/2021"
output: html_document
---

#### DGE along pseudotime

```{r, figure.align = "center", fig.width = 6, fig.height = 6}

plot_heatmap(
  model_slingshot,
  expression_source = my_dat_ba4$expression,
  grouping = ba4$ol_clusters_named,
  features_oi = 50
)

```
##### Lineage/branch markers

We can also extract features specific for a branch, eg. genes which change when 
a cell differentiates into a specific oligo subtype


##### Oligo A
```{r, figure.align = "center", fig.width = 6, fig.height = 6}
branch_feature_importance <- 
  calculate_branch_feature_importance(model_slingshot, 
                                      expression_source=my_dat_ba4$expression)

oligo_A_features <- branch_feature_importance %>% 
  filter(to == which(model_slingshot$milestone_labelling =="Oligo_A")) %>% 
  top_n(50, importance) %>% 
  pull(feature_id)

plot_heatmap(
  model_slingshot, 
  expression_source = my_dat_ba4$expression, 
  features_oi = oligo_A_features
)

```

##### Oligo C
```{r, figure.align = "center", fig.width = 6, fig.height = 6}

oligo_F_features <- branch_feature_importance %>% 
  filter(to == which(model_slingshot$milestone_labelling =="Oligo_F")) %>% 
  top_n(50, importance) %>% 
  pull(feature_id)

plot_heatmap(
  model_slingshot, 
  expression_source = my_dat_ba4$expression, 
  features_oi = oligo_F_features
)

```

# SCORPIUS

```{r}
set.seed(1)
model <- infer_trajectory(my_dat_ba4, "scorpius")

```


```{r}

plot_dimred(model, dimred = my_dat_ba4$dimred)

```

# PAGA
```{r}
set.seed(1)
model = dynwrap::infer_trajectory(my_dat_ba4, ti_paga(filter_features = F), 
                                  verbose = TRUE)
```

```{r}

plot_dimred(model)

```


```{r}

plot_dimred(model, dimred = my_dat_ba4$dimred)

```
# PAGA TREE
```{r}
set.seed(1)
model_paga_tree = dynwrap::infer_trajectory(my_dat_ba4, ti_paga_tree(filter_features = F), 
                                  verbose = TRUE)
```

```{r}

plot_dimred(model_paga_tree)

```


```{r}

plot_dimred(model_paga_tree, dimred = my_dat_ba4$dimred)

```

# MST
```{r}
set.seed(1)
model_mst = dynwrap::infer_trajectory(my_dat_ba4, ti_mst())
```


```{r}
plot_dimred(model_mst)

```
```{r}

plot_dimred(model_mst, dimred = my_dat_ba4$dimred)

```
```{r, fig.width = 6, fig.height=6, fullwidth = TRUE}
patchwork::wrap_plots(
  plot_dimred(model_mst, dimred = my_dat_ba4$dimred) + ggtitle("Cell ordering"),
  plot_dimred(model_mst, dimred = my_dat_ba4$dimred, grouping = group_onto_nearest_milestones(model_mst)) + ggtitle("Cell grouping"),
  plot_dimred(model_mst, dimred = my_dat_ba4$dimred, feature_oi = "SPARC", expression_source = my_dat_ba4) + ggtitle("Feature expression"),
  plot_dimred(model_mst, dimred = my_dat_ba4$dimred, "pseudotime", pseudotime = calculate_pseudotime(model_mst)) + ggtitle("Pseudotime")
)


```
```{r}
plot_dimred(model_mst, dimred = my_dat_ba4$dimred, grouping = group_onto_nearest_milestones(model_mst)) + ggtitle("Cell grouping")

```
```{r}
model_rooted_mst <- model_mst %>% add_root(root_milestone_id = "M14")


```

```{r}

plot_dimred(model_rooted_mst, dimred = my_dat_ba4$dimred, 
            "pseudotime", 
            pseudotime = calculate_pseudotime(model_mst)) + 
  ggtitle("Pseudotime")
```


```{r}

plot_dendro(model_mst)
```

```{r}
plot_heatmap(model_mst, expression_source = my_dat_ba4)
```

```{r}
overall_feature_importances <- 
  dynfeature::calculate_overall_feature_importance(model_mst, expression_source = my_dat_ba4)
features <- overall_feature_importances %>% 
  top_n(40, importance) %>% 
  pull(feature_id)

```


```{r}

plot_graph(my_dat_ba4)
```

# Save files


```{r}
ti_save_dir <- here("outs", "traj_inf_output")
dir.create(ti_save_dir)

saveRDS(model_paga_tree, here("outs", "traj_inf_output", "model_paga_tree_ba4.RDS"))

```