Table of Contents
Fetching ...

A Unified, Cross-Platform Framework for Automatic GUI and Plugin Generation in Structural Bioinformatics and Beyond

Sikao Guo, Edoardo Sarti, Frédéric Cazals

TL;DR

The paper tackles the challenge of converting CLI tools into accessible, cross‑platform GUIs by introducing a unified MVP‑based workflow and code‑generation toolkit. It starts from a single formal specification per application and uses platform‑specific generators to produce GUI plugins for desktop visualization (VMD, PyMol) and web environments (Panel), while maintaining a clean separation of concerns via the MVP pattern. A three‑phase process (design, formal specification, code generation) with a JSON GUI specification ensures consistency, reduces duplicated effort, and accelerates maintenance across targets. The approach is demonstrated with structural bioinformatics plugins within the Structural Bioinformatics Library and a geometry‑processing example, underscoring its versatility across domains and visualization back‑ends. The framework promises substantial practical impact by lowering development effort, enabling reproducible, multi‑platform scientific GUIs, and paving the way for AI‑assisted and autonomous UI design in the future.

Abstract

We present a workflow and associated toolkit to automate the creation of graphical user interfaces (GUI) for executables run from command line interfaces (CLI). The workflow consists of three phases, namely (Step 1) the plugin design, (Step 2) the formal (platform independent) specification of the GUI, and (Step 3) the plugin code generation for the targeted platforms. Our architecture is aligned with the Model--View--Presenter (MVP) pattern: steps one and two build the Model and View descriptions, while step three implements the Presenter layer that binds inputs, invokes the CLI, and updates outputs. Once Step one has been (manually) completed, steps two and three are fully automated. The decoupled MVP design and platform-specific generator modules enable reuse of logic, portability across ecosystems, and significant reductions in engineering effort for complex interactive applications. We primarily use our workflow to generate GUI in structural bioinformatics for CLI executables from the Structural Bioinformatics Library (SBL), targeting three platforms, namely VMD, Pymol and Web servers. The workflow can be used as a guideline, while its implementation available in the package Plugin_manager from the SBL, see https://sbl.inria.fr/doc/Plugin_manager-user-manual.html.

A Unified, Cross-Platform Framework for Automatic GUI and Plugin Generation in Structural Bioinformatics and Beyond

TL;DR

The paper tackles the challenge of converting CLI tools into accessible, cross‑platform GUIs by introducing a unified MVP‑based workflow and code‑generation toolkit. It starts from a single formal specification per application and uses platform‑specific generators to produce GUI plugins for desktop visualization (VMD, PyMol) and web environments (Panel), while maintaining a clean separation of concerns via the MVP pattern. A three‑phase process (design, formal specification, code generation) with a JSON GUI specification ensures consistency, reduces duplicated effort, and accelerates maintenance across targets. The approach is demonstrated with structural bioinformatics plugins within the Structural Bioinformatics Library and a geometry‑processing example, underscoring its versatility across domains and visualization back‑ends. The framework promises substantial practical impact by lowering development effort, enabling reproducible, multi‑platform scientific GUIs, and paving the way for AI‑assisted and autonomous UI design in the future.

Abstract

We present a workflow and associated toolkit to automate the creation of graphical user interfaces (GUI) for executables run from command line interfaces (CLI). The workflow consists of three phases, namely (Step 1) the plugin design, (Step 2) the formal (platform independent) specification of the GUI, and (Step 3) the plugin code generation for the targeted platforms. Our architecture is aligned with the Model--View--Presenter (MVP) pattern: steps one and two build the Model and View descriptions, while step three implements the Presenter layer that binds inputs, invokes the CLI, and updates outputs. Once Step one has been (manually) completed, steps two and three are fully automated. The decoupled MVP design and platform-specific generator modules enable reuse of logic, portability across ecosystems, and significant reductions in engineering effort for complex interactive applications. We primarily use our workflow to generate GUI in structural bioinformatics for CLI executables from the Structural Bioinformatics Library (SBL), targeting three platforms, namely VMD, Pymol and Web servers. The workflow can be used as a guideline, while its implementation available in the package Plugin_manager from the SBL, see https://sbl.inria.fr/doc/Plugin_manager-user-manual.html.
Paper Structure (31 sections, 4 figures)

This paper contains 31 sections, 4 figures.

Figures (4)

  • Figure 1: GUI: generic architecture. A plugin consists of four main areas: (1) the Input area, (2) The output area used to display statistics and figures, (3) The 3D graphics area, and (4) The optional update area to re-run post-analysis and refresh outputs and/or the 3D view.
  • Figure 2: Plugin generation using one specification file per application and one code generator per targeted platform. For each application $A_i$, one provides a GUI specification $S_i$. Each targeted platform is handled by a dedicated code generator$C_j$: $C_j(A_i)$ generates the code of i-th application for the j-th platform. Platforms are supported by various rendering engines.
  • Figure 3: Plugin workflow generation with the three phases, and execution. Color conventions: light cyan: files prepared by the designer; light blue: files automatically generated; red: python modules provided in the package.(A) Design phase. Using a layout editor, the designer (i) arranges the relative positions and sizes of widgets for the Input, Output, and/or Update areas; (ii) selects the CLI options (flags and arguments) to expose in the Input area; and (iii) specifies post–analysis parameters to expose in the optional Update area, whose changes selectively refresh the Output area and/or the 3D display. (B) Generation of the formal specification. A formal specification of the layout for the Input and Output areas is automatically generated. (C) Plugin generation. The python code of plugins is automatically generated. (D) Execution. The statistics and graphical contents are generated, and the GUI updated via callbacks.
  • Figure 4: Plugin design illustrated for an application modeling the interface of a biomolecular complex. Plugins for the CLI executable sbl-intervor-ABW-atomic.exe from the SBL, see cazals2010modeling. An example of using the sbl-gui-generator.py to automatically create cross‑platform graphical user‑interface (GUI) plugins for command‑line applications. See also Fig. \ref{['fig:plugin-workflow']}.

Theorems & Definitions (2)

  • Example 1
  • Remark 1