Git Product home page Git Product logo

q2studio's Introduction

qiime2 (the QIIME 2 framework)

Source code repository for the QIIME 2 framework.

QIIME 2™ is a powerful, extensible, and decentralized microbiome bioinformatics platform that is free, open source, and community developed. With a focus on data and analysis transparency, QIIME 2 enables researchers to start an analysis with raw DNA sequence data and finish with publication-quality figures and statistical results.

Visit https://qiime2.org to learn more about the QIIME 2 project.

Installation

Detailed instructions are available in the documentation.

Users

Head to the user docs for help getting started, core concepts, tutorials, and other resources.

Just have a question? Please ask it in our forum.

Developers

Please visit the contributing page for more information on contributions, documentation links, and more.

Citing QIIME 2

If you use QIIME 2 for any published research, please include the following citation:

Bolyen E, Rideout JR, Dillon MR, Bokulich NA, Abnet CC, Al-Ghalith GA, Alexander H, Alm EJ, Arumugam M, Asnicar F, Bai Y, Bisanz JE, Bittinger K, Brejnrod A, Brislawn CJ, Brown CT, Callahan BJ, Caraballo-Rodríguez AM, Chase J, Cope EK, Da Silva R, Diener C, Dorrestein PC, Douglas GM, Durall DM, Duvallet C, Edwardson CF, Ernst M, Estaki M, Fouquier J, Gauglitz JM, Gibbons SM, Gibson DL, Gonzalez A, Gorlick K, Guo J, Hillmann B, Holmes S, Holste H, Huttenhower C, Huttley GA, Janssen S, Jarmusch AK, Jiang L, Kaehler BD, Kang KB, Keefe CR, Keim P, Kelley ST, Knights D, Koester I, Kosciolek T, Kreps J, Langille MGI, Lee J, Ley R, Liu YX, Loftfield E, Lozupone C, Maher M, Marotz C, Martin BD, McDonald D, McIver LJ, Melnik AV, Metcalf JL, Morgan SC, Morton JT, Naimey AT, Navas-Molina JA, Nothias LF, Orchanian SB, Pearson T, Peoples SL, Petras D, Preuss ML, Pruesse E, Rasmussen LB, Rivers A, Robeson MS, Rosenthal P, Segata N, Shaffer M, Shiffer A, Sinha R, Song SJ, Spear JR, Swafford AD, Thompson LR, Torres PJ, Trinh P, Tripathi A, Turnbaugh PJ, Ul-Hasan S, van der Hooft JJJ, Vargas F, Vázquez-Baeza Y, Vogtmann E, von Hippel M, Walters W, Wan Y, Wang M, Warren J, Weber KC, Williamson CHD, Willis AD, Xu ZZ, Zaneveld JR, Zhang Y, Zhu Q, Knight R, and Caporaso JG. 2019. Reproducible, interactive, scalable and extensible microbiome data science using QIIME 2. Nature Biotechnology 37:852–857. https://doi.org/10.1038/s41587-019-0209-9

q2studio's People

Contributors

andrewsanchez avatar chriskeefe avatar david-rod avatar ebolyen avatar gregcaporaso avatar jairideout avatar jakereps avatar keegan-evans avatar kestrelgorlick avatar lizgehret avatar maxvonhippel avatar nbokulich avatar q2d2 avatar thermokarst avatar turanoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

q2studio's Issues

Enter/Return breaks job pages

The job inputs are within a form, so Enter/Return is linked to submitting that form, however the job submission currently doesn't use that same method, so it'll need to have an event listener added and route the enter key to the proper onSubmit() function instead of "submitting" the form itself.

It seems like it'll actually be possible to hook the function in as both the submit button and the form submission action, so potentially no listener would be needed. <form onsubmit={}> might do the trick, and allow removing the onClick from the Submit button, and moving both Go as type="submit" and Cancel back into the form wrapper.

Prototype status user warnings

At the time of this issue being filed, q2studio has a fallen behind q2cli in terms of supported features. We would like to be more transparent about this with users (since we are bundling this in the VBox image, for example).

At minimum, we would like to display a warning on the main application window, as some kind of permanent alert (e.g. Bootstrap warning/error). If the banner shows up on all application windows, that is okay, too (whatever is quickest/easiest).

If it is straightforward, it would be great to see this warning also show up in a splash screen, but this is just a "nice-to-have."

failure when trying to "Run again"

I ran a visualizer with q2-dada2's plot_qualities. After it completed I hit "Run again" and got the following error:

screenshot 2016-09-27 14 57 30

I'm running this in dev mode.

Start up time is excessive

Improvement Description
Story:
A user should be able to start the studio without thinking that the program has hung or crashed.

Comments
Not sure what is causing this. I think @thermokarst noticed this initially. It is definitely worse than before.

`Add Artifact` view shouldn't clear data on error.

Improvement Description
If a user tries to add a new artifact but runs into an error, all their typed out params are lost. A better behavior would be to not clear the values so they could just edit whichever they think is responsible for the error and try again.

Pass working directory location to UI to be used for dashboard title

This will probably have to be handled through the server using something like:

os.path.split(os.getcwd())[1]

and sending it along either in the initial connection hash, or on one of the first contacts between the two, as using Node's __dirname is just placing a '/' as the title of the page, and assuming they'll launch the server from different directories while the UI stays in place it makes more sense to come from the backend.

Revise GitHub application title/label

Right now a Google search for "qiime 2" yields these top hits:

screen shot 2017-06-22 at 7 56 59 am

The description for q2studio could stand to be updated with a more accurate summary, or dropped altogether.

Create 'Cancel' button on job pages

In order to support backwards navigation in Electron, a cancel button would allow the user to travel back to the main page without having to execute the job.

`Source Format` and `Semantic Type` drop-downs have bug when empty

If the list of formats or types returned by QIIME 2 to the studio is empty, the drop down lists say

FORMAT
FORMAT
FORMAT
FORMAT
... etc

... or ....

TYPE
TYPE
TYPE
TYPE
... etc

... respectively.

Instead they should just be empty, and maybe default to a value such as N/A, None, or NULL.

jobs never complete if studio has an internal error

When the studio encounters an internal error (on the Python side) while processing a job, the job status pane keeps the job as "active" indefinitely. It'd be great to handle this sort of issue (if feasible) on the client side so that it can be reported to users, because it isn't clear right now that the server errored (I thought I just had a long-running job). This is analogous to an internal server error (status code 500) being reported to website users.

Here's some example output for the specific issue I ran into (which I'm about to fix, but it may help illustrate where this could be handled):

[1] API: 127.0.0.1 - - [2016-08-31 12:44:50] "OPTIONS /api/jobs/5834205a-ebf2-45e2-9f3c-af2c3be6bfe9 HTTP/1.1" 200 330 0.001631
[1] API: 127.0.0.1 - - [2016-08-31 12:44:50] "GET /api/jobs/5834205a-ebf2-45e2-9f3c-af2c3be6bfe9 HTTP/1.1" 200 3682 0.002653
[1] API (error): ERROR:concurrent.futures:exception calling callback for <Future at 0x11127d1d0 state=finished returned Results>
[1] Traceback (most recent call last):
[1]   File "/Users/jairideout/miniconda3/envs/qiime2/lib/python3.5/concurrent/futures/_base.py", line 297, in _invoke_callbacks
[1]     callback(self)
[1]   File "/Users/jairideout/dev/qiime2/qiime-studio/qiime_studio/api/jobs.py", line 153, in callback
[1]     result.save(path)
[1] AttributeError: 'Results' object has no attribute 'save'
[1] API: 127.0.0.1 - - [2016-08-31 12:44:51] "GET /api/jobs/5834205a-ebf2-45e2-9f3c-af2c3be6bfe9 HTTP/1.1" 200 3682 0.001878
[1] API: 127.0.0.1 - - [2016-08-31 12:44:52] "GET /api/jobs/5834205a-ebf2-45e2-9f3c-af2c3be6bfe9 HTTP/1.1" 200 3682 0.001785
[1] API: 127.0.0.1 - - [2016-08-31 12:44:53] "GET /api/jobs/5834205a-ebf2-45e2-9f3c-af2c3be6bfe9 HTTP/1.1" 200 3682 0.001880

Header text is huge.

Actions with long descriptions can take up a majority of the page just with the heading. Possibly break them apart into two pieces, with the description being small.

Run a job

We need to attach Go to an Executor in the QIIME SDK so that work can be done by the interface.

This will need to be non-blocking, so we can either get the WSGI server to spawn a new flask process for each request OR, set up a non-blocking process call that we can poll periodically OR, we could create something like SSE to actually push the notification to the interface.

electron-packager errors

Steps to Reproduce Behavior
@ebolyen I used the electron-packager to create an executable for q2studio.

I did this by running the command electron-packager . --overwrite --platform=linux --arch=x64 --icon=icons/qiime2_logo.png --prune=true --out=release-builds

This successfully created an executable of the application and when I run the executable named q2studio by running ./q2studio the program boots properly. However, whenever I go to the executable file via the file manager and click on the q2studio executable it gives me an error:

Screenshots
error_message

Comments
I am not sure when you click on a file it is opened differently than when it is run in the shell or not.

I added "main": "build/main.js" to the package.json file for the electron-packager. Maybe I did this incorrectly.

Create Actions

  • NEW_ARTIFACT
  • EXPECTING_ARTIFACT
  • DELETE_ARTIFACT
  • REFRESH_ARTIFACTS
  • LOAD_PLUGINS
  • LOAD_WORKFLOWS
  • CREATE_JOB
  • START_JOB

Add Metadata viewing capability

Current Behavior
Currently Metadata shows just as the filename, with no other functionality (link to view the data, etc).

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.