Slivka and Slivka-bio: a lightweight, unopinionated framework for executables as web services, and its application to bioinformatics
Creators: name: Warowny, Mateusz
name: MacGowan, Stuart
name: Barton, Geoff
name: Procter, Jim
Publisher: name: F1000 Research Limited
Year: 2021

description: <b>Primary Author and Developer</b>: Mateusz Warowny<br> <b>Project Website</b>: https://www.compbio.dundee.ac.uk/slivka<br> <b>Source Code: </b>https://github.com/bartongroup/slivka-bio<br> <b>License</b>: Apache 2<br> <br> Command line executable tools are fundamental to computational biology. Since the dawn of HTTP, bioinformaticians have created web services that allow public access to tools too complex to install, or too expensive in compute or data requirements. Unlike the command line tools they ‘wrap’, however, most bioinformatics web services stacks are either sophisticated web applications or bespoke systems that were not designed for re-use. This may seem surprising, but most software engineers know too well the story of how the seemingly straightforward task of spawning command line programs and serving their results can turn into a major middleware project.<br> Slivka is a python 3 package based on Flask developed to fill a specific niche: exposure of server-side executables as RESTful JSON services that are well described, easily accessible, and easy to maintain. It provides endpoints that enable upload of data, discovery of available services, submission and validation of input data and parameters, monitoring, and results retrieval. Data transfer is decoupled from service execution, and outputs of one service can be referenced as input to another, avoiding unnecessary downloads. A loosely coupled, extensible architecture enables reuse of existing middleware components such as workflow orchestration engines and schedulers, and support is already provided for local execution and submission via Altair Grid Engine.<br> Slivka-bio is a Slivka application packaged with conda that provides access to a range of bioinformatics tools as web services. It has been developed to replace JABAWS (Troshin et al. 2011, 2018), a Java Web Services based system, and provides many of the same features. Like JABAWS, installation of Slivka-bio via Conda provides a ‘nearly’ ready-to-start system; complete with service definitions and the third-party biological sequence analysis tools available as Conda packages. Execution limits allow rejection of jobs deemed too large for the server, and input data and parameters are validated with the help of BioPython, demonstrating how slivka allows easy customisation. The slivka-client package provides a python library and command line tool (slivka-cli) to access Slivka’s services. A java client is currently in development that will provide access to slivka-bio services from Jalview version 2.12 (available from www.jalview.org).<br> See https://www.compbio.dundee.ac.uk/slivka for documentation, tutorials, and to access the public Sliva-bio server. Slivka &amp; Slivka-bio are developed with funds from the UKRI’s Biotechnology and Biological Sciences Research Council (Grant BB/R014752/1) and the Wellcome Trust (218259Z/19/Z).<br> <br> <b>References </b><br> Troshin, Procter and Barton, (2011) <i>Bioinf. </i>27(14) 2001<br> Troshin, Procter, Sherstnev, Barton, Madeira and Barton. (2018) Bioinf. 34, (11) 1939