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 breakingworkflows- lists the nextflow / nf-core pipeline runstransitions- describe the flow through the metapipelinesglobals- 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.
Metapipeline Runners
Currently:
- Python Runner: Wraps nextflow commands, exectutes in dag order
Planned:
- nf-cascade runner: Convert config into one nextflow daisy-chaining nextflow script
- Seqera Platform runner: Start and monitor locally, call and poll a Platform instance with run parameters via API to handle running Nextflow
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6df3ed4e0a90810ff95615246b570ddd22a02c8ff5461b2dbeb44dec23cae23a
|
|
| MD5 |
c9a67738ec9aab07691be60856c1ddfc
|
|
| BLAKE2b-256 |
adaee4c578c49011dd5e9082fb136e8f78d8bac9982ca796d7ae02a0b9434cb9
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff720ca5ecac9bf6955fe52fbed173a0d8ff89c1c1a9b2ab23c9409e2719f8bf
|
|
| MD5 |
aaceb11ad3509455803aa00de1c81be4
|
|
| BLAKE2b-256 |
9aba9cdb96ee01d0b5dd3fe476e3aa1a771d6abbd4f2d39402fa6ce247dc80ab
|