У меня есть набор данных об экспрессии генов, и я хочу показать тепловую карту некоторых генов. Во-первых, я хочу создать иерархическую кластеризацию на основе всех генов и создать дендрограмму, а затем создать тепловую карту для подмножества этих генов. В явном виде тепловая карта будет иметь те же столбцы, что и уже созданная дендрограмма, но будет отображать меньше строк. Я попытался использовать приведенный ниже код, но кажется, что тепловая карта переупорядочивает кластеры на основе уменьшенной матрицы.
# Random data
full_mat <- matrix(rgamma(1000, shape = 1) * 5, ncol = 50)
reduced_mat <- full_mat[1:5,]
# Function to calculate distances on full-matrix and make dendrogram
cl_cb <- function(hcl, mat){
# Recalculate manhattan distances for reorder method
dists <- dist(full_mat, method = "manhattan")
# Perform reordering according to OLO or GW method
hclust_olo <- reorder(hcl, dists, method="GW")
return(hclust_olo)
}
# Only display the reduced matrix (same columns but fewer rows)
p <- pheatmap(reduced_mat,
show_rownames=TRUE,
show_colnames = TRUE,
cluster_cols=T,
cluster_rows=F,
scale = "none",
clustering_callback = cl_cb
)
Я попытался установить cluster_cols = F
, но тогда дендограмма или переупорядочение вообще не выполняются.