Confusion over `qiime.core.callable.Results` object

I am wondering about the difference between qiime.core.callable.Results objects when using the API.

For example: foo = feature_table.actions.summarize(qiime_table) will produce what looks like a matplotlib plot, however, bar = feature_table.actions.tabulate_seqs(qiime_seqs)
does not produce a plot even though the results objects are the same class

print(type(bar))
<class 'qiime.core.callable.Results'>
<class 'qiime.core.callable.Results'>```

This is really not a big deal, though it was a little surprising to get the different behavior. Is there a way of knowing if a visualization will produce a plot or not? If the plot is not viewable in the jupyter notebook is it possible to view it outside of the [QIIME viewer](view.qiime2.org)? If a plot is produced, is it possible to access the underlying object so that axes may be changed for instance?

Thanks!
1 Like

Hey @John_Chase

I think you’re seeing a plot accidentally working. Which is pretty cool, but our ultimate goal would be to have something like the QIIME viewer inside of the notebook as it’s repr (which would give you provenance and more).

There is no way to get at the underlying object however, as the visualization is basically a directory of index.<ext> files (often html). So when you see the matplotlib-like plot, it’s really just a png or similar that’s being repr-ed.

2 Likes

Okay, that makes sense. I think I was a bit surprised when a plot showed up in my jupyter notebook.

Thanks!

1 Like