These tool dependencies are considered orphans
Hi all, I noticed today that there is a new yellow warning on the NCBI BLAST+ repository in the main Galaxy Tool Shed, http://toolshed.g2.bx.psu.edu/view/devteam/ncbi_blast_plus Quote:
The settings for name, version and type from a contained tool configuration file's requirement tag does not match the information for the following tool dependency definitions in the tool_dependencies.xml file, so these tool dependencies are considered orphans within this repository. * name: blast+, type: package, version: 2.2.26+
Is this complaining that none of the individual wrapper XML files reference the tool_dependencies.xml's package: <package name="blast+" version="2.2.26+"> Instead, the tool XML files just declare a simple binary dependency at the moment, e.g. <requirements> <requirement type="binary">blastp</requirement> </requirements> Although it seems like unnecessary bookkeeping to me, is this new yellow warning suggesting each tool's XML should reference the package somehow? If so, then the wiki needs updating as it only describes python-module and binary as requirement types: http://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax Thanks, Peter
Hi Peter, On Mar 19, 2013, at 7:44 AM, Peter Cock wrote:
Hi all,
I noticed today that there is a new yellow warning on the NCBI BLAST+ repository in the main Galaxy Tool Shed, http://toolshed.g2.bx.psu.edu/view/devteam/ncbi_blast_plus
Quote:
The settings for name, version and type from a contained tool configuration file's requirement tag does not match the information for the following tool dependency definitions in the tool_dependencies.xml file, so these tool dependencies are considered orphans within this repository. * name: blast+, type: package, version: 2.2.26+
Is this complaining that none of the individual wrapper XML files reference the tool_dependencies.xml's package:
<package name="blast+" version="2.2.26+">
Instead, the tool XML files just declare a simple binary dependency at the moment, e.g.
<requirements> <requirement type="binary">blastp</requirement> </requirements>
You are correct. A tool dependency definition is associated with a tool via the tool config's <requirement> tag set. The combination of name, version and type is used to associated a tool with a tool dependency. In this case, the name is "blast+", the version is "2.2.26+" and the type is "package".
Although it seems like unnecessary bookkeeping to me,
This bookkeeping is necessary in order to guarantee reproducibility. Associating a specific tool with a specific tool dependency via the combination of a name, version and type will always ensure that that specific tool version will always produce the same analyses. Galaxy itself has never guaranteed this kind of reproducibility because it has never required the combination of name, version and type for tool dependencies. The tool shed has always required this.
is this new yellow warning suggesting each tool's XML should reference the package somehow?
The information that is missing is the version in this case, and the type should be "package". The tool config's requirements tag set should be:
<requirements> <requirement type="package" version="2.2.26+">blastp</requirement> </requirements>
If so, then the wiki needs updating as it only describes python-module and binary as requirement types: http://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax
The above wiki is the wiki for Galaxy, and does not pertain to the tool shed. As mentioned above, Galaxy itself does allow for tool config <requirement> tags to not include version information where the tool shed does require this. The tool shed wiki that describes this is available at: http://wiki.galaxyproject.org/ToolShedToolFeatures#Automatic_third-party_too... Specifically, the following paragraphs: The xml root is the <tool_dependency> tag, which contains a <package> tag set for each required dependency. Each <package> tag set contains tag sets that define the installation process as well as an optional <readme> tag that can contain free text information about requirements for compiling the package. A very critical part of the information in the <package> tag is the combination of the name and version attributes. These values must match the values of the same attributes in the <requirements> tag set of at least one tool config file included in the repository in order for the tool dependency to be installed. For example the name and version information in the following <package> tag... <package name="freebayes" version="0.9.4_9696d0ce8a962f7bb61c4791be5ce44312b81cf8"> ...matches the first <requirement> tag below whose type attribute value is package. This tag set is included in the freebayes.xml tool config file in the repository. Again, if a match is not found between type, version and name, the tool dependency will not be properly defined for the repository, so it cannot be automatically installed. <requirements> <requirement type="package" version="0.9.4_9696d0ce8a962f7bb61c4791be5ce44312b81cf8">freebayes</requirement> <requirement type="package" version="0.1.18">samtools</requirement> </requirements>
Thanks,
Peter ___________________________________________________________ Please keep all replies on the list by using "reply all" in your mail client. To manage your subscriptions to this and other Galaxy lists, please use the interface at:
On Tue, Mar 19, 2013 at 1:15 PM, Greg Von Kuster <greg@bx.psu.edu> wrote:
Hi Peter,
You are correct. A tool dependency definition is associated with a tool via the tool config's <requirement> tag set. The combination of name, version and type is used to associated a tool with a tool dependency. In this case, the name is "blast+", the version is "2.2.26+" and the type is "package".
OK - with the rest of your email that is easily fixed then.
If so, then the wiki needs updating as it only describes python-module and binary as requirement types: http://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax
The above wiki is the wiki for Galaxy, and does not pertain to the tool shed. As mentioned above, Galaxy itself does allow for tool config <requirement> tags to not include version information where the tool shed does require this.
The tool shed wiki that describes this is available at:
http://wiki.galaxyproject.org/ToolShedToolFeatures#Automatic_third-party_too...
...
That is a lot clearer now, but this division of tool XML features between "Galaxy" and the "Tool Shed" is quite unclear to me (and I think the current divided documentation on this point is extremely unhelpful). Since the ToolConfigSyntax describes how to write a tool wrapper XML file, I think it needs to include the "package" type under the <requirement> notes (and link to that bit of the ToolShedToolFeatures page). Can you revise that, or should I try to edit the ToolConfigSyntax page accordingly? That should sort out this confusion :) Thanks, Peter
Hi Peter, Please feel free to edit the ToolConfigSyntax page if you get a chance. Unfortunately I have my hands full with just the tool shed wiki, and it is not possible for me to get time to keep the extensive Galaxy documentation current. Any help is much appreciated! Greg Von Kuster On Mar 19, 2013, at 9:30 AM, Peter Cock wrote:
On Tue, Mar 19, 2013 at 1:15 PM, Greg Von Kuster <greg@bx.psu.edu> wrote:
Hi Peter,
You are correct. A tool dependency definition is associated with a tool via the tool config's <requirement> tag set. The combination of name, version and type is used to associated a tool with a tool dependency. In this case, the name is "blast+", the version is "2.2.26+" and the type is "package".
OK - with the rest of your email that is easily fixed then.
If so, then the wiki needs updating as it only describes python-module and binary as requirement types: http://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax
The above wiki is the wiki for Galaxy, and does not pertain to the tool shed. As mentioned above, Galaxy itself does allow for tool config <requirement> tags to not include version information where the tool shed does require this.
The tool shed wiki that describes this is available at:
http://wiki.galaxyproject.org/ToolShedToolFeatures#Automatic_third-party_too...
...
That is a lot clearer now, but this division of tool XML features between "Galaxy" and the "Tool Shed" is quite unclear to me (and I think the current divided documentation on this point is extremely unhelpful). Since the ToolConfigSyntax describes how to write a tool wrapper XML file, I think it needs to include the "package" type under the <requirement> notes (and link to that bit of the ToolShedToolFeatures page). Can you revise that, or should I try to edit the ToolConfigSyntax page accordingly? That should sort out this confusion :)
Thanks,
Peter
On Tue, Mar 19, 2013 at 1:43 PM, Greg Von Kuster <greg@bx.psu.edu> wrote:
Hi Peter,
Please feel free to edit the ToolConfigSyntax page if you get a chance. Unfortunately I have my hands full with just the tool shed wiki, and it is not possible for me to get time to keep the extensive Galaxy documentation current. Any help is much appreciated!
Greg Von Kuster
Done - if anyone would like to check the revised section: http://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax#A.3Crequirement.3... If I run into any issues updating the BLAST+ wrappers to do this, I'll let you know. Cheers, Peter
participants (2)
-
Greg Von Kuster
-
Peter Cock