изменить ширину линии дендрограммы в pheatmap в R - PullRequest
0 голосов
/ 22 мая 2018

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

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

R code

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)

1 Ответ

0 голосов
/ 20 июля 2018

Вы можете напрямую управлять объектом gtable, возвращаемым вызовом pheatmap.Каждый гроб имеет параметр 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

...