Skip to content

Discussion: future of the gene tree rooting methods (mad, Nevers_rooting, outlier) #120

Open

Description

@alpae

fastoma-infer-subhogs --gene-rooting-method accepts five values, but only the midpoint ones work. This issue is for deciding what to do with the others. They are not exposed in FastOMA.nf, so they can only be reached by calling fastoma-infer-subhogs directly.

method state
midpoint (default) works
midpoint-dendropy works (tested), not listed in --help
mad broken: infer_rooted_genetree passes the tree object, _wrappers.mad_rooting expects a file path (_infer_subhog.py:512 vs _wrappers.py:120); the mad binary is not in the Docker image or conda env; with several equally good roots it takes the first one
Nevers_rooting reads species_tree.nwk from the working directory (_infer_subhog.py:507), which doesn't exist in a pipeline task (there it is species_tree_checked.nwk); tries every edge as root with set_outgroup, i.e. quadratic
outlier marked "not yet implemented completely"; debug prints (_utils_subhog.py:576-648); quadratic get_distance over all leaf pairs

There is also an unused copy of the rooting dispatch in _utils_subhog.genetree_sd (:189-248, only called from the disconnected fragment code).

Questions

  • Which methods should FastOMA offer? E.g. keep midpoint (+ dendropy variant), make mad work (needs the binary as a dependency), and develop the species-tree-aware rooting (Nevers) properly with the checked species tree passed in.
  • Should the others be removed until they are ready? Removing them also reduces the ete3 surface for the ete4 migration.
  • Should the option get choices= so typos fail at argument parsing instead of at the first gene tree?

Test

Activity

  1. added
    discussionNeeds a decision before implementation
    on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionNeeds a decision before implementation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions