Git Product home page Git Product logo

q2-emperor's Introduction

q2-emperor's People

Contributors

ahdilmore avatar cherman2 avatar chriskeefe avatar david-rod avatar ebolyen avatar eldeveloper avatar gregcaporaso avatar hagenjp avatar jairideout avatar jakereps avatar lizgehret avatar mortonjt avatar oddant1 avatar q2d2 avatar sejsong avatar thermokarst avatar turanoo avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

q2-emperor's Issues

Custom Colors

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

sample shape causes color to change

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.

image
image

Improved biplot documentation

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

  1. https://forum.qiime2.org/t/features-in-principal-coordinate-analysis-biplot/10492

rename `pcoa` parameter name?

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"?

'pcoa': 'The principal coordinates matrix to be plotted.'

q2-emperor broken with Emperor 1.0.0beta7 upgrade

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.

Expose `ignore_missing_samples` parameter in visualizers?

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

  1. There is currently no index matching in the plugin itself, which means that users will only see 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.
  2. If this parameter is added, should it be exposed in the q2-diversity core-metrics* pipelines?

Comments

  1. There is precedent for this kind of per-action ID matching within the QIIME 2 ecosystem (see link below RE: q2-sample-classifier).

References

  1. Originating forum post
  2. Related to issue #50
  3. Emperor API Docs
  4. q2-sample-classifier docs (note the missing-samples parameter)

install error

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'

qiime emperor plot should ignore feature attributes

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

  1. Generate an ordination with biplot attributes.
  2. Plot using qiime emperor plot.
  3. Open visualization using q2view.

Expected behavior
The plot should be displayed on screen without any biplot features.

References

  1. Originally reported here.

Metadata ID validation

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.

Opacity Selections

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.