изменить ширину линии дендрограммы в pheatmap в R

Я использовал данные RNA-seq для одной клетки, хранящиеся в эксперименте с одной клеткой, чтобы выполнить иерархическую кластеризацию ~ 11,3000 экспрессируемых генов (не кластеризацию образцов) с использованием pheatmap в R, чтобы показать гетерогенность данных. Мне нужно, чтобы выходное изображение было 2 x 4 дюйма, что делает дендрограмму размытой. Можно ли уменьшить ширину линии, используемой для дендрограммы? Я попытался установить ширину линии с помощью gpar, но похоже, что она не меняется

sessionInfo () R версия 3.4.1 (30.06.2017) Платформа: i386-w64-mingw32 / i386 (32-разрядная) Работает под: Windows> = 8 x64 (сборка 9200) pheatmap_1.0.8

Код R

gpar(lwd = 0.5)

pheatmap(assay(sce.tpm),  cellwidth = 10, cellheight= 0.009, fontsize = 5, 
fontsize_row = 6, fontsize_col = 6, 
scale = "row", cluster_cols = F, cluster_rows = T, 
clustering_distance_rows = "euclidean", clustering_method = "average"
color = colorRampPalette(c("blue", "white", "red"))(256), 
show_colnames = T, show_rownames = F)

person RBorup    schedule 22.05.2018    source источник


Ответы (1)


Вы можете напрямую управлять объектом gtable, возвращаемым вызовом pheatmap. У каждого grob есть параметр gp, который является объектом gpar.

library(pheatmap)
library(grid)

set.seed(42)
ph <- pheatmap(matrix(runif(100), nrow = 10), silent = TRUE)

ph$gtable$grobs[[1]]$gp <- gpar(lwd = 5)
ph$gtable$grobs[[2]]$gp <- gpar(col = 'blue')

png('pheatmap_gpar.png', height = 400, width = 400)
grid.newpage()
grid.draw(ph$gtable)
dev.off()

Он генерирует следующую кластерную тепловую карту:

pheatmap_dendrogram_adjust

person scooteR    schedule 20.07.2018