When Galaxy reads and updates the integrated_tool_panel.xml file, tools in multiple sections can be lost.
1) Install tool shed repository A into section A
<section id="A" name="A" version=""> <tool id="toolshed.g2.bx.psu.edu/repos/some-user/repo-A/tool-A/ 1.0.0" /> </section>
2) Install tool shed repository B into section B
<section id="A" name="A" version=""> <tool id="toolshed.g2.bx.psu.edu/repos/some-user/repo-A/tool-A/ 1.0.0" /> </section> <section id="B" name="B" version=""> <tool id="toolshed.g2.bx.psu.edu/repos/some-user/repo-B/tool-B/ 1.0.0" /> </section>
3) Edit integrated_tool_panel.xml to put a tool from repository B into section A
<section id="A" name="A" version=""> <tool id="toolshed.g2.bx.psu.edu/repos/some-user/repo-A/tool-A/ 1.0.0" /> <tool id="toolshed.g2.bx.psu.edu/repos/some-user/repo-B/tool-B/ 1.0.0" /> </section> <section id="B" name="B" version=""> <tool id="toolshed.g2.bx.psu.edu/repos/some-user/repo-B/tool-B/ 1.0.0" /> </section>
4) When starting, tool-B will appear in both sections of the tool panel. Upon restart, tool-B will only appear in section B.
This is due to a bug in the code which reads and re-writes the integrated_tool_panel.xml file. I've commited (96a2ab47b882) to galaxy-central a new version of lib/galaxy/tools/__init__.py which includes a workaround for this issue.
Instead of my workaround, I would suggest some combination of: a) adjusting init_tools() and called methods to get this right b) redesigning the code and/or data structure used to read and write integrated_tool_panel.xml
-rico
galaxy-dev@lists.galaxyproject.org