You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
we are very exited using your library in our projects and thank you for developing it. Our team is quite eager to know whether you have plans to add a dendrogram and heatmap with dendrogram in the upcoming releases? If you don't have such plans and since we need these kind of plots very much, probably you may give us a guide how we can implement these plots, then we will be able to make a proper PR.
We didn't plan to release dendrogram any time soon and if you are willing to put efforts in this task it would be great.
The 1st step would be implement dendrogram as a separate plot similar to the ggdendro package. I.e. using geom_segment() and perhaps geom_text().
Dendrogram API we can put to the "jetbrains.letsPlot.bistro" package next to CorrPlot.
Dont worry about plot orientation - we are releasing coord_flip() pretty soon.
The next step would be the heatmap combo. We don't have 'marginal plot' feature yet so unfortunately you will have to compute sizes and positions of plots manually and use GGBunch to combine heatmap and dendrograms in one figure.
thank you very much for a quick response. We looked in the sources of ggdendro and an example of CorrPlot. I think it is pretty straightforward, so we will try to implement dendrogram that way. But I'm still not sure how to use GGBunch to combine dendrogram and heatmap, so we'll investigate this further. Meanwhile, we'll start with dendrogram and come back if any questions arise. Once we will be ready, we open PR. Thank you very much for the help.
Hi Stanislav, how is dendrogram going?
In v3.3.0 we've added ggmarginal() which could help to add dendrogram on a plot margin.
Top/bottom margins should work right away. Left/right margin will require setting orientation="y" to the dendrogram geometry layer.
I've implemented heatmap and dendrogram, but not in a conventional ggplot way, so I'm not sure how it could be helpful for the lets-plot project; there are fundamentally things which may not be done in a ggplot way (e.g. several different fill scales etc). Our library (just made it public, its in the wip, no docs still; the license will be changed later to apache) combines ggpubr, ggdendro, heatmap2 and other addon packages for ggplot.
I will be happy to discuss with you how we can make it more useful for lets-plot project!
The last + statCompareMeans() adds the overall p-value layer (between all three groups), and the first one adds pairwise p-values. Not sure that it is a good way to do, but I tried to mimicrate how it done in ggpubr.
Activity
alshan commentedon Oct 27, 2021
wow, that would be huge contribution! Do I understand correctly you are using lets-plot Kotlin API?
PoslavskySV commentedon Oct 28, 2021
yes, correct, we use Kotlin API
alshan commentedon Oct 28, 2021
in this event let me transfer you to the LPK project. Disregard scary notifications.
alshan commentedon Oct 28, 2021
We didn't plan to release dendrogram any time soon and if you are willing to put efforts in this task it would be great.
The 1st step would be implement dendrogram as a separate plot similar to the ggdendro package. I.e. using geom_segment() and perhaps geom_text().
Dendrogram API we can put to the "jetbrains.letsPlot.bistro" package next to CorrPlot.
Dont worry about plot orientation - we are releasing
coord_flip()pretty soon.The next step would be the heatmap combo. We don't have 'marginal plot' feature yet so unfortunately you will have to compute sizes and positions of plots manually and use GGBunch to combine heatmap and dendrograms in one figure.
How does it sound?
PoslavskySV commentedon Oct 28, 2021
Hi Igor,
thank you very much for a quick response. We looked in the sources of
ggdendroand an example ofCorrPlot. I think it is pretty straightforward, so we will try to implement dendrogram that way. But I'm still not sure how to use GGBunch to combine dendrogram and heatmap, so we'll investigate this further. Meanwhile, we'll start with dendrogram and come back if any questions arise. Once we will be ready, we open PR. Thank you very much for the help.With best wishes,
Stanislav
alshan commentedon Oct 29, 2021
Sounds great!
alshan commentedon Oct 29, 2021
GGBunch example: https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/ggbunch.ipynb
alshan commentedon Jun 28, 2022
Hi Stanislav, how is dendrogram going?
In v3.3.0 we've added ggmarginal() which could help to add dendrogram on a plot margin.
Top/bottom margins should work right away. Left/right margin will require setting
orientation="y"to the dendrogram geometry layer.Doc: ggmarginal.
PoslavskySV commentedon Jun 29, 2022
Hi Igor,
I've implemented heatmap and dendrogram, but not in a conventional ggplot way, so I'm not sure how it could be helpful for the lets-plot project; there are fundamentally things which may not be done in a ggplot way (e.g. several different fill scales etc). Our library (just made it public, its in the wip, no docs still; the license will be changed later to apache) combines ggpubr, ggdendro, heatmap2 and other addon packages for ggplot.
I will be happy to discuss with you how we can make it more useful for lets-plot project!
Few examples:
Heatmaps with clustering
https://github.com/milaboratory/miplots/blob/master/src/test/kotlin/com/milaboratory/miplots/heatmap/HeatmapTest.kt
Dendro
https://github.com/milaboratory/miplots/blob/master/src/test/kotlin/com/milaboratory/miplots/dendro/GGDendroTest.kt
Statistics
https://github.com/milaboratory/miplots/blob/master/src/test/kotlin/com/milaboratory/miplots/stat/xdiscrete/statCompareMeansTest.kt
alshan commentedon Jun 30, 2022
Hi Stanislav, congratulations, it looks awesome!
Not sure what the second
+ statCompareMeans()adds in the last (boxplot) test.PoslavskySV commentedon Jun 30, 2022
The last
+ statCompareMeans()adds the overall p-value layer (between all three groups), and the first one adds pairwise p-values. Not sure that it is a good way to do, but I tried to mimicrate how it done in ggpubr.