сложенный график скрипки объекта Seurat

#r

#r

Вопрос:

введите описание изображения здесь я создал график stacked violin с 16 различными кластерами. Я также прикрепил рисунок. Вот код:

 
    modify_vlnplot<- function(obj, feature, pt.size = 0,
plot.margin = unit(c(-0.75, 0, -0.75, 0), "cm"),
...) {
p<- VlnPlot(obj, features = feature, pt.size = pt.size, ... )  
xlab("")   ylab(feature)   ggtitle("")  
theme(legend.position = "none",
axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
axis.title.y = element_text(size = rel(1), angle = 0),
axis.text.y = element_text(size = rel(1)),
plot.margin = plot.margin )
return(p)
}
extract_max<- function(p){
ymax<- max(ggplot_build(p)$layout$panel_scales_y[[1]]$range$range)
return(ceiling(ymax))
}
StackedVlnPlot<- function(obj, features,
pt.size = 0,
plot.margin = unit(c(-0.75, 0, -0.75, 0), "cm"),
...) {
plot_list<- purrr::map(features, function(x) modify_vlnplot(obj = obj,feature = x, ...))


plot_list[[length(plot_list)]]<- plot_list[[length(plot_list)]]  
theme(axis.text.x=element_text(angle = 45, hjust = 1, vjust = 1),
axis.ticks.x = element_line())

#change the y-axis tick to only max value
ymaxs<- purrr::map_dbl(plot_list, extract_max)
plot_list<- purrr::map2(plot_list, ymaxs, function(x,y) x  
scale_y_continuous(breaks = c(y))  
expand_limits(y = y))
p<- patchwork::wrap_plots(plotlist = plot_list, ncol = 1)
return(p)
}
StackedVlnPlot(obj = S1, features = features)

#Stacked violine plots

 

Теперь я хочу создать график с 5 столбцами вместо 16 столбцов. Четыре выбранных кластера / столбца и один последний столбец, содержащий общее / среднее выражение остальных (12) кластеров. Пожалуйста, скажите мне, как я могу это сделать. Заранее спасибо, с нетерпением жду положительного ответа.

Комментарии:

1. Вы должны добавить образец features для воспроизведения вашего кода.

2. Функция VlnPlot() от Seurat теперь имеет параметр «stack = TRUE», который избавляет вас от некоторого пользовательского кода.

Ответ №1:

Вот функции: функции <- c(«ENSORLG00000016928″,»ENSORLG00000028255″,»ENSORLG00000026984″,»ENSORLG00000025723″,»ENSORLG00000004844″,»ENSORLG00000003048″,»ENSORLG00000017445″,»ENSORLG00000012186″,»ENSORLG00000007143″,»ENSORLG00000024026″,»ENSORLG00000016860″,»ENSORLG00000013986″,»ENSORLG00000002500», «ENSORLG00000021874», «ENSORLG00000029444»)