Coder Social home page Coder Social logo

biodepot / biodepot-workflow-builder Goto Github PK

View Code? Open in Web Editor NEW
64.0 64.0 20.0 129.19 MB

:computer: GUI for creating bioinformatics workflows from :whale: Docker containers:

License: Other

Python 82.06% Shell 2.82% CSS 0.25% JavaScript 9.76% HTML 0.73% Makefile 0.30% Roff 0.10% C 0.31% Batchfile 0.28% C++ 0.02% NSIS 0.85% Jupyter Notebook 1.06% Dockerfile 0.54% Perl 0.01% R 0.02% Cython 0.89%

biodepot-workflow-builder's People

Contributors

dependabot[bot] avatar jayantkeswani avatar jmhoo avatar kayeeyeung avatar kristiyanto avatar lhhunghimself avatar rgschmitz1 avatar tslinardo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar

biodepot-workflow-builder's Issues

Parameters aren't labelled in created widget

After creating a widget with multiple required parameters and going to run the widget, the parameter textfields give no indication which belongs to which attribute, it just says "enter parameter". I just happen to know the order it's in in JSON, but it really should have perhaps some hint-text that says the parameter's name, "filename" or "timeout" or what have you.

image

Default user-defined widget values

There are a number of fields in the widget builder that are currently required that may have default values.
The icon field is required and has no default. There is a 'default' user icon in biodepot/User/icons.
Is a description required?
Is a value required for priority?

Default widget builder window size is too small

When the widget builder edit dialogue is opened, the window is very small/squished. It would be less confusing and more visually appealing if the window were more reasonably sized when it's first opened.

  • The current behavior may behave differently on different resolutions

UnknownWidgetDefinition: Widget disappears when adding a parameter with a dash "-" in the name

I added a new parameter to a widget that has a dash "-" in the Name:
widget name dash

When I saved the widget and restarted the workflow, this error message pops up:
Widget crash and no longer appears in workflow and sidebar after edit parameters (because I added -dash- n name parameter)

After clicking "OK", the workflow appears with everything loaded except the widget I just edited. The widget disappears in the workflow canvas and is no longer listed in the workflow's tool dock. The widget's folder is still present in the workflow widget directory, so it is just not appearing in the workflow.

The culprit seems to be adding a "-" somewhere in the Name of the new parameter.

Disable Scheduler options while widget is running

Have the options shown in the widget's Scheduler tab disabled when the widget is running. "Number of workers" option appears to be changeable and gives an error message if you change the number of workers during the widget's execution.

Dockerfiles not copied when creating new widget and using SaveAs

When creating a new widget from template, the Dockerfiles directory has it's contents copied to "/templates/Generic/Dockerfiles".
The Dockerfiles are never copied to the new directory when using the "Save As" button, but I'm not sure this is intentional (i.e. Dockerfiles should probably be copied to the new widget directory?)

TypeError when adding new widget from existing widget

Purpose

To build a new widget using an existing widget. This option is accessed using the Widget section of the toolbar.

Issue

Error in Widget Builder states a TypeError occurs, cannot create widget.

Procedure that leads to the error

f7805304803390e862a7d8cc029df761

A second type of error message appears when attempting a second time:
TypeError

Saving Workflow

I was running the base jupyter notebook widget on AWS ec2 m5.xlarge. It opens the jupyter notebook windows just fine and I stopped the widget from running. But when I tried to save the workflow that contains the jupyter notebook, it gives me this errors:

Exception:
shutil.Error: [('/widgets/Jupyter/jupyter_base/Dockerfiles/.mozilla/firefox/6v20d6ix.default-release/lock', '/tmp/tmp21bp4vc0/widgets/seurat/jupyter_base/Dockerfiles/.mozilla/firefox/6v20d6ix.default-release/lock', "[Errno 2] No such file or directory: '/widgets/Jupyter/jupyter_base/Dockerfiles/.mozilla/firefox/6v20d6ix.default-release/lock'")]
Module:
shutil:365
Widget Scheme:
/tmp/ows-h1fzkkx1.ows.xml
Version:
3.14.0.dev0+Unknown
Environment:
Python 3.6.9 on Linux 6.1.23-36.46.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Apr 10 22:43:13 UTC 2023 x86_64
Installed Packages:
AnyQt==0.2.0, Bottleneck==1.3.6, CommonMark==0.7.5, Jupyter==0.0.0, Miscellaneous==0.0.0, Orange3==3.14.0.dev0+unknown, RNA-seq==0.0.0, Scripting==0.0.0, SecretStorage==2.3.1, User==0.0.0, Utilities==0.0.0, asn1crypto==0.24.0, beautifulsoup4==4.11.2, certifi==2022.12.7, chardet==5.0.0, charset-normalizer==2.0.12, cryptography==2.1.4, docker==5.0.3, docutils==0.18.1, future==0.18.3, idna==2.6, importlib-metadata==4.8.3, joblib==1.1.1, jsonpickle==2.2.0, keyring==10.6.0, keyrings.alt==3.0, numpy==1.19.5, pip==20.0.1, pycrypto==2.6.1, pygobject==3.26.1, pyqtgraph==0.11.1, pysam==0.20.0, pyxdg==0.25, requests==2.27.1, scikit-learn==0.24.2, scipy==1.5.4, serverfiles==0.3.1, setuptools==59.6.0, six==1.11.0, soupsieve==2.3.2.post1, threadpoolctl==3.1.0, typing-extensions==4.1.1, urllib3==1.26.14, websocket-client==1.3.1, wheel==0.37.1, xlrd==2.0.1, zipp==3.6.0
Machine ID:
2485377892354
Stack Trace:
Traceback (most recent call last):
File "/orange3/Orange/canvas/application/canvasmain.py", line 1608, in save_scheme_as
iconFile=self.saveWorkflowSettings["icon"],
File "/coreutils/workflowTools.py", line 325, in exportWorkflow
shutil.copytree(widgetPath, uniquePath)
File "/usr/lib/python3.6/shutil.py", line 365, in copytree
raise Error(errors)
shutil.Error: [('/widgets/Jupyter/jupyter_base/Dockerfiles/.mozilla/firefox/6v20d6ix.default-release/lock', '/tmp/tmp21bp4vc0/widgets/seurat/jupyter_base/Dockerfiles/.mozilla/firefox/6v20d6ix.default-release/lock', "[Errno 2] No such file or directory: '/widgets/Jupyter/jupyter_base/Dockerfiles/.mozilla/firefox/6v20d6ix.default-release/lock'")]

Local Variables:
OrderedDict([('copy_function', <function copy2 at 0x7f9b3c6d0bf8>),
('dst', '/tmp/tmp21bp4vc0/widgets/seurat/jupyter_base'),
('dstname',
'/tmp/tmp21bp4vc0/widgets/seurat/jupyter_base/jupyter_base.states'),
('errors',
[('/widgets/Jupyter/jupyter_base/Dockerfiles/.mozilla/firefox/6v20d6ix.default-release/lock',
'/tmp/tmp21bp4vc0/widgets/seurat/jupyter_base/Dockerfiles/.mozilla/firefox/6v20d6ix.default-release/lock',
'[Errno 2] No such file or directory: '
"'/widgets/Jupyter/jupyter_base/Dockerfiles/.mozilla/firefox/6v20d6ix.default-release/lock'")]),
('ignore', None),
('ignore_dangling_symlinks', False),
('ignored_names', set()),
('name', 'jupyter_base.states'),
('names',
['Dockerfiles',
'icon',
'jupyter_base.attrs',
'jupyter_base.json',
'jupyter_base.py',
'jupyter_base.states']),
('src', '/widgets/Jupyter/jupyter_base'),
('srcname', '/widgets/Jupyter/jupyter_base/jupyter_base.states'),
('symlinks', False)])

Screen Shot 2023-04-21 at 8 58 12 PM

Edit Links cannot display all possible links in some cases

When multiple links are available in the "Edit Links" window there is no option to scroll through the available links, the only option is to make the Bwb window workspace larger by zooming out and maximizing the Edit Links window. There needs to be either a scroll bar added to accommodate multiple links or some mechanism to select links from another mechanism (drop down menu?)
image

Docker cannot run shell scripts with Windows crlf on Linux

The two shell scripts after building contain Windows style line endings, which on Linux gives the error /bin/sh: /startup.sh: /bin/bash^M: bad interpreter: No such file or directory. A .gitattributes file should be added to set text or shell scripts to eol=lf and all crlf need replaced.

Install packages like papermill

How to install and use new packages like papermill using the existing widgets?
I installed the package in the container using bash and it did work through terminal but the bash_util widget doesn't recognise it. How do I install papermill so that the bash_util supports that as well?

The tool is working only in one instance

The tool if run by the given docker run command in the documentation runs only one instance of the tool.That is if the tool is open in any machine or any one browser of the machine, the other machine or browser cannot open the tool and is encountered with an error 1000:Target Closed. Is there any work around to make it multi user?

Required and optional parameters are not passed to container when command field is left empty

Issue
I was testing a container with an entrypoint so I left the command field blank. Leaving the command field blank results in required and optional parameters not being passed along to the container.

To recreate
Create a widget with docker image (e.g. 'biodepot/igv' tag 'latest'), remove all input from command field. Input an optional or required parameter to pass to the container (e.g. bam file).

Widget builder file picker filepath unused

When registering a new widget, the user is prompted to navigate to and select the json and python file for the widget. The builder will throw an error if the json file is not in the json folder.

If the widget builder is already looking for biodepot/User/json/myfile.json, does it need to be prompted for by the file picker?
Otherwise, the widget builder should use the file path given by the file picker.

W: --force-yes is deprecated, use one of the options starting with --allow instead.

It looks like a couple of the Docker files include apt-get --force-yes.

&& apt-get install -y --force-yes --no-install-recommends supervisor \

&& apt-get install -y --force-yes --no-install-recommends supervisor \

This should maybe be replaced with one or more of the --allow flags according to the apt-get man page. We can use --allow-downgrades --allow-remove-essential --allow-change-held-packages instead.

Add option to enable/disable VNC disconnect

Bwb noVNC seems to disconnect randomly after some time has passed and cannot be reconnected, this isn't ideal for longer workflows (1 day plus). If there is an option to disable the idle disconnect feature it should be disabled by default and turned on via a flag if desired.

image

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.