Q2-phylogeny refactor

Continuing the discussion from here:

1 Like

I think there are two things to consider right now:

  1. The name of the pipeline that @turanoohas proposed adding to q2-phylogeny
  2. The future organization considerations of the actions that are in (or will one day be in) q2-phylogeny

Regarding #1:

I think that discussion should live in the PR, until we determine otherwise.

Regarding #2:

I have a question about how this naming would work:

I am personally leaning toward keeping the pipelines in q2-phylogeny but having a pipeline name like phylogeny-from-mafft is appealing.

Do you envision phylogeny-from-mafft living in a q2-fasttree plugin, or somewhere else? My understanding of @SoilRotifer’s suggestion was to stick all the pipelines in their own plugin and include their constituent methods with their names (e.g. fasttree-with-mafft). I think phylogeny-from-mafft makes sense if we break out into tool-specific plugins like q2-fasttree, otherwise that name seems a little too unclear on its own.

As far as general restructure goes, I like @SoilRotifer’s suggestions here, which seem to line up with @Nicholas_Bokulich’s, too. I don’t really have a preference one way or the other regarding tool-specific vs thematic plugins for this discussion.

Lastly, some general reactions to other parts of that thread:

I do have some plans/ideas to add more specific rooting options like outgroup-root, clade-root, etc…


In general I like thematic plugins (otherwise the plugin registry becomes difficult for users to navigate), so I am pro-monopoly.

I think there is a lot of merit to that, too.

I think the discussion on plugin organization is important (and so far really great), but it’s probably out of scope for the sake of this PR.

My fault - I made a “new issue” suggestion in my initial post, but should’ve just created this thread to start the discussion here right away. Sorry!

:t_rex: :t_rex: :t_rex:


agreed, that was my original meaning — I clarified here that I don’t actually endorse that idea.

I think I prefer keeping one plugin, because I like thematic plugins. But @SoilRotifer’s suggested structure is still thematic, and so I can get behind that if we expect each of these plugins to grow to the extent that dividing now makes sense. It sounds like @SoilRotifer has a lot of great ideas/plans to expand the plugin(s), so maybe that does make sense!

Is it possible to make nested plugins? E.g., instead of making three separate plugins, we make these modules within q2-phylogeny. So the interface (using CLI as example) would be something like:
phylogeny inference fasttree ...
phylogeny edits midpoint-root ...
phylogeny pipelines align-to-tree-mafft-fasttree ...

Such nestedness would also be really useful for other plugins in general.