Skip to main content

Management and development framework for bioinformatics pipelines

Project description

Simple and slim python framework to build, organize and standardize bioinformatics analyses.

The system is built around the python argparse module, to provide command line interface to run the configured analyses. The framework is heavily customizable and provides basic method to access to Environment Modules and implements various queuing systems such as moab/torque.

Install

From Pypi

pip install bio_pype

The development version from git

git clone https://bitbucket.org/ffavero/bio_pype
cd bio_pype
python setup.py test
python setup.py install

Installation with virtualenv in the `computerome HPC <https://computerome.dtu.dk>`__ system:

(Or in any system where virtualenv is not installed at system level)

mkdir ~/venv_files

# Download virtualenv files (not installed in the python version used in computerome)
curl -L -o ~/venv_files/setuptools-20.2.2-py2.py3-none-any.whl https://github.com/pypa/virtualenv/raw/develop/virtualenv_support/setuptools-20.2.2-py2.py3-none-any.whl
curl -L -o ~/venv_files/pip-8.1.0-py2.py3-none-any.whl https://github.com/pypa/virtualenv/raw/develop/virtualenv_support/pip-8.1.0-py2.py3-none-any.whl
curl -L -o ~/venv_files/virtualenv.py https://github.com/pypa/virtualenv/raw/develop/virtualenv.py

# Create a virtual environment
python ~/venv_files/virtualenv.py --extra-search-dir=~/venv_files ~/venv_bio_pype
# Activate the environment
source ~/venv_bio_pype/bin/activate

# Install bio_pype as instructed above

# The pype command line utility will be available upon the "activation" of the environment or by specifying the full path, in this case:

# ~/venv_bio_pype/bin/pype

# To deactivate the virtual env:
deactivate

Basic usage

Access first level modules:

$ pype
usage: pype [-p PROFILE] {pipelines,profiles,repos,snippets} ...

Slim and simple framework to ease the managements of data, tools and pipelines in the computerome HPC

positional arguments:
    pipelines       Workflows built by assembling pipelines and snippets
    profiles        Set of databases softwares and meta information
    repos           Management of pype modules
    snippets        Single tasks implementations

optional arguments:
  -p PROFILE, --profile PROFILE
                    Select the profile. This will define things like
                    databases, reference genomes paths,specific version of
                    programs to loads and other similar configurations.
                    Default: default

This is version 0.9.0 - Francesco Favero - 15 May 2017

Install Repos:

By default the repository of modules is empty.

To install a desired repository, list the available repository:

$ pype repos list -a

Install a selected repository:

$ pype repos install -f sequenza

More Details

It is possible to pass local modules for snippets and profiles via environment variables, An example with the package test modules:

$ PYPE_SNIPPETS=test/data/snippets pype snippets
error: too few arguments
usage: pype snippets {reverse_fa,complement_fa,lower_fa,test} ...

positional arguments:
  {reverse_fa,complement_fa,lower_fa,test}
    reverse_fa          reverse a fasta sequence
    complement_fa       lower case a fasta sequence
    lower_fa            lower case a fasta sequence
    test                test_snippets

Snippets

The snippets are python modules that perform a given task:

$ PYPE_SNIPPETS=test/data/snippets pype snippets test
error: argument --test is required
usage: pype snippets test --test TEST [-o OPT]

optional arguments:
  --test TEST  Test metavar
  -o OPT       test option
$ PYPE_SNIPPETS=test/data/snippets pype snippets test --test World
Hello World
$ PYPE_SNIPPETS=test/data/snippets pype snippets test --test mate -o Cheers
Cheers mate

Pipeline:

The pipelines are yaml files tbat group any snippets or other pipelines, with the desired dependency order.

$ PYPE_SNIPPETS=test/data/snippets PYPE_PIPELINES=test/data/pipelines pype pipelines
error: too few arguments
usage: pype pipelines [--queue {echo,none}] {rev_compl_low_fa} ...

positional arguments:
  {rev_compl_low_fa}
    rev_compl_low_fa   Reverse Complement Lower case a fasta

optional arguments:
  --queue {msub,echo,none}
                        Select the queuing system to run the pipeline
  --log LOG             Path used to write the pipeline logs. Default working
                        directory.

The arguments for a pipeline are parsed on the fly from a YAML file, which defines the tools and the flow of the execution:

info:
   description: Reverse Complement Lower case a fasta
   date:        06/07/2016
items:
  - name: lower_fa
    type: snippet
    arguments:
      -i: '%(complement_fa)s'
      -o: '%(output)s'
    dependencies:
      items:
        - name: complement_fa
          type: snippet
          arguments:
            -i: '%(reverse_fa)s'
            -o: '%(complement_fa)s'
          dependencies:
            items:
              - name: reverse_fa
                type: snippet
                arguments:
                  -i: '%(input_fa)s'
                  -o: '%(reverse_fa)s'

resulting argparse interface:

$ PYPE_SNIPPETS=test/data/snippets PYPE_PIPELINES=test/data/pipelines pype pipelines rev_compl_low_fa
error: argument --complement_fa is required
usage: pype pipelines rev_compl_low_fa --complement_fa COMPLEMENT_FA --output
                                       OUTPUT --reverse_fa REVERSE_FA
                                       --input_fa INPUT_FA

optional arguments:
  --complement_fa COMPLEMENT_FA
                        complement_fa type: str
  --output OUTPUT       output type: str
  --reverse_fa REVERSE_FA
                        reverse_fa type: str
  --input_fa INPUT_FA   input_fa type: str

More details on read the docs (slowly documenting the various features/changes).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bio_pype-1.0.7.tar.gz (21.3 kB view details)

Uploaded Source

Built Distributions

bio_pype-1.0.7-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

bio_pype-1.0.7-py2-none-any.whl (26.6 kB view details)

Uploaded Python 2

File details

Details for the file bio_pype-1.0.7.tar.gz.

File metadata

  • Download URL: bio_pype-1.0.7.tar.gz
  • Upload date:
  • Size: 21.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/2.7.10

File hashes

Hashes for bio_pype-1.0.7.tar.gz
Algorithm Hash digest
SHA256 3cda015b3f1d240e682a72544434e7270787941d92424ec8a6256d84ea7a17e4
MD5 e5f6f3a44cb4d67c74b6be41e9d72bf2
BLAKE2b-256 b71c080d0d19a397d271609f6d39174c25d8f8c03643a88899bea96d6d6d152f

See more details on using hashes here.

File details

Details for the file bio_pype-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: bio_pype-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/2.7.10

File hashes

Hashes for bio_pype-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 5953254d81d34d9becd822f1fac3c5d670253a7b5f79cf645a92b891a1a3b3e6
MD5 2c5ebdd295fe419152514fe690c455d6
BLAKE2b-256 2647312ffea373a036b829c41b3869b54f57b58913553e259e49d9aa3fde286c

See more details on using hashes here.

File details

Details for the file bio_pype-1.0.7-py2-none-any.whl.

File metadata

  • Download URL: bio_pype-1.0.7-py2-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/2.7.10

File hashes

Hashes for bio_pype-1.0.7-py2-none-any.whl
Algorithm Hash digest
SHA256 e761b699d2b11cca891358eedc03f826e58b72ab56514a5788e299bd0ae90977
MD5 825456d3cbbed42721dc7a12a5acd659
BLAKE2b-256 f55ed29c63dbddefdd51bc5eba1b85404c6110d0f90faffcfcb34f72764710b1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page