raivokolde / pheatmap Goto Github PK
View Code? Open in Web Editor NEWPretty heatmaps
Pretty heatmaps
Hi,
Is there an easy way to export the pheatmap cluster to a .atr
, .gtr
, and .cdt
file? I'd like to use the cluster from pheatmap in another script that I already have to take advantage of these file formats.
Really appreciate it.
I am plotting the annotation bar on top of the heatmap and have the respective legends on right top. But the legends are getting sorted and are not in the order I specify. Could you please help?
Here is the command:
> mat
a b c d
G1 1 2 5 1
G2 54 45 56 12
G3 45 21 1 8
...
> samples
name
a T0
b 7 days
c 30 days
d recovery
> pheatmap(mat, cluster_cols=F, show_rownames=F, annotation_col=samples[colnames(mat),,drop=F])
Legend box appears in the following order:
30 days
7 days
recovery
T0
I want it to be in the following order:
T0
7 days
30 days
recovery
Thanks
Saurabh
Hi, I need to add points and lines to some certain cells on pheatmap. I know this should be done with Grid. But it is very hard to get the positions or coordinates of these cells. It seems that their positions change when adjust the size of canvas.
It would be useful if one can add a legend title, e.g. Row Z-score or similar.
Hi,
I have a very silly question, could you please help me in resolving it.
I have made a heat map using pheatmap.
pheatmap(t, kmeans_k=65, cluster_cols=F, mypalette3)
This gives me a nice heatmap, now how can I get genenames present in each cluster and save them to a file.
Kindly help.
Best regards
Abhishek
Could not find how to add custom xlab
and ylab
for pheatmap. See here.
It would be very handy if an updated version of this function that included the na_col
option could be pushed to CRAN so users don't have to install the version from GitHub.
Hi,
I've been playing with pheatmap (wonderful package). I may be missing something very basic, but I noticed that the clusters produced by cluster_distance_cols="correlation"
and cluster_distance_cols=dist(1-cor(mat))
are quite different. Shouldn't they be identical? It's not that the clades are simply rotated.
I can send you example images by email, but I'd prefer not to post them publicly because the data are sensitive.
Here are the two commands:
pheatmap(sig.heat,
clustering_distance_rows="correlation",
clustering_distance_cols="correlation",
clustering_method="complete",
cluster_cols = TRUE,
cluster_rows = TRUE,
show_rownames = FALSE,
show_colnames = FALSE,
fontsize_row = row.fontsize,
fontsize_col = col.fontsize,
fontsize = fontsize,
annotation_col=sig.df
)
pheatmap(sig.heat,
clustering_distance_rows="correlation",
clustering_distance_cols=dist(1-cor(sig.heat)),
clustering_method="complete",
cluster_cols = TRUE,
cluster_rows = TRUE,
show_rownames = FALSE,
show_colnames = FALSE,
fontsize_row = row.fontsize,
fontsize_col = col.fontsize,
fontsize = fontsize,
annotation_col=sig.df
)
EDIT: I'm using pheatmap version 1.0.8 and R version 3.4.3
Hi,
Here is my code:
pheatmap(mat, display_numbers = T, scale = 'row',clustering_distance_rows = 'correlation', main = "Differentially Expressed Genes\n", cellwidth = 70 , cellheight = 10)
But my column names are too long and I'd like to rotate them by say 45 degrees. Is that possible?
Thanks!
Hi,
I know, this was asked before, but could you implement a parameter to control the location of the color legend(s)? Maybe the way ggplot handles these issues (top, bottom, left, right)? I frequently have heatmaps with very long pathway names, and the legend gets placed half a meter to the right... I tried switching to ggplot, but that is not able to draw dendrograms. And heatmap.2 is a bloody pain to run in an at least somewhat dynamic fashion. Pretty please?
Best,
Carsten
Hi,
When using Cairo devices (such as in rstudio's Plots pane) the legend for numeric annotations is white. Although the color is showing on the annotation row, the legend is white or empty. Annotations for factors behave as expected.
Here is a small reproducible example:
library(Cairo)
CairoX11()
library(pheatmap)
mat <- matrix(1:12, ncol = 4, dimnames=list(paste0("r", 1:3), LETTERS[1:4]))
anno <- data.frame(age = 1:4, arm = rep(1:2,2), row.names=LETTERS[1:4])
pheatmap(mat, annotation=anno)
I went through the commits and it looks like this was introduced during the move to gtable.
I get the expected result in version 0.7.10
but in 1.0.0
(commit 16f063e) the legend is white.
I did not find any mention of this anywhere and I can reproduce this on both the current CRAN version and the latest commit of the master branch, pardon me if I missed it.
> sessionInfo()
R Under development (unstable) (2014-11-21 r67024)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] pheatmap_1.0.2 Cairo_1.5-6 data.table_1.9.4
[4] devtools_1.7.0 BiocInstaller_1.17.7
loaded via a namespace (and not attached):
[1] chron_2.3-45 colorspace_1.2-6 grid_3.2.0 gtable_0.1.2
[5] munsell_0.4.2 plyr_1.8.1 RColorBrewer_1.1-2 Rcpp_0.11.5
[9] reshape2_1.4.1 scales_0.2.4 stringr_0.6.2
Hi,
It seems that the grid package has been removed from CRAN and the grid.pretty function in grid can not be found when using the pheatmap package. Can you take a look?
Eric
dear Raivo!
I just switched over from the heatmap.2 function in gplots to your heatmap function, awesome stuff. I'm just missing one tiny thing: would it be possible to add an argument "symbreaks", that forces the generated breaks to be symmetric?
cheers, jo
i used this coding but i can't fix it.
`library(pheatmap)
library(grid)
data<- read.csv("C:/Users/Hp/Desktop/16 s. heat excel.csv", sep=",", header = T, row.names = "x")
mycol<- colorpanel(75, "blue", "white", "red")
###with border###
pheatmap(data,col=mycol,cellwidth = 18,cellheight = 15, fontsize_row =12,
fontsize_col = 13,angle_col = "45", trace="none", cluster_cols = T, cluster_rows = T)
p <-pheatmap(data,col=mycol,cellwidth = 18,cellheight = 15, fontsize_row =12,
fontsize_col = 13,angle_col = "45", trace="none", cluster_cols = T, cluster_rows = T)
p$gtable$grobs[[2]]$gp <- gpar(lwd = 5)
p$gtable$grobs[[1]]$gp <- gpar(col = 'blue')
png('pheatmap_gpar.png', height = 400, width = 400)
grid.newpage()
grid.draw(p$gtable)
dev.off()
heatmap help.docx
`
Currently, I noticed that if one chooses 1-correlation as the distance metric for clustering that only a Pearson correlation can be used, and not kendall tau or spearman rank.
I was wondering if you would mind supporting those too by any chance? (Allowing argument method to be passed to cor() would be a simple fix, but more elegant would probably be to allow "kendall" or "spearman" in addition to "correlation" or "pearson" for a standard Pearson correlation.)
Hi there,
I like this function a lot. Is there any way to combine multiple graphs together using pheatmap()?
Thanks!
Ji
Using scale="row" does not always center the legend key correctly, while heatmap.2 does it the right way. See attached files and the matrix used to generate the heatmap.
redblue = colorRampPalette(c("navy", "white", "firebrick3"))(50)
pheatmap(mat, color=redblue, scale="row",
border_color = NA, clustering_method="complete", fontsize=4)
heatmap.2(mat, col=redblue, scale="row", trace="none")
Okay, so I cannot upload the matrix file. It looks like this (only negative values ranging from just ~ -2 to ~ -20):
2 3 4 5
1 -19.0367722 -21.2872609 -18.43942073 -18.8002461
2 -20.0367722 -18.47990598 -19.33250553 -19.33076081
3 -16.96638287 -17.58682119 -17.43942073 -18.69333089
4 -17.35870029 -18.96533281 -17.96993545 -18.59379522
5 -17.31430617 -17.58682119 -17.55489795 -18.8002461
For example, I want to highlight the regions ([1:2, 3:4]
).
library("pheatmap")
colnames(test) = paste("Test", 1:10, sep = "")
rownames(test) = paste("Gene", 1:20, sep = "")
pheatmap(test)
How could I highlight them with a blue rectangle?
Hi, would you please give an example of how you plot out the heatmap in the Readme file?
Thanks!
Should be easy enough, just in order to reproduce the behavior of the main breaks/colors arguments. The goal is mainly to be able to set the '0' value when the scale is asymmetrical (with values going from -0.2 to +0.05 for instance).
Here is the hack I use for now:
nCol <- 100
colors <- colorRampPalette(whateverColors)(nCol)
totalRange <- c(-1, 1)
rangeX <- range(annotation_col$class)
rangeIndex <- floor((rangeX - totalRange[1]) / diff(totalRange) * (nCol) + 1)
annotation_colors <- list(class = colors[rangeIndex[1]:rangeIndex[2]])
Is there a way to specify annotation_colors color scheme? Currently, I have to assign a specific color that matches a specific annotation_row and annotation_col row name. If I add or remove any annotations, I have to create a new annotation_colors list. If I don't specify annotation_colors, colors will be assigned based on a default color scheme. Is there a way to set that color scheme?
Hi,
a warning message is thrown when the argument breaks is specificy when calling function pheatmap (version. pheatmap_0.7.7) :
Warning in if (is.na(breaks)) { :
the condition has length > 1 and only the first element will be used
the warning is comming from line 617 of file pheatmap.r. A quick fix would be to replace line 617 by this one:
if(is.na(breaks)){
< if(is.na(breaks[1])){
thanks
Slim Fourati
Bioinformatician at VGTI-FL
First of all, thanks for the great software.
I have a feature request: I want the title font to be a different size than the legend text. Would it be possible to set the font size of the legends independently?
As you can see, having the legend and title the same size is not pretty:
Also, the whole legend does not show.
(Also it would be nice with the option of a subtitle, which should have its own default font size.)
I want black border between my cells. This works fine when calling pheatmap()
with the filename
argument. However, when using the png()
function directly or when viewing the image interactively in rstudio, the borders are not being drawn.
Example:
library(pheatmap)
sample_matrix <- matrix(nrow=200, ncol=200, data=1:40000)
png('matrix1.png', height=3100, width=3100)
pheatmap(sample_matrix, border_color='black')
dev.off()
pheatmap(sample_matrix, border_color='black', filename='matrix2.png', height = 10, width=10)
Hi Raivo,
I enabled more verbose errors and warnings in my .Rprofile
, and noticed that pheatmap()
is partially matching justification
using just
in the code. To reproduce for yourself:
options(
showErrorCalls = TRUE,
showWarnCalls = TRUE,
warn = 1,
warnPartialMatchAttr = TRUE,
warnPartialMatchDollar = TRUE
)
Best,
Mike
One thing that would be nice to add would be to support modulated modularity clustering for correlation heatmaps, as described in
http://journals.plos.org/plosgenetics/article?id=10.1371/journal.pgen.1000479
http://mmc.gnets.ncsu.edu/
(Python source code here,
http://mmc.gnets.ncsu.edu/data/website/pymmc-pipeline.source.tar.gz).
Or else to allow for some option to highlight positively or negatively coregulated clusters using a thick black outline.
Right now what I do is to plot a correlation heatmap using
corm=cor(m])
pheatmap(corm, clustering_method="average", clustering_distance_rows="correlation", clustering_distance_cols="correlation")
and then export the graph to Inkscape or Powerpoint and add the black squares for coregulated clusters myself, but could be nice to have an automatic option for this...
I hope there will be a python version pheatmap in the future.
I am using R notebook. This is my chunk:
test = matrix(rnorm(200), 20, 10)
pheatmap::pheatmap(test)
I guess it's due to the way pheatmap generates the plot, but it actually generates a blank image in addition to the actual plot.
Is there a way to get rid of that first image? I see it in the RStudio output and in the .nb.html file. If I knit to HTML, the blank plot is not there.
I also tried using the silent
parameter with similar results:
p = pheatmap::pheatmap(test, silent = TRUE)
plot(p$gtable)
However, if I split the same code into two chunks, there is only one image generated:
p = pheatmap::pheatmap(test, silent = TRUE)
plot(p$gtable)
Do you know why this is happening? Is there a way to resolve this?
I am plotting a heatmap from a matrix of 8 rows and 2284 columns. The columns are grouped manually by 8 clusters. My intention is to add a gap between clusters as follows:
cell_annot <- data.frame(cluster = barcodes$cluster)
rownames(cell_annot) <- barcodes$barcode
gap_cols <- match(unique(cell_annot$cluster), cell_annot$cluster)
cols <- colorRampPalette(c("black", "yellow"))(20)
hto_clusters_heat <- pheatmap(
mat_norm,
gaps_col = gap_cols[2:length(gap_cols)],
cluster_rows = FALSE,
cluster_cols = FALSE,
scale = "none",
color = cols,
annotation_col = cell_annot,
labels_col = ""
)
All the elements of the gap_cols
vector are < ncol(mat_norm). However, I get the following error:
Error in find_coordinates(length(coln), gaps) :
Gaps do not match with matrix size
If you could help me to solve this it would be much appreciate it.
Thanks
Ramon
I needed a heatmap with some labels highlighted in boldface. To this end, I implemented the function make_bold_names()
as described below. Such a feature may be interesting for a future pheatmap
release.
k/r Wolfgang
library(pheatmap)
library(tidyverse)
# Create test matrix
test = matrix(rnorm(200), 20, 10)
test[1:10, seq(1, 10, 2)] = test[1:10, seq(1, 10, 2)] + 3
test[11:20, seq(2, 10, 2)] = test[11:20, seq(2, 10, 2)] + 2
test[15:20, seq(2, 10, 2)] = test[15:20, seq(2, 10, 2)] + 4
colnames(test) = paste("Test", 1:10, sep = "")
rownames(test) = paste("Gene", 1:20, sep = "")
# use this function to make row or column names bold
# parameters:
# mat: the matrix passed to pheatmap
# rc_fun: either rownames or colnames
# rc_names: vector of names that should appear in boldface
make_bold_names <- function(mat, rc_fun, rc_names) {
bold_names <- rc_fun(mat)
ids <- rc_names %>% match(rc_fun(mat))
ids %>%
walk(
function(i)
bold_names[i] <<-
bquote(bold(.(rc_fun(mat)[i]))) %>%
as.expression()
)
bold_names
}
pheatmap(
test,
labels_row = make_bold_names(test, rownames, c("Gene2", "Gene5", "Gene14")),
labels_col = make_bold_names(test, colnames, c("Test2", "Test3", "Test4")))
Created on 2019-01-24 by the reprex package (v0.2.1)
Is there a way to control the size of the whole legend?
I have been following the manual for DESeq2.
With slight modifications so her comes the "fixed" code:
sampleDists <- stats::dist(t(SummarizedExperiment::assay(vst.dds)))
sampleDistMatrix <- as.matrix(sampleDists)
rownames(sampleDistMatrix) <- labels(sampleDists)
colnames(sampleDistMatrix) <- labels(sampleDists)
# Note: pheatmap does not work properly with DataFrame S4Vectors
anno.hm = as.data.frame(SummarizedExperiment::colData(dds)[,c("condition","type")])
pheatmap(sampleDistMatrix,
clustering_distance_rows=sampleDists,
clustering_distance_cols=sampleDists,
annotation_col=anno.hm)
The code breaks if you remove the as.data.frame
, that transforms the Formal class 'DataFrame' [package "S4Vectors"]
into a normal data.frame
.
If you want to call this a bug is up to you, but it was quit tedious to track down the problem. Cause the error message wasn't very helpful.
Error in hclust(d, method = method) : size cannot be NA nor exceed 65536
Calls: pheatmap -> cluster_mat -> hclust
Execution halted
my data has NA, and raw number is 74789, but sometimes I run the same num of data could success, why? @raivokolde @antoine-lizee @taunometsalu
--show_rownames TRUE --show_colnames FALSE --cluster_rows TRUE --cluster_cols TRUE
pheatmap(data, scale=opt$scale,height=7, width=14, color=color.set[[opt$color.type]],
show_rownames=opt$show_rownames, show_colnames=opt$show_colnames,border_color=NA,
cluster_rows=opt$cluster_rows, cluster_cols=opt$cluster_cols,fontsize_row=10,
filename=paste(opt$outfile,".pdf",sep=""))
Hi, the title says it, the case, which I came across was that I wanted to make log transform on my data, but show original values inside cells. In ggplot2 this could be done easily with stat_bin2d(geom="text", aes(label=..count..)). Maybe could be good to have in pheatmap. The question of course here, is that what kind of scale do you display afterwards, and I don't know the answer.
When either dimension of the matrix is 1 and the respective cluster_rows/cols is on (the default), pheatmap will fail with the following error:
Error in hclust(d, method = method) : must have n >= 2 objects to cluster
I suggest checking the dimensions of the input and not attempt the clustering to avoid this error.
this is something the user can manually check but it gets tedious when you have many heatmaps with different inputs that could have different dimensions depending on other things.
personally, I use this wrapper to avoid this problem:
ph = function(mat, ...) {
cr = T
cc = T
if(ncol(mat)==1) { cc = F }
if(nrow(mat)==1) { cr = F }
pheatmap(mat, cluster_rows=cr, cluster_cols=cc,...)
}
I'm using 1.0.8 and na_col doesn't seem to have any affect, the NA values are still displayed as white.
Would like to put legend at custom place. See here.
Hi,
I got an weird problem and I wonder if you can help me out. Here is an reproducible example.
ann <- data.frame(Disease=c('Y','N','N','N','N'),
Sex=c(NA,'M','F','M','M'),
Age=c(10,20,30,10,40))
rownames(ann) <- paste('Subject',1:5,sep='_')
pdata <- matrix(runif(50,1,100),nrow=10)
colnames(pdata) <- paste('Subject',1:5,sep='_')
rownames(pdata) <- paste('Feature',1:10,sep='_')
pheatmap(pdata,cluster_cols = FALSE,annotation_col=ann)
I got an error:
Error in convert_annotations(annotation_col, annotation_colors) :
Factor levels on variable Sex do not match with annotation_colors
I guess this somehow is related to the NA in the annotations. If I changed the location of the NA in the annotations:
ann <- data.frame(Disease=c('Y','N','N','N','N'),
Sex=c('M',NA,'F','M','M'),
Age=c(10,20,30,10,40))
rownames(ann) <- paste('Subject',1:5,sep='_')
pheatmap(pdata,cluster_cols = FALSE,annotation_col=ann)
It works fine.
sessionInfo()
R version 3.2.0 (2015-04-16)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.9.5 (Mavericks)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] pheatmap_1.0.2
loaded via a namespace (and not attached):
[1] colorspace_1.2-6 scales_0.2.4 plyr_1.8.2 gtable_0.1.2 RColorBrewer_1.1-2
[6] Rcpp_0.11.6 grid_3.2.0 munsell_0.4.2
Hello,
The output from pheatmap looks really nice, but it would be great if it supported discrete or ordinal data and produced a suitable legend in those cases, similar to the discrete row annotation legends.
I have Row/Column Annotation data in continuous scale. How do I add rows/column labels for this continuous scale data without converting them to discrete scale.
Hello,
I would like to cluster the rows but do not need to plot the dendrogram on the left. Is it possible to hide it? Thanks!
Great package! Could you kindly also add row-based annotations to pheatmap
? See here for a good use case and a related R package that already does that (but isn't as pretty as pheatmap
).
how to make multiple pheatmaps in a same figure? The plot layout code "par(mfrow=c(m,n))"doesn't work!
HI,
Thanks for the great Heatmap applications
here is what I found so far
heatmap_Plot = pheatmap(
mat = distance_DF,
#color = colorRampPalette(default_Colour)(100),
show_rownames=FALSE,
show_colnames = FALSE,
cutree_cols=annotation_DF_Size,
cutree_rows=annotation_DF_Size,
drop_levels= FALSE,
main =NA,
fontsize = 10,
#cellwidth= 6,
#cellheight= 6,
#treeheight_row = 10,
#treeheight_col = 20,
border_color = "white",
legend_labels = NULL,
annotation_row = annotation_DF,
annotation_col = annotation_DF,
annotation_colors = annotation_color_List,
annotation_legend = TRUE,
annotation_names_row = FALSE,
annotation_names_col = FALSE,
silent = TRUE
)
up_tree <- heatmap_Plot$gtable$grob[[1]]
up_annotation <- heatmap_Plot$gtable$grob[[5]]
heatmap <- heatmap_Plot$gtable$grob[[2]]
left_tree <- heatmap_Plot$gtable$grob[[3]]
left_annotation <- heatmap_Plot$gtable$grob[[4]]
annotation_legend <- heatmap_Plot$gtable$grob[[6]]
heatmap_legend <- heatmap_Plot$gtable$grob[[7]]
I can disable the Title of Annotation legend by doing this:
annotation_legend$children[[1]] =textGrob("")
however, It seems the heatmap_Plot Grob is immutable(i cannot update the heatmap_Plot grobs)
and I don't want to risk adding them to empty gtable grob
so any help would be much appreciated
I'm setting up a conda environment with r, rstudio, pheatmap, and plan to add seurat. However, after I install r-pheatmap, I get an error when I try to run rstudio. My steps are below:
I have anaconda3 installed on a macOS Mojave
conda create --name env
conda activate env
conda install r
conda install rstudio
rstudio
conda install -c bioconda r-pheatmap
rstudio
Please help, thank you
The following NEW packages will be INSTALLED:
jbig pkgs/main/osx-64::jbig-2.1-h4d881f8_0
r-car pkgs/r/osx-64::r-car-2.1_4-r3.3.2_0
r-caret pkgs/r/osx-64::r-caret-6.0_73-r3.3.2_0
r-colorspace pkgs/r/osx-64::r-colorspace-1.3_1-r3.3.2_0
r-data.table bioconda/osx-64::r-data.table-1.10.4-r3.3.2_0
r-dichromat pkgs/r/osx-64::r-dichromat-2.0_0-r3.3.2_2
r-essentials pkgs/r/osx-64::r-essentials-1.0-0a
r-foreach pkgs/r/osx-64::r-foreach-1.4.3-r3.3.2_0
r-formatr pkgs/r/osx-64::r-formatr-1.4-r3.3.2_0
r-ggplot2 bioconda/osx-64::r-ggplot2-2.2.1-r3.3.2_0
r-glmnet pkgs/r/osx-64::r-glmnet-2.0_5-r3.3.2_0
r-gtable pkgs/r/osx-64::r-gtable-0.2.0-r3.3.2_0
r-iterators pkgs/r/osx-64::r-iterators-1.0.8-r3.3.2_0
r-labeling pkgs/r/osx-64::r-labeling-0.3-r3.3.2_2
r-lme4 pkgs/r/osx-64::r-lme4-1.1_12-r3.3.2_0
r-matrixmodels pkgs/r/osx-64::r-matrixmodels-0.4_1-r3.3.2_0
r-minqa pkgs/r/osx-64::r-minqa-1.2.4-r3.3.2_2
r-mnormt pkgs/r/osx-64::r-mnormt-1.5_5-r3.3.2_0
r-modelmetrics pkgs/r/osx-64::r-modelmetrics-1.1.0-r3.3.2_0
r-munsell pkgs/r/osx-64::r-munsell-0.4.3-r3.3.2_0
r-nloptr pkgs/r/osx-64::r-nloptr-1.0.4-r3.3.2_2
r-pbkrtest pkgs/r/osx-64::r-pbkrtest-0.4_6-r3.3.2_0
r-pheatmap bioconda/osx-64::r-pheatmap-1.0.8-r3.3.2_0
r-psych bioconda/osx-64::r-psych-1.5.8-r3.3.2_0
r-quantmod pkgs/r/osx-64::r-quantmod-0.4_7-r3.3.2_0
r-quantreg pkgs/r/osx-64::r-quantreg-5.29-r3.3.2_0
r-randomforest pkgs/r/osx-64::r-randomforest-4.6_12-r3.3.2_0
r-rcolorbrewer pkgs/r/osx-64::r-rcolorbrewer-1.1_2-r3.3.2_3
r-rcppeigen pkgs/r/osx-64::r-rcppeigen-0.3.2.9.0-r3.3.2_0
r-scales bioconda/osx-64::r-scales-0.4.1-r3.3.2_1
r-sparsem pkgs/r/osx-64::r-sparsem-1.74-r3.3.2_0
r-ttr pkgs/r/osx-64::r-ttr-0.23_1-r3.3.2_0
r-xts pkgs/r/osx-64::r-xts-0.9_7-r3.3.2_2
r-zoo pkgs/r/osx-64::r-zoo-1.7_13-r3.3.2_0
The following packages will be REMOVED:
r-bindr-0.1.1-r351hf348343_0
r-bindrcpp-0.2.2-r351h32998d9_0
r-blob-1.1.1-r351hf348343_0
r-cellranger-1.1.0-r351hf348343_0
r-cli-1.0.0-r351h6115d3f_0
r-dbplyr-1.2.2-r351hf348343_0
r-fansi-0.2.3-r351h6402f54_0
r-glue-1.3.0-r351h6402f54_0
r-later-0.7.3-r351h32998d9_0
r-mongolite-1.6-r351h46e59ec_1
r-odbc-1.1.5-r351h0a44026_0
r-pillar-1.3.0-r351hf348343_0
r-pkgconfig-2.0.1-r351hf348343_0
r-profvis-0.3.5-r351h6402f54_0
r-promises-1.0.1-r351h32998d9_0
r-rematch-1.0.1-r351hf348343_0
r-rjdbc-0.2_7.1-r351hf348343_0
r-rlang-0.2.1-r351h6402f54_0
r-tidyselect-0.2.4-r351h32998d9_0
r-tinytex-0.6-r351hf348343_0
r-utf8-1.1.4-r351h6402f54_0
r-xfun-0.3-r351hf348343_0
The following packages will be SUPERSEDED by a higher-priority channel:
cairo pkgs/main::cairo-1.14.12-hc4e6be7_4 --> pkgs/free::cairo-1.14.8-0
fontconfig pkgs/main::fontconfig-2.13.0-h5d5b041~ --> pkgs/free::fontconfig-2.12.1-3
freetype pkgs/main::freetype-2.9.1-hb4e5f40_0 --> pkgs/free::freetype-2.5.5-2
glib pkgs/main::glib-2.56.2-hd9629dc_0 --> pkgs/free::glib-2.50.2-1
harfbuzz pkgs/main::harfbuzz-1.8.8-hb8d4a28_0 --> pkgs/free::harfbuzz-0.9.39-2
icu pkgs/main::icu-58.2-h4b95b61_1 --> pkgs/free::icu-54.1-0
jpeg pkgs/main::jpeg-9b-he5867d9_2 --> pkgs/free::jpeg-8d-2
libiconv pkgs/main::libiconv-1.15-hdd342a3_7 --> pkgs/free::libiconv-1.14-0
libtiff pkgs/main::libtiff-4.0.10-hcb84e12_2 --> pkgs/free::libtiff-4.0.6-2
libxml2 pkgs/main::libxml2-2.9.9-hab757c2_0 --> pkgs/free::libxml2-2.9.4-0
pango pkgs/main::pango-1.42.4-h060686c_0 --> pkgs/free::pango-1.40.3-1
pcre pkgs/main::pcre-8.43-h0a44026_0 --> pkgs/free::pcre-8.39-1
r-bh pkgs/r::r-bh-1.66.0_1-r351hf348343_0 --> bioconda::r-bh-1.60.0_2-r3.3.2_0
r-catools pkgs/r::r-catools-1.17.1.1-r351h32998~ --> bioconda::r-catools-1.17.1-r3.3.2_1
r-dplyr pkgs/r::r-dplyr-0.7.6-r351h32998d9_0 --> bioconda::r-dplyr-0.5.0-r3.3.2_1
r-knitr pkgs/r::r-knitr-1.20-r351hf348343_0 --> bioconda::r-knitr-1.12.3-r3.3.2_0
r-prettyunits pkgs/r::r-prettyunits-1.0.2-r351hf348~ --> bioconda::r-prettyunits-1.0.2-r3.3.2_0
r-rappdirs pkgs/r::r-rappdirs-0.3.1-r351h6402f54~ --> bioconda::r-rappdirs-0.3-r3.3.2_0
r-readr pkgs/r::r-readr-1.1.1-r351h32998d9_0 --> bioconda::r-readr-0.2.2-r3.3.2_0
r-rmarkdown pkgs/r::r-rmarkdown-1.10-r351hf348343~ --> bioconda::r-rmarkdown-0.9.5-r3.3.2_0
r-tibble pkgs/r::r-tibble-1.4.2-r351h6402f54_0 --> bioconda::r-tibble-1.2-r3.3.2_1
The following packages will be DOWNGRADED:
gettext 0.19.8.1-h15daf44_3 --> 0.19.8.1-hb0f4f8b_2
pixman 0.38.0-h1de35cc_0 --> 0.34.0-hca0a616_3
r 3.5.1-r351_0 --> 3.3.2-r3.3.2_0
r-assertthat 0.2.0-r351hf348343_0 --> 0.1-r3.3.2_4
r-backports 1.1.2-r351h6402f54_0 --> 1.0.4-r3.3.2_0
r-base 3.5.1-h539fb6c_1 --> 3.3.2-0
r-base64enc 0.1_3-r351h6402f54_4 --> 0.1_3-r3.3.2_0
r-bit 1.1_14-r351h6402f54_0 --> 1.1_12-r3.3.2_0
r-bit64 0.9_7-r351h6402f54_0 --> 0.9_5-r3.3.2_0
r-bitops 1.0_6-r351h6402f54_4 --> 1.0_6-r3.3.2_2
r-boot 1.3_20-r351hf348343_0 --> 1.3_18-r3.3.2_0
r-broom 0.5.0-r351hf348343_0 --> 0.4.1-r3.3.2_0
r-class 7.3_14-r351h6402f54_4 --> 7.3_14-r3.3.2_0
r-cluster 2.0.7_1-r351h0b560c1_0 --> 2.0.5-r3.3.2_0
r-codetools 0.2_15-r351hf348343_0 --> 0.2_15-r3.3.2_0
r-config 0.3-r351hf348343_0 --> 0.2-r3.3.2_0
r-crayon 1.3.4-r351hf348343_0 --> 1.3.2-r3.3.2_0
r-curl 3.2-r351h6402f54_0 --> 2.3-r3.3.2_0
r-dbi 1.0.0-r351hf348343_0 --> 0.5_1-r3.3.2_0
r-digest 0.6.15-r351h6402f54_0 --> 0.6.10-r3.3.2_0
r-evaluate 0.11-r351hf348343_0 --> 0.10-r3.3.2_0
r-forcats 0.3.0-r351hf348343_0 --> 0.1.1-r3.3.2_0
r-foreign 0.8_71-r351h6402f54_0 --> 0.8_67-r3.3.2_0
r-haven 1.1.2-r351h32998d9_0 --> 1.0.0-r3.3.2_0
r-highr 0.7-r351hf348343_0 --> 0.6-r3.3.2_0
r-hms 0.4.2-r351hf348343_0 --> 0.3-r3.3.2_0
r-htmltools 0.3.6-r351h32998d9_0 --> 0.3.5-r3.3.2_0
r-htmlwidgets 1.2-r351hf348343_0 --> 0.8-r3.3.2_0
r-httpuv 1.4.5-r351h32998d9_0 --> 1.3.3-r3.3.2_0
r-httr 1.3.1-r351hf348343_0 --> 1.2.1-r3.3.2_0
r-jsonlite 1.5-r351h6402f54_0 --> 1.1-r3.3.2_0
r-kernsmooth 2.23_15-r351h0b560c1_4 --> 2.23_15-r3.3.2_0
r-lattice 0.20_35-r351h6402f54_0 --> 0.20_34-r3.3.2_0
r-lazyeval 0.2.1-r351h6402f54_0 --> 0.2.0-r3.3.2_0
r-magrittr 1.5-r351hf348343_4 --> 1.5-r3.3.2_2
r-markdown 0.8-r351h6402f54_0 --> 0.7.7-r3.3.2_2
r-mass 7.3_50-r351h6402f54_0 --> 7.3_45-r3.3.2_0
r-matrix 1.2_14-r351h6402f54_0 --> 1.2_7.1-r3.3.2_0
r-mgcv 1.8_24-r351h6402f54_0 --> 1.8_16-r3.3.2_0
r-mime 0.5-r351h6402f54_0 --> 0.5-r3.3.2_0
r-miniui 0.1.1.1-r351hf348343_0 --> 0.1.1-r3.3.2_0
r-nlme 3.1_137-r351h0b560c1_0 --> 3.1_128-r3.3.2_0
r-nnet 7.3_12-r351h6402f54_0 --> 7.3_12-r3.3.2_0
r-openssl 1.0.2-r351h46e59ec_1 --> 0.9.5-r3.3.2_0
r-packrat 0.4.9_3-r351hf348343_0 --> 0.4.8_1-r3.3.2_0
r-pki 0.1_5.1-r351h46e59ec_1 --> 0.1_3-r3.3.2_0
r-plogr 0.2.0-r351hf348343_0 --> 0.1_1-r3.3.2_0
r-plyr 1.8.4-r351h32998d9_0 --> 1.8.4-r3.3.2_0
r-purrr 0.2.5-r351h6402f54_0 --> 0.2.2-r3.3.2_0
r-r6 2.2.2-r351hf348343_0 --> 2.2.0-r3.3.2_0
r-rcpp 0.12.18-r351h32998d9_0 --> 0.12.8-r3.3.2_0
r-rcurl 1.95_4.11-r351h6402f54_0 --> 1.95_4.8-r3.3.2_0
r-readxl 1.1.0-r351h32998d9_0 --> 0.1.1-r3.3.2_0
r-recommended 3.5.1-r351_0 --> 3.3.2-r3.3.2_0
r-reshape2 1.4.3-r351h32998d9_0 --> 1.4.2-r3.3.2_0
r-rjava 0.9_10-r351h6402f54_0 --> 0.9_8-r3.3.2_0
r-rjsonio 1.3_0-r351h32998d9_4 --> 1.3_0-r3.3.2_2
r-rpart 4.1_13-r351h6402f54_0 --> 4.1_10-r3.3.2_0
r-rprojroot 1.3_2-r351hf348343_0 --> 1.1-r3.3.2_0
r-rsconnect 0.8.8-r351hf348343_0 --> 0.7-r3.3.2_0
r-rstudioapi 0.7-r351hf348343_0 --> 0.6-r3.3.2_0
r-shiny 1.1.0-r351hf348343_0 --> 0.14.2-r3.3.2_0
r-sourcetools 0.1.7-r351h32998d9_0 --> 0.1.5-r3.3.2_0
r-sparklyr 0.8.4-r351hf348343_0 --> 0.5.1-r3.3.2_0
r-spatial 7.3_11-r351h6402f54_4 --> 7.3_11-r3.3.2_0
r-stringi 1.2.4-r351h32998d9_0 --> 1.1.2-r3.3.2_0
r-stringr 1.3.1-r351hf348343_0 --> 1.1.0-r3.3.2_0
r-survival 2.42_6-r351h6402f54_0 --> 2.40_1-r3.3.2_0
r-tidyr 0.8.1-r351h32998d9_0 --> 0.6.0-r3.3.2_0
r-withr 2.1.2-r351hf348343_0 --> 1.0.2-r3.3.2_0
r-xml2 1.2.0-r351h32998d9_0 --> 1.0.0-r3.3.2_0
r-xtable 1.8_2-r351hf348343_0 --> 1.8_2-r3.3.2_0
r-yaml 2.2.0-r351h6402f54_0 --> 2.1.14-r3.3.2_0
rstudio 1.1.456-h04f5b5a_1 --> 1.0.44-0
unixodbc 2.3.7-h1de35cc_0 --> 2.3.6-h3efe00b_0
I just discovered pheatmap after using heatmap.2 for a while. In both tools, you can specify clustering settings. However, if I set those parameters to use the same algorithms, the resulting heatmaps do not look similar. I mean the rows are clearly in a very different order. How can that be? Does pheatmap perform additional manipulations that heatmap.2 does not?
Example code:
# pheatmap
pheatmap(vals, scale="row", cluster_rows=T, cluster_cols=T, clustering_distance_rows = "euclidean", clustering_distance_cols = "euclidean", clustering_method = "complete", color=colors)
# heatmap.2
hclust_fun = function(x) hclust(x, method="complete")
dist_fun = function(x) dist(x, method="euclidean")
heatmap.2( as.matrix(vals), scale="row", trace="none", dendrogram="both", Rowv=T, Colv=T, distfun=dist_fun, hclustfun=hclust_fun, col=colors)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.