knitr::opts_chunk$set(fig.path=".readme_files/", warning=FALSE, message=FALSE, error=FALSE, echo = TRUE)
ℹ️ Tutorials ℹ️ Reference documentation
devtools::install_github("dynverse/dynplot")
On linux, udunits2 has to be installed:
sudo apt-get install libudunits2-dev
sudo dnf install udunits2-devel
The package provides different ways to plot both the topology and cellular properties of a trajectory:
library(dplyr) library(dynplot) library(dynutils) library(dynwrap) library(tidyverse) library(patchwork) data(example_bifurcating) trajectory <- example_bifurcating trajectory <- trajectory %>% add_root() grouping <- trajectory$prior_information$groups_id groups <- tibble(dynwrap::group_onto_nearest_milestones(trajectory)) %>% mutate(color=dynplot:::milestone_palette_list$auto(n())) features_oi <- apply(as.matrix(trajectory$counts), 2, sd) %>% sort() %>% names() %>% tail(10) feature_oi <- features_oi[[10]]
empty <- ggplot() + theme_void() question <- empty + geom_text(aes(0, 0, label="????")) unavailable <- empty + geom_text(aes(0, 0, label="----")) title <- list( dynplot:::empty_plot(), # empty + geom_label(aes(0, 0, label="Topology")), empty + geom_label(aes(0, 0, label="Ordering")), empty + geom_label(aes(0, 0, label="Grouping/clustering")), empty + geom_label(aes(0, 0, label="Expression of \n a single gene")), empty + geom_label(aes(0, 0, label="Pseudotime")) ) dendro <- list( empty + geom_label(aes(0, 0, label="Dendrogram")), # plot_dendro(trajectory), plot_dendro(trajectory, "milestone"), plot_dendro(trajectory, grouping=grouping, groups=groups), plot_dendro(trajectory, feature_oi=feature_oi), plot_dendro(trajectory, "pseudotime") ) onedim <- list( empty + geom_label(aes(0, 0, label="Onedim")), # plot_onedim(trajectory), plot_onedim(trajectory, "milestone"), plot_onedim(trajectory, grouping=grouping, groups=groups), plot_onedim(trajectory, feature_oi=feature_oi), plot_onedim(trajectory, "pseudotime") ) graph <- list( empty + geom_label(aes(0, 0, label="Graph")), # plot_graph(trajectory), plot_graph(trajectory, "milestone"), plot_graph(trajectory, grouping=grouping, groups=groups), plot_graph(trajectory, feature_oi=feature_oi), plot_graph(trajectory, "pseudotime") ) dimred <- list( empty + geom_label(aes(0, 0, label="Dimensionality reduction")), # plot_dimred(trajectory), plot_dimred(trajectory, "milestone"), plot_dimred(trajectory, grouping=grouping, groups=groups), plot_dimred(trajectory, feature_oi=feature_oi), plot_dimred(trajectory, "pseudotime") ) wrap_plots( c(title, dendro, onedim, graph, dimred), nrow=5, byrow=TRUE ) & theme(legend.position = "none")
And to plot the expression and feature importances of many genes along the trajectory
cell_feature_importance <- dynfeature::calculate_cell_feature_importance(trajectory %>% dynwrap::add_waypoints()) plot_heatmap(trajectory, grouping = trajectory$prior_information$grouping_assignment)
Check out news(package = "dynwrap")
or NEWS.md for a full list of changes.
dynutils::update_news() cat(dynutils::recent_news())
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.