Skip to main content

Python workflow framework

Project description

Introduction

**GOAL: generate, from a YAML description file, workflows for Pegasus, nextflow or Snakemake. **

Existing WMS (Workflow management systems) generate specific learning curves for bioinformaticians which will also engage strategic choices of development[^1].

hpc_runner offers to directly use bash script bricks in a declarative format to form a processing pipeline, drawing inspiration from the syntax and logic of the .gitlab-ci file, used to run CI/CD pipeline on GitLab.

The tool is meant to be simple: there is no conversion from bash to another language. Script bricks can be directly added simplifying the development and the sharing of workflows.

Installation

Requirements:

  • Python 3.8 or above.
  • graphviz package, with dot tool.

Create a Python virtual environment and install the hpc_runner package from this repository :

python -m venv venv
pip install 'hpc_runner @ git+ssh://git@gitlab.cnrgh.fr/lbi/hpc_runner.git'

Running

Once installed, you can run hpc_runner on the provided example to check that it runs correctly:

cd examples/prepare_gisaid
hpc_runner --hpc-config prepare_gisaid.yml

In this example, hpc_runner uses the default backend. You can also define a custom backend configuration file and use it with the --hpc-backend option as follows :

hpc_runner --hpc-backend BACKEND_PATH --hpc-config myappconfig.yml

See the official Documentation for detailed information.

For developers

You may create a conda environment like this:

conda create -n hpc python=3.8
conda activate hpc
python3 -m pip install .[dev]

Building hpc_runner

The following commands will build the package in an isolated environment, generating a source-distribution and wheel in the directory dist/.

pip install build
python -m build

Available scripts :

  • make deps : install development dependencies of the hpc_runner package,
  • make check : run checks on the source code (linter, type checker, ...),
  • make build : build the package in an isolated environment, generating a source-distribution and wheel in the directory dist/,
  • make install : install the package inside a virtual environment,
  • make test : run the tests against the package, and generate a coverage report in htmlcov/,
  • make uninstall : uninstall the package from the virtual environment,
  • make clean : delete all files and directories created by the other targets,
  • make docs : generate an HTML documentation in docs/build/.

[^1]: Evaluating Workflow Management Systems: A Bioinformatics Use Case

Project details


Download files

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

Source Distribution

hpcwizard-0.1.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hpcwizard-0.1.0-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file hpcwizard-0.1.0.tar.gz.

File metadata

  • Download URL: hpcwizard-0.1.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.3 Linux/6.14.6-arch1-1

File hashes

Hashes for hpcwizard-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0884d583dfc5a1f4e1afaaac80b86fcc6eba5d5f936e0d27595da8f4c5050575
MD5 37534c5f06ad22b16fed1f9af50f7b81
BLAKE2b-256 b1a1c2401a57eb7f4b52ddf4d98647c124f4cd3df582edd50ea563ebdbef9779

See more details on using hashes here.

File details

Details for the file hpcwizard-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: hpcwizard-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.3 Linux/6.14.6-arch1-1

File hashes

Hashes for hpcwizard-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b2dce962cefc18a842bd08180d6f37d73e87d943bbf3b03ac8c0bdf2ca1a34c
MD5 ee9cfe8d9e9d2618ee7fb48670d1cd12
BLAKE2b-256 519c26845db8b974dacf9c791c469901058f65d35e133fa4d79979bd5ef45597

See more details on using hashes here.

Supported by

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