I have written a somewhat functioning plugin, however the API and CLI are behaving slightly differently. When I run the plugin through the API I get the expected result:
pf = phylofactor.methods.phylofactor(data, unrooted_tree, metadata, family='binomial', formula='Subject~Data', choice='F', nfactors=3, ncores=4) print([e for e in dir(pf) if not e.startswith('_')]) ['count', 'factors', 'featuretable', 'index', 'tree']
Above you can see the three results that should be returned (
However when I run the command with the same data from the CLI:
$ qiime phylofactor phylofactor --i-table example/table-dada2.qza --i-phylogeny example/unrooted-tree.qza --m-metadata-file example/sample-metadata.tsv --p-family binomial --p-formula 'Subject~Data' --p-nfactors 2 --output-dir foo --verbose $ ls foo featuretable.qza tree.qza
Now there is no
factors file being returned. There are no errors however I’m guessing this is related to the definition of the factor artifact, but I don’t know where to begin looking for the solution.
I apologize I realize the above example is in no way reproducible and I will be happy to provide additional data, however as I said I’m not sure where to start with this, I was thinking that the machinery behind the scenes was the same regardless of interface.