Replies: 3 comments 1 reply
-
|
Just to add to the above, I found this tutorial on |
Beta Was this translation helpful? Give feedback.
-
|
Related to this: I was thinking on maybe splitting all base plotting functionality into its own function, something like having:
And more... What do you think? |
Beta Was this translation helpful? Give feedback.
-
Thanks for your patience.I'll start with a response here, to give the overall gist, then try to answer your more specific questions. I'll hopefully have some time in the next couple days to look more closely at your pull request. To give some context, I made this package because I was sick of porting data over to R to use ggtree. My original overall goal would be to have a plotting package that covers the majority of ggtree’s functionality. That said, this is a parttime project of mine, so there is a lot prioritization and triage that is needed. Also, Julia is not R where I would say the majority of data plotting has coalesced around ggplot. In Julia, because there was no generic tree plotting package each phylogenetic package was implementing their own recipes. See Phylo.jl, NewickTree.jl, and PhyloTools.jl (same basic recipe as NewickTree.jl, and where I started building from for my recipe). The other purpose of this package was to be more generic than ggtree. My research, is partially related phylogenetics, but more fundamentally related to analysis of hierarchical structures. So, I wanted a visualization package that could handle any type of hierarchical datatype I might need in the future. So I agree the first step is to build basic recipes that plot different layers of visualization. Having different recipes to handle these different layers as you suggested is a good idea. To scope things out a bit. The way I was organizing the package was that the core layout algorithms that calculate coordinates, positions, and are generic to any potential plotting backend should go directly into the BasicTreePlots.jl package. Backend specific functions recipes etc. would go in package extensions for each backend. Functions needed to implement the interface functions for each tree structure backend can go into their own extensions, with the necessary interface being kept as minimal as possible. Regarding the specific recipes needed and what they should be called.For this package I would stick with recipe names that follow Makie conventions where they exist, and ggplot naming where no Makie convention exists. There is a package called TidierPlots.jl That would be great to interact with eventually. They have a way to make "geom_templates" which take makie recipes and turn them into ggplot like syntax for julia. Eventually when interfacing with that package it may be worth duplicating some functions so that ggtree syntax is more closely aligned with, but for now we need recipes for plotting trees and tree metadata. And as makie is the only current backend, we should stick with those naming conventions. Hence I would prefer
Other features (low priority)
Other thoughts
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Just wanted to open this thread to discuss which will be the direction of the package. Been working on implementing some new recipes, but at the same time have been testing some ideas on regards of how this package could be implemented.
I think this can have 2 main directions:
ggtree, where on can build tree visualizationsI really thinks the aim should be the first, but playing around with the package on my own work it seems that the second options is closer to day-to-day use, since (at least in my case) one generally wants to add metadata to the tree's.
Let me know what you think, since I think we can improve the documentation to provide some guidelines on how to make things work a la
ggtreeusing the functionality provided here.Beta Was this translation helpful? Give feedback.
All reactions