Skip to main content

A workflow dendency graph compiler and automation enabler

Project description

bioblueprint

bioblueprint is a python library designed to enable workflow language-interchangeable dependency graph compilation and development automation. It operates by compiling workflows, their dependencies, Git diff between branches, and using the modified files to trace testing paths within the dependency graph.

NOTE: bioblueprint operates on local branches


Install

python3 -m pip install bioblueprint


Usage

Run bioblueprint after a development iteration or to automate testing, then edit the "DESCRIPTION" field in the IO TSVs. You can also run after PRs have been generated.

Please see the help menu for a comprehensive list of input options.

bioblueprint -i <REPO_BASE_DIR> -d <DEVELOPMENT_BRANCH>

DEVELOPMENT: -d is the dev branch; -s is main (default)

VALIDATION: -d is main; -s is the previous release tag

PULL REQUESTS: A blank pull request is generated by default, but append -pr # to pull and use an existing PR.


Outputs

An output directory bioblueprint_YYYYmmdd/ will be generated containing the following files:

<REPO>.pr.md

A populated pull request template with I/O modifications, WF modifications, and testing paths. If -pr is specified, the PR will be downloaded and relevant fields populated with I/O and testing information - existing testing data will be retained and unmodified if formatted as a checklist with exact workflow name matches that are the first entry following the markdown checkbox (links are permitted). This function is tailored for accounted repositories:

<REPO>_inputs.tsv & <REPO>_outputs.tsv

Updated inputs/outputs tables for Public Health Bioinformatics

testing/<WORKFLOW>.testing.json

A JSON formatted with testing parameters (designed for bioforklift integration) for hosted workflows:

{
  "<WF_NAME>": {
    "<TERRA_ENTITY_NAME>: {
      "samples": [], # empty list indicates all samples
      "path": "<PATH_RELATIVE_TO_REPO>",
      "modified": 
          "<TASK/WF_1>",
      ],
      "workflow_name": "<HOSTED_NAME>",
      "branch": "<DERIVED_BRANCH>",
      "repository": "<OWNER/REPOSITORY>",
      "table": "<WF_NAME>_<TESTING_SUFFIX>",
      "comment": "PR: <PR#>",
      "input_json": "<REPOSITORY_INPUTS_JSON>",
      "output_json": "<AVAILABLE_OUTPUTS>"
    },
  }
}

The input_json is derived from an inputs JSON file hosted in the repository that corresponds to the testing table that is hosted in the Terra workspace.

<REPO>.io.json

A JSON formatted to convey inputs and outputs, including defaults and types, for workflows:

{
  <WF_NAME_1>: {
    "path": <PATH_RELATIVE_TO_REPO>,
    "inputs": {
        <INPUT_1>:
        {
            "type": <WF_LANGUAGE_TYPE>,
            "default": <DEFAULT_VAL>
        },
        ..
    },
    "outputs": {
        <OUTPUT_1>: <WF_LANGUAGE_TYPE>,
        ..
    }
  },
  ..
}

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

bioblueprint-1.2.5.tar.gz (32.4 kB view details)

Uploaded Source

Built Distribution

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

bioblueprint-1.2.5-py3-none-any.whl (34.8 kB view details)

Uploaded Python 3

File details

Details for the file bioblueprint-1.2.5.tar.gz.

File metadata

  • Download URL: bioblueprint-1.2.5.tar.gz
  • Upload date:
  • Size: 32.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for bioblueprint-1.2.5.tar.gz
Algorithm Hash digest
SHA256 aa6ba04283f9cf78e35e12550d421a3b8f7be7075157e3d928457cc00e1d6cbb
MD5 061e4e308bd2f162e8c6e212b392e5ed
BLAKE2b-256 96c4a3732e7a6bba5549dbbb1f9ca734eeeb40456c7b5ada4ce168489998bd15

See more details on using hashes here.

File details

Details for the file bioblueprint-1.2.5-py3-none-any.whl.

File metadata

  • Download URL: bioblueprint-1.2.5-py3-none-any.whl
  • Upload date:
  • Size: 34.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for bioblueprint-1.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 59df783dcca3164e10b7b981fb1ed73545e1b20730da92413199d8cf86830cb9
MD5 2db80f4543c4babfd5053eb9da0a55dd
BLAKE2b-256 cf13d6f6f56d5417c33c38294ddccbc48f4bfa09de18fce32d9057699e6fdd86

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