From correspondence:
Regarding the LCA functionality, it would seem that it would be straightforward to implement things such that any of the major ranks could be specified (so instead of --family, --genus, etc., just a single –rank flag that accepts any of the major ranks). I do understand the concept of a “relative” LCA specified numerically that limits how many jumps “up” the tree to allow, although I’m not sure why there’s a limit on how high this can be set (if it’s set too high, then the program could just report the most inclusive rank allowed - phylum, kingdom, root, etc.). Finally, what about a “generic” LCA mode that simply returns the LCA of the various hits for each read (potentially all the way up to the root)? I guess this would be equivalent to setting --lca to a very large value, if this were allowed. This functionality doesn’t seem possible currently but is actually the default behavior of many classifiers.
Adding the --rank is a little bit more complicated. The couple of reasons we’ve chosen to stick with --genus and --family are: (a) not all organism have all of the ranks in the taxonomic lineage – genus and family are the most common, (b) we actually do some precomputing to speed up the signature read identification post binning – we have several high-speed access tables for species, genus, and family, as the code stands, adding --rank will break a few things. I've added this on our GitHub page as one of the desired features but this one will require substantial testing to make sure it works as intended so it is unlikely that it will be available by June 30th.
From correspondence:
Regarding the LCA functionality, it would seem that it would be straightforward to implement things such that any of the major ranks could be specified (so instead of --family, --genus, etc., just a single –rank flag that accepts any of the major ranks). I do understand the concept of a “relative” LCA specified numerically that limits how many jumps “up” the tree to allow, although I’m not sure why there’s a limit on how high this can be set (if it’s set too high, then the program could just report the most inclusive rank allowed - phylum, kingdom, root, etc.). Finally, what about a “generic” LCA mode that simply returns the LCA of the various hits for each read (potentially all the way up to the root)? I guess this would be equivalent to setting --lca to a very large value, if this were allowed. This functionality doesn’t seem possible currently but is actually the default behavior of many classifiers.
Adding the --rank is a little bit more complicated. The couple of reasons we’ve chosen to stick with --genus and --family are: (a) not all organism have all of the ranks in the taxonomic lineage – genus and family are the most common, (b) we actually do some precomputing to speed up the signature read identification post binning – we have several high-speed access tables for species, genus, and family, as the code stands, adding --rank will break a few things. I've added this on our GitHub page as one of the desired features but this one will require substantial testing to make sure it works as intended so it is unlikely that it will be available by June 30th.