Description
The need
Currently anvi-gen-phylogenomic-tree
only works with amino acid sequence input. But FastTree (currently the only implemented option for making trees in anvi'o) allows nucleotide input with the -nt
parameter, so it would be possible for us to enable the use of that option (and other custom FastTree parameters) by updating the driver module in fasttree.py
.
I would also note that there is a FastTree 2.0 version (https://morgannprice.github.io/fasttree/). There is no version parameter (or output in the help) so I couldn't tell quickly what version we currently install in the anvi'o environment, but we should consider updating to 2.0 if we haven't already.
In the best case, we'd also implement drivers for other phylogenomic tree programs so that anvi-gen-phylogenomic-tree
is not simply a wrapper for FastTree.
The solution
Update the FastTree driver to detect what type of sequence input it gets, and modify the FastTree command accordingly. Could also add a --additional-params
flag to anvi-gen-phylogenomic-tree
that would allow people to pass custom flags to FastTree similar to how we do this in the snakemake workflows.
Make sure FastTree 2.0 is installed.
Beneficiaries
Everyone who wants to do nucleotide-based trees quickly in anvi'o. There have been many people trying to do this before and have gotten vague errors because we don't implement either a sanity check for sequence type or the option to change sequence type.