Annotation_colors based on the main clusters in pheatmap

33 Views Asked by At

I am trying to visualize some data after running GSEA on differentially expressed genes. How can I add annotation colors corresponding to the main clusters I have in pheatmap?

This is the code I have been using, but the differently-colored areas do not really match the clusters I have.

# Create clustering information (replace with your own clustering results)
row_cluster <- cutree(hclust(dist(transposed_heatmap_data)), k = 4)

# Create the heatmap with custom color scale
pheatmap_result<-pheatmap(
  transposed_heatmap_data,
  clustering_method = 'ward.D2',
    # Adjust the number of colors as needed
  color = colorRampPalette(c("white", "darkblue"))(20),  
  cluster_rows = TRUE,
  cluster_cols = TRUE,
  fontsize_row = 10,
  fontsize_col = 10,
  border_color = "white",
  cellwidth = 10,
  cellheight = 10,
    # Adjust the height of the row dendrogram
  treeheight_row = 150,  
    # Adjust the height of the column dendrogram
  treeheight_col = 5,  
  width = 8,
  height = 16,
  dpi = 300,
  annotation_row = data.frame(Cluster = factor(row_cluster)),
  annotation_colors = list(Cluster = c("1" = "red", "2" = "green", 
                                       "3" = "blue", "4" = "purple"))
)

heatmap

dput(transposed_heatmap_data)
structure(c(0, 0.166666666666667, 0, 0.166666666666667, 0.166666666666667, 
0.166666666666667, 0, 0.166666666666667, 0, 0.166666666666667, 
0.166666666666667, 0.166666666666667, 0.166666666666667, 0.166666666666667, 
0, 0, 0.333333333333333, 0.5, 0, 0.333333333333333, 0.166666666666667, 
0.333333333333333, 0, 0.166666666666667, 0, 0.166666666666667, 
0, 0, 0, 0.333333333333333, 0, 0, 0.166666666666667, 0, 0, 0.333333333333333, 
0, 0.666666666666667, 0, 0.333333333333333, 0.333333333333333, 
0, 0.333333333333333, 0.333333333333333, 0.5, 0.333333333333333, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.666666666666667, 0.166666666666667, 
0.166666666666667, 0, 0.166666666666667, 0, 0.5, 0, 0.375, 0, 
0, 0.125, 0.75, 0, 0, 0, 0, 0, 0.625, 0, 0.5, 0, 0, 0.5, 0.75, 
0, 0.5, 0.5, 0.25, 0, 0, 0, 0.625, 0.125, 0, 0.25, 0.625, 0, 
0, 0.25, 0.25, 0.125, 0.5, 0, 0.875, 0.625, 1, 0.875, 0, 0.875, 
0.875, 1, 0.875, 0, 0, 0, 0.375, 0.25, 0, 0, 0.375, 0, 0.125, 
0, 0.5, 0, 0.625, 0.5, 0.75, 0, 0, 0, 0.75, 0.2, 0.25, 0.375, 
0.25, 0.3125, 0.5, 0.2, 0.375, 0.3125, 0.25, 0.375, 0.5625, 0.1875, 
0.375, 0.2, 0.133333333333333, 0.125, 0.1875, 0.2, 0.125, 0.1875, 
0.1875, 0.2, 0.1875, 0.2, 0.375, 0.0625, 0.2, 0, 0.1875, 0.0625, 
0.2, 0.1875, 0.3125, 0.3125, 0.4375, 0.1875, 0.5, 0.5, 0.5, 0.5625, 
0.2, 0.4375, 0.4375, 0.5, 0.375, 0.2, 0.4375, 0.2, 0.5, 0.25, 
0.2, 0.3125, 0.1875, 0.1875, 0.1875, 0.2, 0.5, 0.1875, 0.4375, 
0.1875, 0.4375, 0.2, 0.3125, 0.125, 0.4375, 0, 0.25, 0.125, 0.25, 
0.25, 0.125, 0, 0.125, 0.125, 0.25, 0.125, 0, 0, 0, 0, 0, 0.125, 
0.25, 0, 0, 0.125, 0.375, 0, 0.125, 0, 0.375, 0.25, 0, 0, 0.125, 
0.125, 0, 0, 0.125, 0.25, 0.125, 0, 0.125, 0.125, 0.125, 0.125, 
0, 0.125, 0.25, 0.375, 0.125, 0, 0, 0, 0, 0.125, 0, 0, 0.25, 
0, 0.25, 0, 0.375, 0, 0, 0, 0.125, 0, 0, 0, 0.25, 0, 0, 0.2, 
0.2, 0.2, 0.6, 0, 0.2, 0.2, 0, 0.2, 0, 0, 0.6, 0, 0, 0.2, 0.2, 
0, 0, 0, 0.2, 0, 0.2, 0, 0, 0.4, 0, 0, 0.2, 0, 0, 0, 0, 0.2, 
0.4, 0, 0.6, 0.2, 0.4, 0.6, 0, 0.2, 0.2, 0.6, 0.2, 0, 0.2, 0, 
0.6, 0.2, 0, 0, 0.4, 0, 0.4, 0, 0.4, 0, 0.6, 0, 0.2, 0, 0, 0, 
0.6, 0.428571428571429, 0.142857142857143, 0.142857142857143, 
0.142857142857143, 0.142857142857143, 0.285714285714286, 0.428571428571429, 
0.285714285714286, 0.285714285714286, 0.285714285714286, 0.285714285714286, 
0.142857142857143, 0.142857142857143, 0.285714285714286, 0.428571428571429, 
0.428571428571429, 0.714285714285714, 0.571428571428571, 0.428571428571429, 
0.285714285714286, 0.285714285714286, 0.142857142857143, 0.428571428571429, 
0.285714285714286, 0.428571428571429, 0.142857142857143, 0.142857142857143, 
0.428571428571429, 0.142857142857143, 0.428571428571429, 0, 0.428571428571429, 
0.285714285714286, 0.142857142857143, 0.142857142857143, 0.285714285714286, 
0.428571428571429, 0.428571428571429, 0.285714285714286, 0.428571428571429, 
0.428571428571429, 0.428571428571429, 0.285714285714286, 0.285714285714286, 
0.428571428571429, 0.285714285714286, 0.428571428571429, 0.142857142857143, 
0.428571428571429, 0.285714285714286, 0.142857142857143, 0.428571428571429, 
0.285714285714286, 0, 0.428571428571429, 0.285714285714286, 0.428571428571429, 
0.142857142857143, 0.428571428571429, 0.428571428571429, 0.428571428571429, 
0.428571428571429, 0.428571428571429, 0.142857142857143, 0, 0.142857142857143
), dim = c(66L, 6L), dimnames = list(c("Fis:0:NOvsFis:48:AC10", 
"Fis:0:NOvsFis:48:AC100", "Fis:0:NOvsFis:48:DC1", "Fis:0:NOvsFis:48:DC5", 
"Fis:0:NOvsFis:48:NO", "Fis:0:NOvsInfl:0:NO", "Fis:0:NOvsInfl:48:AC10", 
"Fis:0:NOvsInfl:48:AC100", "Fis:0:NOvsInfl:48:DC1", "Fis:0:NOvsInfl:48:DC5", 
"Fis:0:NOvsInfl:48:NO", "Fis:48:AC100vsInfl:48:AC100", "Fis:48:AC10vsFis:48:AC100", 
"Fis:48:AC10vsInfl:48:AC10", "Fis:48:AC10vsInfl:48:AC100", "Fis:48:DC1vsFis:48:AC10", 
"Fis:48:DC1vsFis:48:AC100", "Fis:48:DC1vsFis:48:DC5", "Fis:48:DC1vsInfl:48:AC10", 
"Fis:48:DC1vsInfl:48:AC100", "Fis:48:DC1vsInfl:48:DC1", "Fis:48:DC1vsInfl:48:DC5", 
"Fis:48:DC5vsFis:48:AC10", "Fis:48:DC5vsFis:48:AC100", "Fis:48:DC5vsInfl:48:AC10", 
"Fis:48:DC5vsInfl:48:AC100", "Fis:48:DC5vsInfl:48:DC5", "Fis:48:NOvsFis:48:AC10", 
"Fis:48:NOvsFis:48:AC100", "Fis:48:NOvsFis:48:DC1", "Fis:48:NOvsFis:48:DC5", 
"Fis:48:NOvsInfl:48:AC10", "Fis:48:NOvsInfl:48:AC100", "Fis:48:NOvsInfl:48:DC1", 
"Fis:48:NOvsInfl:48:DC5", "Fis:48:NOvsInfl:48:NO", "Infl:0:NOvsFis:48:AC10", 
"Infl:0:NOvsFis:48:AC100", "Infl:0:NOvsFis:48:DC1", "Infl:0:NOvsFis:48:DC5", 
"Infl:0:NOvsFis:48:NO", "Infl:0:NOvsInfl:48:AC10", "Infl:0:NOvsInfl:48:AC100", 
"Infl:0:NOvsInfl:48:DC1", "Infl:0:NOvsInfl:48:DC5", "Infl:0:NOvsInfl:48:NO", 
"Infl:48:AC10vsFis:48:AC100", "Infl:48:AC10vsInfl:48:AC100", 
"Infl:48:DC1vsFis:48:AC10", "Infl:48:DC1vsFis:48:AC100", "Infl:48:DC1vsFis:48:DC5", 
"Infl:48:DC1vsInfl:48:AC10", "Infl:48:DC1vsInfl:48:AC100", "Infl:48:DC1vsInfl:48:DC5", 
"Infl:48:DC5vsFis:48:AC10", "Infl:48:DC5vsFis:48:AC100", "Infl:48:DC5vsInfl:48:AC10", 
"Infl:48:DC5vsInfl:48:AC100", "Infl:48:NOvsFis:48:AC10", "Infl:48:NOvsFis:48:AC100", 
"Infl:48:NOvsFis:48:DC1", "Infl:48:NOvsFis:48:DC5", "Infl:48:NOvsInfl:48:AC10", 
"Infl:48:NOvsInfl:48:AC100", "Infl:48:NOvsInfl:48:DC1", "Infl:48:NOvsInfl:48:DC5"
), c("Group 1: Metabolism and Homeostasis", "Group 2: Immune Response and Inflammation", 
"Group 3: Cellular Regulation and Proliferation", "Group 4: Cellular Processes and Development", 
"Group 5: Signal Regulation and Stress Response", "Group 6: Specialized Functions"
)))
0

There are 0 best solutions below