Skip to content

PerMedCoE/permedcoe

Repository files navigation

HPC/Exascale Centre of Excellence in Personalised Medicine

Base Building Block

This package provides the base for all Building Blocks (BBs) developed in the HPC/Exascale Centre of Excellence in Personalised Medicine (PerMedCoE) project.

Table of Contents

User instructions

Requirements

Installation

There are two ways to install this package (from Pypi and manually):

  • From Pypi:

    This package is publicly available in Pypi:

    pip install permedcoe

    or more specifically:

    python3 -m pip install permedcoe
  • From source code:

    This package provides an automatic installation script:

    ./install.sh

Command line

This package provides the permedcoe command:

$ permedcoe -h
usage: permedcoe [-h] [-d] [-l {debug,info,warning,error,critical}]
               {execute,x,template,t,deploy,d} ...

positional arguments:
  {execute,x,template,t,deploy,d}
    execute (x)         Execute a building block.
    template (t)        Shows an example of the requested template.
    deploy (d)          Download and deploy the requested workflow or building block.

options:
  -h, --help            show this help message and exit
  -d, --debug           Enable debug mode. Overrides log_level (default: False)
  -l {debug,info,warning,error,critical}, --log_level {debug,info,warning,error,critical}
                        Set logging level. (default: error)

Option execute:

  • It enables to execute single building blocks or applications:

    $ permedcoe execute -h
    usage: permedcoe execute [-h] {building_block,bb,application,app} ...
    
    positional arguments:
      {building_block,bb,application,app}
        building_block (bb)
                            Execute a building block.
        application (app)   Execute an application.
    
    optional arguments:
      -h, --help            show this help message and exit
    • In particular for building blocks:

      $ permedcoe execute building_block -h
      usage: permedcoe execute building_block [-h] name [parameters ...]
      
      positional arguments:
        name        Building Block to execute
        parameters  Building Block parameters (default: None)
      
      options:
        -h, --help  show this help message and exit

      Specifying the particular building block to execute (must be installed), provides more detailed information:

      $ permedcoe execute building_block MaBoSS_BB -h
      usage: permedcoe [-h] [-c CONFIG] [-d] [-l {debug,info,warning,error,critical}] [--tmpdir TMPDIR]
                   [--processes PROCESSES] [--gpus GPUS] [--memory MEMORY] [--mount_points MOUNT_POINTS]
                   {default,sensitivity} ...
      
        This building block uses MaBoSS to screen all the possible knockouts of a given Boolean model. It
        produces a candidate gene list formatted as a text file (single gene per row). More information on
        MaBoSS can be found in [Stoll G. et al. (2017)](https://academic.oup.com/bioinformatics/article-
        lookup/doi/10.1093/bioinformatics/btx123) and in the [MaBoSS GitHub
        repository](https://github.com/maboss-bkmc/MaBoSS-env-2.0).
      
        positional arguments:
          {default,sensitivity}
      
        options:
          -h, --help            show this help message and exit
          -c CONFIG, --config CONFIG
                                (CONFIG) Configuration file path
          -d, --debug           Enable Building Block debug mode. Overrides log_level
          -l {debug,info,warning,error,critical}, --log_level {debug,info,warning,error,critical}
                                Set logging level
          --tmpdir TMPDIR       Temp directory to be mounted in the container
          --processes PROCESSES
                                Number of processes for MPI executions
          --gpus GPUS           Requirements for GPU jobs
          --memory MEMORY       Memory requirement
          --mount_points MOUNT_POINTS
                                Comma separated alias:folder to be mounted in the container
      
    • In particular for building blocks:

      $ permedcoe execute application -h
      usage: permedcoe execute application [-h] [-w {none,pycompss,nextflow,snakemake}]
                                          [-f FLAGS [FLAGS ...]]
                                          name [parameters [parameters ...]]
      
      positional arguments:
        name                  Application to execute
        parameters            Application parameters (default: None)
      
      optional arguments:
        -h, --help            show this help message and exit
        -w {none,pycompss,nextflow,snakemake}, --workflow_manager {none,pycompss,nextflow,snakemake}
                              Workflow manager to use (default: none)
        -f FLAGS [FLAGS ...], --flags FLAGS [FLAGS ...]
                              Workflow manager flags (default: None)

Option template:

  • It available to create a skeleton of a building block or an application:

    $ permedcoe template -h
    usage: permedcoe template [-h] [-t {all,pycompss,nextflow,snakemake}]
                              {bb,building_block,app,application} name
    
    positional arguments:
      {bb,building_block,app,application}
                            Creates a Building Block or Application template.
      name                  Building Block or Application name.
    
    optional arguments:
      -h, --help            show this help message and exit
      -t {all,pycompss,nextflow,snakemake}, --type {all,pycompss,nextflow,snakemake}
                            Application type. (default: all)

Option deploy:

  • It available to deploy an existing Building Block or Workflow in a local machine (e.g. laptop):

    $ permedcoe deploy -h
    usage: permedcoe deploy [-h] {building_block,bb,workflow,wf} ...
    
    positional arguments:
      {building_block,bb,workflow,wf}
        building_block (bb)
                            A specific building block.
        workflow (wf)       A specific workflow.
    
    options:
      -h, --help            show this help message and exit

For the deployment in supercomputers, please contact PerMedCoE: https://permedcoe.eu/contact/.

Public API

The permedcoe package provides a set of public decorators, parameter type definition and functions to be used in the Building Block implementation.

  • Public decorators:

    from permedcoe import container
    from permedcoe import constraint
    from permedcoe import binary
    from permedcoe import mpi
    from permedcoe import task
  • Parameter type definition:

    from permedcoe import Type
    from permedcoe import FILE_IN
    from permedcoe import FILE_OUT
    from permedcoe import FILE_INOUT
    from permedcoe import DIRECTORY_IN
    from permedcoe import DIRECTORY_OUT
    from permedcoe import DIRECTORY_INOUT
    from permedcoe import StdIOStream
    from permedcoe import STDIN
    from permedcoe import STDOUT
    from permedcoe import STDERR
  • Functions:

    from permedcoe import get_environment
    from permedcoe import set_debug
    from permedcoe import invoker
  • Classes:

    from permedcoe import Arguments

Uninstall

Uninstall can be done as usual pip packages:

There are two ways to uninstall this package, that depends on the way that it was installed (from Pypi or using install.sh):

  • From Pypi:

    pip uninstall permedcoe

    or more specifically:

    python3 -m pip uninstall permedcoe
  • From manual installation (using install.sh):

    ./uninstall.sh

    And then the folder can be cleaned as well using the clean.sh script.

    ./clean.sh

Developer instructions

Building block

If you are willing to implement your Building Block (BB), check the following repositories, where you will find documentation, tutorials, and BB/application samples:

License

Apache 2.0

Contact

https://permedcoe.eu/contact/

This software has been developed for the PerMedCoE project, funded by the European Commission (EU H2020 951773).

Releases

No releases published

Packages

No packages published