Nothing
## ---- echo=FALSE--------------------------------------------------------------
library(ggplot2)
colors_use <- c(`jurkat` = '#810F7C', `t293` = '#D09E2D',`half` = '#006D2C')
do_scatter <- function(umap_use, meta_data, label_name, no_guides = TRUE,
do_labels = TRUE, nice_names,
palette_use = colors_use,
pt_size = 4, point_size = .5, base_size = 12,
do_points = TRUE, do_density = FALSE, h = 6, w = 8) {
umap_use <- umap_use[, 1:2]
colnames(umap_use) <- c('X1', 'X2')
plt_df <- umap_use %>% data.frame() %>%
cbind(meta_data) %>%
dplyr::sample_frac(1L)
plt_df$given_name <- plt_df[[label_name]]
if (!missing(nice_names)) {
plt_df %<>%
dplyr::inner_join(nice_names, by = "given_name") %>%
subset(nice_name != "" & !is.na(nice_name))
plt_df[[label_name]] <- plt_df$nice_name
}
plt <- plt_df %>%
ggplot2::ggplot(aes_string("X1", "X2", col = label_name, fill = label_name)) +
theme_test(base_size = base_size) +
theme(panel.background = element_rect(fill = NA, color = "black")) +
guides(color = guide_legend(override.aes = list(stroke = 1, alpha = 1,
shape = 16, size = 4)),
alpha = FALSE) +
scale_color_manual(values = palette_use) +
scale_fill_manual(values = palette_use) +
theme(plot.title = element_text(hjust = .5)) +
labs(x = "PC 1", y = "PC 2")
if (do_points)
plt <- plt + geom_point(shape = '.')
if (do_density)
plt <- plt + geom_density_2d()
if (no_guides)
plt <- plt + guides(col = FALSE, fill = FALSE, alpha = FALSE)
if (do_labels) {
data_labels <- plt_df %>%
dplyr::group_by_(label_name) %>%
dplyr::summarise(X1 = mean(X1), X2 = mean(X2)) %>%
dplyr::ungroup()
plt <- plt + geom_label(data = data_labels, label.size = NA,
aes_string(label = label_name),
color = "white", size = pt_size, alpha = 1,
segment.size = 0) +
guides(col = FALSE, fill = FALSE)
}
return(plt)
}
## ----eval=FALSE---------------------------------------------------------------
# install.packages('harmony')
## -----------------------------------------------------------------------------
library(harmony)
## -----------------------------------------------------------------------------
data(cell_lines)
V <- cell_lines$scaled_pcs
meta_data <- cell_lines$meta_data
## ---- fig.width=5, fig.height=3, fig.align="center"---------------------------
p1 <- do_scatter(V, meta_data, 'dataset') +
labs(title = 'Colored by dataset')
p2 <- do_scatter(V, meta_data, 'cell_type') +
labs(title = 'Colored by cell type')
cowplot::plot_grid(p1, p2)
## -----------------------------------------------------------------------------
harmony_embeddings <- harmony::RunHarmony(
V, meta_data, 'dataset', verbose=FALSE
)
## ---- fig.width=5, fig.height=3, fig.align="center"---------------------------
p1 <- do_scatter(harmony_embeddings, meta_data, 'dataset') +
labs(title = 'Colored by dataset')
p2 <- do_scatter(harmony_embeddings, meta_data, 'cell_type') +
labs(title = 'Colored by cell type')
cowplot::plot_grid(p1, p2, nrow = 1)
## -----------------------------------------------------------------------------
sessionInfo()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.