biodepot / biodepot-workflow-builder Goto Github PK
View Code? Open in Web Editor NEW:computer: GUI for creating bioinformatics workflows from :whale: Docker containers:
License: Other
:computer: GUI for creating bioinformatics workflows from :whale: Docker containers:
License: Other
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.
When save and reload a workflow(ows file), the 'path' property was lost
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?
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).
I added a new parameter to a widget that has a dash "-" in the Name:
When I saved the widget and restarted the workflow, this error message pops up:
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.
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.
This happened after I rebuilt the container with new code as well. From the discussion last week, it sounds like a quicktime issue, with how they size windows.
It looks like a couple of the Docker files include apt-get --force-yes
.
BioDepot-workflow-builder/Dockerfile
Line 9 in 995d8c6
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.
There should be one box to enable the optional argument and another to set as true/false.
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.
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.
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?)
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.
To build a new widget using an existing widget. This option is accessed using the Widget section of the toolbar.
Error in Widget Builder states a TypeError occurs, cannot create widget.
A second type of error message appears when attempting a second time:
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?
Pull request #51 tries to address some security issues with leaving VPC open, this can be reworked to allow users to enable/disable passwords or use their own passwords.
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?)
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
?
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)])
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.