qiime2 / q2-emperor Goto Github PK
View Code? Open in Web Editor NEWLicense: BSD 3-Clause "New" or "Revised" License
License: BSD 3-Clause "New" or "Revised" License
I am really enjoying this new feature.
But non-sphere shapes cause the color to lighten. e.g., in the attached plot there should be 5 colors (I pasted the color key below).
Also, just a general comment โ non-sphere shapes don't look great in 3D, as only the spheres have good depth. Shape selection + 2D plots = better choices.
The plugin description seems to be incomplete, see this line:
q2-emperor/q2_emperor/plugin_setup.py
Line 44 in 312b919
Improvement Description
Tracking upstream issue: biocore/emperor#726
TBD: Update this issue when biocore/emperor#726 is resolved.
References
biocore/emperor#726
Variadic inputs are now supported by the framework, so q2-emperor should be able to take custom axes (instead of just a single custom axis).
We'll need this for the FMT tutorial.
This depends on qiime2/qiime2#125, as we need this to default to None
.
This will allow more seamless analysis of microbe / multi-omics features.
See
The q2-emperor unit tests passed for the Emperor 1.0.0beta7 upgrade but the nightly integration tests failed when running through the Moving Pictures tutorial. It looks like there's some issue in Emperor with tojson
:
Command 'qiime emperor plot --i-pcoa core-metrics-results/unweighted_unifrac_pcoa_results.qza --m-metadata-file sample-metadata.tsv --p-custom-axis DaysSinceExperimentStart --o-visualization core-metrics-results/unweighted-unifrac-emperor.qzv' exited with non-zero return code 1.
stdout:
stderr:
Plugin error from emperor:
no filter named 'tojson'
@ElDeveloper can you look into this today? Ideally we would like to fix this ASAP for tomorrow's release, but if there isn't time we'll revert back to Emperor 1.0.0beta5.
Improvement Description
The biplot viz does not document how the top five features to be plotted are selected. Based on a quick read of the code, it looks like those features are based on the euclidean distance from the origin, sorted by magnitude. It would be helpful to document this in the viz a bit better. Updating the action's description text and the number-of-features
parameter seem like good candidates to me.
References
Improvement Description
In order to keep things consistent, it would be great to update the semantic type for the custom_axes
parameter to be a Metadata Column.
References
custom_axes
It would be wonderful to have the option to select multiple categories when adjusting the opacity and adjust them all at once rather than currently choosing and adjusting each one individually. I.e. I have 17 choices and I want 16 of them to be set at 0.1. Selecting each of those at once and adjusting the opacity to 0.1 would speed things up.
Love,
Teammate Jeff
It would be wonderful to have the option to create a custom color scheme on emperor plots and have the option to save that i.e. "compost-colors". When opening multiple tabs with the same visualization, I had to change the colors on each tab and if I wanted to change between "Select a color category" then it would reset my previous color changes.
Love,
Teammate Jeff
Following the install directions, I get the following when trying to do a qiime --plugins
Traceback (most recent call last):
File "/Users/constantino/miniconda2/envs/q2test/bin/qiime", line 9, in <module>
load_entry_point('q2cli==0.0.0.dev0', 'console_scripts', 'qiime')()
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/setuptools-20.3-py3.5.egg/pkg_resources/__init__.py", line 549, in load_entry_point
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/setuptools-20.3-py3.5.egg/pkg_resources/__init__.py", line 2542, in load_entry_point
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/setuptools-20.3-py3.5.egg/pkg_resources/__init__.py", line 2202, in load
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/setuptools-20.3-py3.5.egg/pkg_resources/__init__.py", line 2208, in resolve
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/q2cli/cli.py", line 21, in <module>
PLUGIN_MANAGER = PluginManager()
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/qiime/sdk/plugin_manager.py", line 21, in __init__
group='qiime.plugin')]
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/qiime/sdk/plugin_manager.py", line 20, in <listcomp>
plugins = [e.load() for e in pkg_resources.iter_entry_points(
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/setuptools-20.3-py3.5.egg/pkg_resources/__init__.py", line 2202, in load
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/setuptools-20.3-py3.5.egg/pkg_resources/__init__.py", line 2208, in resolve
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/q2_diversity/plugin_setup.py", line 35, in <module>
plugin.methods.register_markdown('markdown/feature_table_to_pcoa.md')
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/qiime/plugin.py", line 140, in register_markdown
method = qiime.sdk.Method.from_markdown(markdown_filepath)
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/qiime/sdk/method.py", line 105, in from_markdown
self._from_markdown(markdown_filepath)
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/qiime/sdk/method.py", line 116, in _from_markdown
input_types[name] = self._parse_semantic_type(type_expr)
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/qiime/sdk/method.py", line 181, in _parse_semantic_type
pm = qiime.sdk.PluginManager()
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/qiime/sdk/plugin_manager.py", line 21, in __init__
group='qiime.plugin')]
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/qiime/sdk/plugin_manager.py", line 20, in <listcomp>
plugins = [e.load() for e in pkg_resources.iter_entry_points(
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/setuptools-20.3-py3.5.egg/pkg_resources/__init__.py", line 2202, in load
File "/Users/constantino/miniconda2/envs/q2test/lib/python3.5/site-packages/setuptools-20.3-py3.5.egg/pkg_resources/__init__.py", line 2208, in resolve
ImportError: No module named 'q2_emperor'
In the drop-down menu, indicate which variables are continuous and which are categorical.
For categorical variables display the rank / number of categories.
This came up on the forum here.
This issue proposes the addition of a new parameter (ignore_missing_samples
) to the visualizers defined in this plugin.
Current Behavior
Currently, the visualizations in this plugin (plot
and procrustes_plot
) perform index matching of the Sample IDs in the PCoA results and the Metadata. This index matching is conducted entirely by emperor
(rather than q2-emperor). When a user provides metadata to these actions that are missing samples that are present in the PCoA results, emperor
will raise the following error:
There are samples not included in the mapping file.
Override this error by using the ignore_missing_samples argument.
Proposed Behavior
Emperor supports an optional parameter called ignore_missing_samples
that will disable or enable index matching between the PCoA results and metadata at runtime. This parameter could be exposed in both plot
and procrustes_plot
as a Visualizer
parameter. In the case where there are missing samples in the metadata, and ignore_missing_samples
is True
, the error above would not be raised, and instead emperor
would just strip away those metadata-less samples from the plot.
Questions
emperor
-derived error messages related to ID mismatches, which is probably an inconsistent UX for users. I raise the question here, since they are somewhat related, but would be equally happy addressing in another issue.core-metrics*
pipelines?Comments
References
Bug Description
qiime emperor plot
should ignore biplot features (perhaps showing a warning and noting that qiime emperor biplot
should be used if they would prefer to visualize features).
Steps to reproduce the behavior
qiime emperor plot
.Expected behavior
The plot should be displayed on screen without any biplot features.
References
When supplying metadata for a custom axis, it would be pretty awesome to perform some Sample ID validation in the plugin prior to handing off to emperor
, ensuring that the pcoa results are a subset of the metadata IDs. When emperor
gets disjoint metadata IDs it doesn't report back what IDs are missing, so this makes it a bit difficult for a user to pinpoint. In particular, this forum post comes to mind. This would also make this viz consistent with many other QIIME 2 Actions that ensure appropriate ID overlap.
We have introduced t-SNE
and UMAP
as alternative ordination methods in qiime2-2021.11. Should we therefore change the input parameter name for the ordination (which previously always was a PCoA) from "pcoa" into "ordination"?
q2-emperor/q2_emperor/plugin_setup.py
Line 65 in fdd1a8b
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.