DeBasher

View the Project on GitHub daormar/debasher

DeBasher

Introduction

DeBasher is a software package implementing a flow-based programming extension for Bash. In the flow-based programming paradigm, networks of black box processes with well defined data exchange connections are executed. DeBasher is characterized by a strong orientation towards the definition of software components or modules.

DeBasher can be used to execute general programs. However, DeBasher is particularly appropriate for the execution of pipelines, also called workflows. Workflow execution is important in different fields. One particular example would be the field of Bioinformatics.

The DeBasher software package was created and is currently maintained by Daniel Ortiz-Martínez. Daniel is an experienced machine learning researcher and also holds an MSc degree in Bioinformatics.

Features

The package incorporates the following features:

Distribution Details

DeBasher has been coded using Bash shell-scripting and Python. DeBasher is known to compile on Unix-like and Windows (using Cygwin) systems. See the "Documentation and Support" section of these instructions if you experience problems during compilation.

It is released under the GNU Lesser General Public License (LGPL).

Installation

Basic Installation Procedure

To install DeBasher, first you need to install the autotools (autoconf, autoconf-archive, automake and libtool packages in Ubuntu). DeBasher requires Bash 4.0 or above as well as Python 3.x to work. If you are planning to use DeBasher on a Windows platform, you also need to install the Cygwin environment. Alternatively, the tool can also be installed on Mac OS X systems using MacPorts. Finally, the Graphviz package is also required so as to generate graphic information about programs.

Assuming Ubuntu is being used, the required packages can be installed as follows:

 $ sudo apt install autoconf autoconf-archive automake libtool graphviz

On the other hand, some of the functionality incorporated by DeBasher requires the previous installation of third-party software (see below).

Once the autotools are available (as well as other required software such as Cygwin or MacPorts), you can proceed with the installation of the tool by following the next sequence of steps:

  1. Obtain the package using git:

    $ git clone https://github.com/daormar/debasher.git
    

    Or download it in a zip file

  2. cd to the directory containing the package's source code and type ./reconf.

  3. Type ./configure to configure the package.

  4. Type make to compile the package.

  5. Type make install to install the programs and any data files and documentation.

  6. You can remove the program binaries and object files from the source code directory by typing make clean.

By default the files are installed under the /usr/local directory (or similar, depending on the OS you use); however, since Step 5 requires root privileges, another directory can be specified during Step 3 by typing:

 $ configure --prefix=<absolute-installation-path>

For example, if user1 wants to install the DeBasher package in the directory /home/user1/debasher, the sequence of commands to execute should be the following:

 $ ./reconf
 $ configure --prefix=/home/user1/debasher
 $ make
 $ make install

The installation directory can be the same directory where the DeBasher package was decompressed.

Third Party Software

Slurm

DeBasher can be configured to use Slurm as a workload scheduler. Slurm is particularly indicated to execute large pipelines or to execute pipelines in high performance computing environments.

Conda

DeBasher provides support for automated installation of Conda packages. Such packages are organized in environments and (optionally) used within DeBasher software modules.

Docker

DeBasher also provides support for Docker containers.

Current Status

The DeBasher package is under development. Below there is a list of features that will be incorporated in a near future:

Sample Projects Using DeBasher

Documentation and Support

Project documentation is being developed. Such documentation includes:

If you need additional help, you can: