galaxyproject / tools-iuc

Tool Shed repositories maintained by the Intergalactic Utilities Commission
https://galaxyproject.org/iuc
MIT License
161 stars 417 forks source link

Hard-coded database source for GTDB data manager #5030

Open neoformit opened 1 year ago

neoformit commented 1 year ago

The DB URL field should might be better as a select field, with hard-coded values. That way admins will easily be able to select the appropriate version to download, and we can hard-code the correct DB ID into the GTDB-Tk tool wrapper so that users don't need to figure out which DB is appropriate for the current tool version (I picture lots of failed jobs as this is not obvious). Something like:

Select:
  - R207_v2: matches GTDB-Tk v2.1.0+
  - R207: matches GTDB-Tk v2.0.0
  - R202: matches GTDB-Tk v1.5.0 - v1.7.0

If the tools need to match the version we need to have the version as part of the tool data table isn't it? But its not at the moment. How should a tool know which version is the correct one?

Still figuring that out. Ok, let's assume the GTDB data manager choices are hard-coded, so we know the correct DB has an ID of R202.

Then for the current GTDB-Tk tool we could have something like:

<options from_data_table="gtdbtk_database">
  <validator type="no_options" message="No locally cached GTDB-Tk database is available"/>
  <validator type="expression" message="GTDB R202 is required for this version of the GTDB-Tk tool. Please request support if this version is unavailable">value == "R202"</validator>
</options>

Originally posted by @neoformit in https://github.com/galaxyproject/tools-iuc/issues/5025#issuecomment-1360513051

I'm happy to go ahead and make these changes to the manager/tool - I think it will make for a much better experience for admins and end-users.

bernt-matthias commented 6 months ago

low tech fix: link https://ecogenomics.github.io/GTDBTk/installing/index.html#gtdb-tk-reference-data in the parameter's help

on the long run create a new data table with a numeric version column that we can use to select