Skip to main content

nf-meta is a cli tool for building, validating and running meta-pipelines based on the Nextflow workflow language

Project description

nf-meta: metapipeline representation, editor, and runner

This project features a reproducible representation for meta-pipelines, featuring an interactive editor running locally in a browser, as well as a cli based validator and runner.

This is a development/alpha version: Things can be unstable and change

Representation

This project proposes a representation for how metapipeline can be generalized in a in .yml file format. The most important keys for a metapipeline in this format are:

  • config_version - which allows the representation to change over time without breaking
  • workflows - lists the nextflow / nf-core pipeline runs
  • transitions - describe the flow through the metapipelines
  • globals - defines settings that apply to all workflows

More sections could follow, potentially starting with a sort of adapter key, where transitions or Groovy glue code is described.

config_version: 0.0.1
globals:
  nf_profile: docker
workflows:
- id: n02
  name: nf-core/rnaseq
  version: dev
  params:
    outdir: rnaseq-out
    input: fetchngs_out/samplesheet/samplesheet.csv
- id: n01
  name: nf-core/fetchngs
  version: dev
  url: https://api.github.com/repos/nf-core/fetchngs
  params:
    outdir: fetchngs_out
    input: /path/to/ids/acc_ids.csv
    nf_core_rnaseq_strandedness: true
transitions:
- id: c49f
  target: n02
  source: n01

This project features at it core validation logic for these sort of .yml representations.

To enable referencing fields form other workflows, constructs like could be made possible:

    # write this:
    input: ${n01:params:outdir}/samplesheet/samplesheet.csv
    # instead of this:
    input: fetchngs_out/samplesheet/samplesheet.csv

Editor

This project features a small editor which intends to ease the creation and updating of these config files, by visualizing the config as a graph and offering user-firendly form for entering and validating values.

editor

Metapipeline Runners

Currently:

  • Python Runner: Wraps nextflow commands, exectutes in dag order

Planned:

  1. nf-cascade runner: Convert config into one nextflow daisy-chaining nextflow script
  2. Seqera Platform runner: Start and monitor locally, call and poll a Platform instance with run parameters via API to handle running Nextflow
  3. Meta-Pipeline runner: compile config into new monolithic nextflow project, that imports required workflows to achieve most efficient orchestration + graceful errors handling

Install from PyPI

The released version of this package can be installed from the Python Package Index

# with pip
pip install nf-meta

# with uv 
uv add nf-meta

Install and run the Development Setup

Install and run the frontend

$ cd /src/nf_meta/editor/frontend
$ npm install
$ npm run dev

Run the cli in dev mode

NF_META_DEVMODE=1 uv run nf-meta editor [</path/to/metapipeline.yml>]

Project Structure

  • Engine: Config Validation, Editor Session with History and exposing API
  • Runners
  • Editor frontend for creating or editing a config

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

nf_meta-0.1.3.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

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

nf_meta-0.1.3-py3-none-any.whl (2.8 MB view details)

Uploaded Python 3

File details

Details for the file nf_meta-0.1.3.tar.gz.

File metadata

  • Download URL: nf_meta-0.1.3.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nf_meta-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6df3ed4e0a90810ff95615246b570ddd22a02c8ff5461b2dbeb44dec23cae23a
MD5 c9a67738ec9aab07691be60856c1ddfc
BLAKE2b-256 adaee4c578c49011dd5e9082fb136e8f78d8bac9982ca796d7ae02a0b9434cb9

See more details on using hashes here.

File details

Details for the file nf_meta-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: nf_meta-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nf_meta-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ff720ca5ecac9bf6955fe52fbed173a0d8ff89c1c1a9b2ab23c9409e2719f8bf
MD5 aaceb11ad3509455803aa00de1c81be4
BLAKE2b-256 9aba9cdb96ee01d0b5dd3fe476e3aa1a771d6abbd4f2d39402fa6ce247dc80ab

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