Figure 2. Pline interface for the CodeML plugin, rendered
inside the Wasabi interface window. The input files (marked with the
paperclip icon) have been automatically supplied by the Wasabi
environment. Info icons and underlined text show relevant tooltips on
mouseover.
Example pipeline
The “Add a step” button at the bottom of the Pline interface (Figure
2) allows users to quickly build a pipeline of commands by picking
programs from the list of imported plugins. The plugin interfaces are
drawn as a stack of collapsible sections, numbered by the order of
execution. When all the inputs have been filled as needed, the resulting
pipeline can be stored in a JSON file with the “Import/Export” button.
The button also allows for restoring pipelines from existing JSON files
to be rerun (e.g. with different input files), providing a convenient
system for reusable and distributable graphical pipelines for
command-line programs.
Pline pipelines with pre-filled inputs can be published in a similar
manner to plugins as importable JSON files or standalone Pline packages
in a public repository. For example, the repository on the Pline website
includes a common analysis pipeline that maps short sequencing reads to
a reference genome. It consists of four steps, starting with BWA-MEM (Li
and Durbin, 2009) for mapping reads, followed by a series of Samtools
commands (Li et al. , 2009) for converting, sorting and indexing
the sequencing reads pileup (see Figure 3). The downloadable plugin
package includes all the files needed for standalone execution,
including JSON descriptions of the pipeline and plugins, the Pline
interface generator and example input sequence data. Launching the
server script (Pline_server.py) will subsequently open a web browser
window with the graphical pipeline interface. Each of the pipeline
sections can be expanded with a mouse click to examine and modify the
pre-filled inputs as needed. For example, the merged sections for the
first two steps indicate that these programs are launched as a piped
command, where the output from the first program (BWA-MEM ) is
directly streamed as input for the second one (Samtools view ). By
changing the file input selection in the Samtools view interface
from “pipe” to “standard output”, the commands will be separated and
the intermediate output file will be instead written to disk. After the
included example files have been dragged to their respective filedrop
areas in the BWA-MEM interface, the pipeline can be run.
Although the web page container in the example pipeline package includes
a minimal interface for displaying the status and the results of the
pipeline after it has been launched, this functionality is outside the
scope of the Pline interface generator. Instead, Pline offers a
framework for web developers and scientists to integrate graphical
interfaces for command-line programs to websites with very low effort,
especially when the needed plugin descriptions are already available.
However, the example code for the post-launch interface in the plugin
package and Wasabi are open-source and can be used as-is or modified for
custom integration. When Pline plugin is used as a standalone interface
in desktop application form, the results retrieval interface is not
needed as the files are directly accessible in the work directories
specified by the Pline server configuration file.