Interactive client tools and galaxy ProTo 2.0 redux - Empowering researchers to implement a GUI alongside methodology by using Galaxy as an IDE
Creators: name: Gundersen, Sveinung
name: Johansen, Morten
Publisher: name: F1000 Research Limited
Year: 2024

description: The Galaxy platform is one of a select few successful attempts at creating graphical user interfaces (GUI) for analyses within bioinformatics. Still, the additional cost for researchers to create GUIs for their methodological contributions or software tools is often found to be too high, as also witnessed in a recent Twitter discussion that received some attention. One unspoken premise for the discussion on the cost/benefit of developing GUIs is this: one will always first develop a tool for command line or programmatic use, and then, if popular, one might start to consider implementing a GUI. Contrary to this premise, we have years of experience within a research environment that tells us there is great benefit (and also some pitfalls) to be found by switching this order and instead start directly on developing tools and methodologies with GUIs. Moreover, we have found Galaxy to be an excellent platform for prototypical, GUI-first development of tools.<br>
<br>
In the Galaxy Community Conferences (GCC) in 2015 and 2016 we presented Galaxy ProTo v1 which demonstrated a novel approach to tool development in Galaxy. By replacing the XML middle layer with a template-based API in Python, we provided researchers, master students and other tool developers with a platform for on-the-fly development of highly dynamic web tools using pure Python. The GUI contents were defined by passing appropriately structured data to the GUI-generating templates in Galaxy ProTo. Based on data structures like strings, lists, dicts, and lists of lists, the GUI templates would automatically and immediately generate corresponding user interface elements: text boxes, drop-down lists, multiple selection list boxes, and tables, respectively. By keeping GUI development simple and intuitive and without the overhead of mastering the details of traditional Galaxy tool development, ProTo v1 tools were ideal for prototyping novel functionality as demonstrators to supervisors or providing early access for research collaborators to test out "avant garde" functionality,. To this end, vanilla Galaxy also provides powerful sharing features, the automatic provenance of Galaxy histories, as well as the rerun and  bug reporting functionalities, which can all be powerfully used as part of a development cycle focused on immediate delivery to end users (which might include yourself). <br>
<br>
Unfortunately, Galaxy ProTo v1 was only available as an unofficial fork of the Galaxy code base and the functionality was never offered as part of a vanilla Galaxy installation. After lying dormant for a few years, we have now resurrected the idea and code base but replaced the technological underpinnings to allow for distribution and use with vanilla Galaxy installations. Galaxy ProTo v2 runs as a web server in a Docker (or Podman) container as a separate, long-running Galaxy Interactive Tools job that also connects to the Galaxy API. Through a newly proposed tool type, Interactive Client Tools, other tools can connect to this dockerized web server, which then generates the dynamic GUI content of Galaxy ProTo , displayed within the middle panel of Galaxy. From the GUI, ProTo jobs can be submitted for execution in Galaxy in the same way from standard tools. Furthermore, with the use of file synchronization software as a continuous deployment solution, we can once again provide on-the-fly development of highly dynamic prototyping tools, now in vanilla Galaxy.<br>
<br>
We will present an early technological demo of Galaxy ProTo v2 in order to receive community feedback on the functionality and raise interest from core developers in the Galaxy Projects to help integrate a few generally useful additions to the Galaxy code base that is needed to make Galaxy ProTo v2 work on a vanilla Galaxy installation.