ropensci / iheatmapr

Complex, interactive heatmaps in R
https://docs.ropensci.org/iheatmapr
Other
267 stars 36 forks source link

Scaling and couple of formatting questions #14

Closed josruirod closed 7 years ago

josruirod commented 7 years ago

Hello and first of all thanks for the very nice package and your development, it's a real contribution and the complex modular plots approach is really interesting.

Please allow me to make you some questions I have been struggling with, after carefully reviewing the net and the vignette. I can try further pre-processing the data before plotting, but I have decided to ask to make sure the package does not have these functionalities:

Thank you for your package and your time

AliciaSchep commented 7 years ago

Thanks for your questions @josruirod ! Preliminary thoughts:

josruirod commented 7 years ago

Thank for your clarifications.

iheatmap(Indometh_patient_cor,name = "Correlation", scale = c("rows"), scale_method = c("center")) This provides a heatmap where the values range to -0.03 to 0.029.

Using the same matrix with other typical heatmaps packages, like pheatmap, that scale changes. pheatmap(Indometh_patient_cor, scale = c("row"))

I believe pheatmap scaling row-wise takes also into account sd, but what I find interesting is that by default provides a colorbar ranging from -1.5 to 1.5 value. And the fact that this can be changed using the breaks argument for example.

I wondered if in any way we can control the range of values in the colorbar with your function. It could be interesting for example to get the same range of positive or negative values or to force the same scale in different plots in order to compare them.

Thank you so much for answering and for your feedback!

AliciaSchep commented 7 years ago

Thanks for the clarification about the scaling!

Regarding the scale issue, "center" just subtracts the mean, while "standardize" subtracts the mean and divides by the standard deviation. The "standardize" option will give results comparable to pheatmap scaling method. I realize this wasn't very clear in documentation and have updated the man page for iheatmap function.

For more control over min/max of range, using the lower level main_heatmap function gives more options -- the zmin and zmax arguments specify the max/min of the colorbar/scale. You can also pass those arguments to iheatmap as all extra arguments to iheatmap get passed along to main_heatmap. Currently no options to fine tune the exact breaks desired, but I agree that would be a nice additional feature.

josruirod commented 7 years ago

Thank you so much for your insights, all clear now. Regards