Comments (2)
Thanks for the close review @bgruening! (And sorry for the delayed response, I was out last week.)
The [required] string can go away. If you do not use optional="true" everything is required and Galaxy will make sure the user knows about it.
[optional] should be removed
The [default: 1] can be removed, it is already encoded in the UI.
These were kind of workarounds for the Galaxy UI from a while ago: if you changed or deleted the argument, it wasn't clear what the default would have been, so adding it to the help text in a uniform way seemed best at the time. I'll take another look and figure out how better to deal with that. If there isn't some way of handling it, what would be the best way to get started with trying to add it to the Galaxy UI?
The title does not look nice.
I wasn't sure where the best place to put our types would be. So I opted for something that made visual sense for the form's hierarchy. This is a point where you definitely feel the framework-inside-a-framework problem. I could put this in the help instead, but I think it's equally as important as the input's label.
The __ might be confusing down the line. E.g. this will appear in Galaxy workflows etc and might be confusing for users that deal with it.
Yeah 100%, I was bummed when I realized these actually showed up in the workflows. Haven't come up with a great solution here as these aren't "real" parameters so to speak, and I was using the predictable structure to quickly flatten the resulting nested arguments. Open to suggestions!
Relevant code:
https://github.com/qiime2/q2galaxy/blob/master/q2galaxy/core/util.py#L157-L168
https://github.com/qiime2/q2galaxy/blob/master/q2galaxy/__main__.py#L111-L117
Should this not be a column parameter?
Generally speaking, it is, but this particular action must be giving us a type of Str
instead of MetadataColumn[Categorical | Numeric]
. When a plugin annotates the type correctly, we'll produce the following:
<conditional name="metadata">
<param name="type" type="select" label="metadata: MetadataColumn[Categorical]" help="[required] Categorical sample metadata column.">
<option value="tsv" selected="true">Metadata from TSV</option>
<option value="qza">Metadata from Artifact</option>
</param>
<when value="tsv">
<param name="source" type="data" format="tabular,qiime2.tabular" label="Metadata Source"/>
<param name="column" type="data_column" label="Column Name" data_ref="source" use_header_names="true">
<validator type="expression" message="The first column cannot be selected (they are IDs).">value != "1"</validator>
</param>
</when>
<when value="qza">
<param name="source" type="data" format="qza" label="Metadata Source"/>
<param name="column" type="text" label="Column Name">
<validator type="empty_field"/>
</param>
</when>
</conditional>
Note that there is a column
with type of text
, but that is only when the source is a QZA file. These may not strictly be tabular in nature, but have some transformation (defined by a QIIME 2 plugin) which can make it tabular. As we don't know the column names ahead of time, this looks a bit awkward. I had imagined potentially "pre-calculating" the columns and then trying to set the needed Galaxy Metadata attributes on the QIIME2Artifact datatype such that tool output actions could pick up some supplementary file and set the appropriate columns. But I must admit I got a bit lost trying to figure out how the data_column
actually picked up the column names, so abandoned it for now.
Hopefully having Galaxy as an interface will motivate some improvements on our end here (we probably need to make it more convenient to handle multiple columns from the same source on the command line before everyone gets board).
from q2galaxy.
@bgruening an additional problem is tool-ids, we generate bad ones it seems.
1st approach: qiime2.feature_table.filter_samples
But I found a thread somewhere saying periods should not be permitted, so I did the 2nd approach.
2nd approach: qiime2_feature-table_filter-samples
Everything worked until I tried to use the toolshed, and so I want to use this 3rd approach:
qiime2__feature_table__filter_samples
It's not super pretty, but it let's me back out the relevant pieces from the ID which came up often enough as a problem that I may need some kind of pattern here. Am I going to regret going this route?
from q2galaxy.
Related Issues (18)
- Config files and dynamic input params don't seem to cooperate HOT 8
- Add simple parameter handling
- Add QIIME 2 metadata handling
- Create <sections> for inputs, parameters, and collapse default/optional inputs/params HOT 1
- Add visualization plugin for .qzv files HOT 3
- QZA import/export inside Galaxy HOT 1
- Get rid of the zip file info from the uploader tool HOT 3
- Consider using docker-compose for stand-alone deployments HOT 4
- ToolShed deposit HOT 4
- Use DOI citation type when possible
- Extra text in tool version HOT 2
- qiime2_core__tools__import stacktrace from usegalaxy.eu HOT 21
- qiime deblur denoise-16S/denoise-other not working on usegalaxy.eu HOT 2
- No tools:unzip_collection, Flatten collection and Sort HOT 6
- Running on Apple Silicon M1 HOT 1
- Ensure that
- Ensure that hidden actions are rendered in q2galaxy HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from q2galaxy.