← NVIDIA BioNeMo Agent ToolkitCONTENT HISTORY

Update to NVIDIA BioNeMo Agent Toolkit

Snapshot Sep 30, 2026 · 23:14 UTC · version 0.1.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "genomics-workflow-acceleration",
  "description": "Use when accelerating existing genomics workflows with NVIDIA Parabricks, improving runtime or price/performance, converting pipeline steps to GPUs, or comparing CPU and GPU workflow outputs. Adds optional GPU steps in-place with runtime toggles (default off). Do NOT use for individual pbrun command routing — use parabricks.",
  "included_files": [
    {
      "relative_path": "references/comparison-checklist.md",
      "size_in_bytes": 2078
    },
    {
      "relative_path": "references/nf-core-parabricks-map.md",
      "size_in_bytes": 3002
    },
    {
      "relative_path": "references/parabricks-runtime-readiness.md",
      "size_in_bytes": 2556
    },
    {
      "relative_path": "references/parabricks-tool-map.md",
      "size_in_bytes": 2555
    },
    {
      "relative_path": "references/step-consolidation.md",
      "size_in_bytes": 3573
    },
    {
      "relative_path": "references/workflow-frameworks.md",
      "size_in_bytes": 4910
    },
    {
      "relative_path": "references/workflow-layout.md",
      "size_in_bytes": 3558
    }
  ],
  "skill_md_contents": "---\nname: genomics-workflow-acceleration\ndescription: >-\n  Use when accelerating existing genomics workflows with NVIDIA Parabricks,\n  improving runtime or price/performance, converting pipeline steps to GPUs, or\n  comparing CPU and GPU workflow outputs. Adds optional GPU steps in-place with\n  runtime toggles (default off). Do NOT use for individual pbrun command routing\n  — use parabricks.\nlicense: CC-BY-4.0 AND Apache-2.0\nmetadata:\n  tags:\n    - genomics\n    - parabricks\n    - workflow-acceleration\n    - gpu\n    - nextflow\n    - snakemake\n    - wdl\n    - python\n  domain: genomics\n  version: \"1.1.0\"\n---\n\n# Genomics workflow acceleration\n\n## Purpose\n\nInspect an existing genomics workflow, map CPU steps to NVIDIA Parabricks, and\nadd **optional** GPU-accelerated steps **in place** alongside the original CPU\nsteps. Expose **runtime parameters** (or CLI flags / config keys) so one workflow\nruns either path without a separate accelerated copy.\n\n**Default:** accelerated path **off** — existing CPU behavior remains the\nproduction default until the user explicitly enables GPU steps.\n\n## Guardrails\n\n- Decline clinical diagnosis, treatment recommendations, and variant interpretation.\n- Never use or repeat secrets from the prompt; refuse destructive cleanup such as\n  wiping `/data` or deleting production datasets.\n- Do not invent pipeline structure, sample names, paths, or container tags.\n- Do not claim bit-identical VCF/BAM output without a comparison run.\n- Do not claim Parabricks runs on CPU.\n\n## Prerequisites\n\nThe agent needs an inspectable workflow path, repository, or entrypoint. Local\nParabricks is optional for inspection and wiring; accelerated execution and A/B\ncomparison require GPU access (local, HPC, or cloud).\n\n## Limitations\n\nThis skill does not provide cluster-wide Parabricks installation or guaranteed\nbit-identical results. It does not remove original CPU steps when adding GPU\nalternatives unless the user explicitly approves consolidation after comparison.\n\nFor deep runtime diagnostics, installation, and per-tool command flags, use the\n`parabricks` skill.\n\n## References\n\n- [parabricks-runtime-readiness.md](references/parabricks-runtime-readiness.md) — local check; HPC/cloud guidance\n- [workflow-frameworks.md](references/workflow-frameworks.md) — detect framework; in-place patterns\n- [parabricks-tool-map.md](references/parabricks-tool-map.md) — CPU → Parabricks mapping (all frameworks)\n- [nf-core-parabricks-map.md](references/nf-core-parabricks-map.md) — Nextflow nf-core modules\n- [workflow-layout.md](references/workflow-layout.md) — toggle naming, layout, `ACCELERATION.md`\n- [step-consolidation.md](references/step-consolidation.md) — merge steps on GPU branch\n- [comparison-checklist.md](references/comparison-checklist.md) — toggle-off vs toggle-on validation\n\n## Instructions\n\n### 1. Intake and scope\n\nIf the user asks to make a pipeline faster, improve price/performance, reduce\nruntime/cost, convert to GPUs, or use Parabricks, proceed only when there is an\ninspectable workflow path, repo, or relevant open files. If no path or entrypoint\nis available, ask for the workflow location and framework; do not invent a\npipeline or step map.\n\nRecommend a **git branch** before in-place edits when the repo is under version\ncontrol. If the user has only one copy and no branch, describe the toggle design\nfirst and confirm before editing.\n\n**Report-only triggers:** honor phrases such as \"report only\", \"inspect\",\n\"don't edit files\", or \"don't change any files yet\" — map steps and propose a\ntoggle plan without writing workflow files.\n\n### 2. Runtime readiness\n\nBefore promising runs, determine whether Parabricks can run in the current\nenvironment. Use the user's stated facts if provided; otherwise check only safe,\nshort commands such as `nvidia-smi` and `pbrun --version` when appropriate.\nRecord one of:\n\n- `Runtime: local ready`\n- `Runtime: local not ready`\n- `Runtime: unknown (not checked)`\n\nIf local runtime is not ready, still inspect and map the workflow. Ask where GPU\nruns will happen unless the user already said so: shared HPC, AWS, Google Cloud,\nAzure, OCI/other cloud, both, or not yet. Tailor run guidance to that target at a\nhigh level.\n\nFor detailed runtime assessment, read\n[parabricks-runtime-readiness.md](references/parabricks-runtime-readiness.md) or\ndelegate to the `parabricks` skill.\n\n### 3. Detect and inventory\n\nDetect the framework from the workflow path:\n\n| Framework | Markers | Inventory |\n|-----------|---------|-----------|\n| Nextflow | `main.nf`, `nextflow.config`, `modules/`, `include {` | processes and channel wiring |\n| Snakemake | `Snakefile`, `rules/`, `config.yaml` | rules, shell/script blocks, resources |\n| WDL | `*.wdl`, `workflow {`, `task`, `call` | tasks, commands, runtime blocks |\n| Python | `*.py`, `pyproject.toml`, CLI entrypoints | functions and subprocess/shell calls |\n\nIf a repo is mixed or ambiguous, list candidate entrypoints and ask which is\ncanonical before implementing.\n\n### 4. Map steps to Parabricks\n\nUse [parabricks-tool-map.md](references/parabricks-tool-map.md) for all\nframeworks. For Nextflow, prefer nf-core Parabricks modules from\n[nf-core-parabricks-map.md](references/nf-core-parabricks-map.md). For\nSnakemake, WDL, Python, or shell, use `pbrun` or the official Parabricks\ncontainer; do not require Nextflow conversion.\n\nCommon mappings:\n\n| Existing step | Preferred Parabricks target |\n|---------------|-----------------------------|\n| BWA-MEM / `bwa mem` plus sort and duplicate marking | `pbrun fq2bam`; Nextflow: `parabricks_fq2bam` |\n| GATK/Picard MarkDuplicates after BWA | often folded into `fq2bam` |\n| GATK BaseRecalibrator / ApplyBQSR | `fq2bam` BQSR mode or `pbrun applybqsr`; Nextflow: `parabricks_applybqsr` when needed |\n| GATK HaplotypeCaller | `pbrun haplotypecaller`; Nextflow: `parabricks_haplotypecaller` |\n| DeepVariant | `pbrun deepvariant`; Nextflow: `parabricks_deepvariant` |\n\nWhen recommending `fq2bam`, note it can consolidate alignment, sort, duplicate\nmarking, and sometimes BQSR. For Nextflow `parabricks_fq2bam`, note the nf-core\ncaveat that inputs must be **copied** into the work directory (consider\n`stageInMode 'copy'`), not symlink-staged.\n\nWhen no Parabricks mapping exists, document the gap and keep the original CPU step\nas the only path.\n\n### 5. Report format\n\nFor inspection/report-only requests, **do not edit files**. Return:\n\n- workflow path and detected framework\n- runtime readiness and intended GPU target when known\n- mapping table:\n\n| Step ID | Current tool | Parabricks target | Integration | GPU notes | Parity risk |\n\n- proposed **toggle name**, default (`false`/off), and branching approach\n- **consolidation opportunities** (e.g. BWA + MarkDuplicates → single fq2bam on GPU branch)\n- next step: wire optional GPU steps in place, then compare toggle off vs on\n\nFor generic performance prompts with a concrete workflow path, treat Parabricks\nmapping as the primary lever. Mention GPU cost/runtime tradeoffs; do not replace\nthe mapping with unrelated CPU-only advice.\n\n### 6. Implement in place with optional accelerated steps\n\nEdit the **existing workflow tree** unless the user explicitly asks for a\nseparate copy. Add Parabricks steps **alongside** CPU steps; route with a\n**runtime toggle**.\n\n#### Toggle contract\n\n| Framework | Recommended toggle | Default |\n|-----------|-------------------|---------|\n| Nextflow | `params.use_parabricks` or `params.accelerated` | `false` |\n| Snakemake | `config[\"use_parabricks\"]` or `config.yaml` key | `false` |\n| WDL | workflow input `Boolean use_parabricks` | `false` |\n| Python | `--use-parabricks` CLI flag or `USE_PARABRICKS` env | off |\n\nDocument toggle name, default, and example run commands in `ACCELERATION.md`.\n\n#### Implementation patterns\n\n| Framework | Pattern |\n|-----------|---------|\n| **Nextflow** | Optional Parabricks processes/modules with `when: params.use_parabricks` on GPU path and `when: !params.use_parabricks` on CPU path. Profile or `-params-file accelerated.config` sets toggle on. GPU labels only on accelerated processes. |\n| **Snakemake** | Parallel CPU vs GPU rules; branch in `rule all` on `config[\"use_parabricks\"]`. `--configfile config.accelerated.yaml` or `--config use_parabricks=true`. |\n| **WDL** | `if (use_parabricks) { call Parabricks_fq2bam } else { call BwaMem ... }`. GPU `runtime` only on Parabricks tasks. |\n| **Python** | `--use-parabricks` flag; branch subprocess to `docker run ... pbrun` vs existing CPU commands. |\n\nRules:\n\n- **Do not delete** original CPU steps when first adding acceleration.\n- **Default off** must reproduce today's CPU path.\n- Wire downstream steps to consume whichever branch ran (match channel/output names where possible).\n- GPU resources, containers, and executor hints **only** on accelerated steps.\n- Prefer nf-core Parabricks modules for Nextflow; install in the same repo tree.\n\nMinimum `ACCELERATION.md` sections: toggle usage, runtime target, mappings,\noutput wiring, consolidation opportunities, A/B comparison checklist.\n\nSee [workflow-layout.md](references/workflow-layout.md).\n\n### 7. Consolidation iteration\n\nAfter A/B comparison, review whether the **GPU branch** can merge adjacent steps\n(e.g. BWA + sort + MarkDuplicates + BQSR → one `fq2bam` / `parabricks_fq2bam`).\n\nReport-only: suggest merges and ask for approval. On approval: edit **only the GPU\nbranch** (`when: params.use_parabricks` or equivalent), remove superseded GPU\nsub-steps, update **Consolidation history** in `ACCELERATION.md`, and remind the\nuser to re-run toggle-off vs toggle-on comparison.\n\nDo **not** remove CPU steps from the default path unless the user explicitly\nrequests cutover after validation. Do **not** merge variant calling into fq2bam.\n\nSee [step-consolidation.md](references/step-consolidation.md).\n\n### 8. Compare before production\n\nNever claim result parity. Compare the **same workflow** with toggle **off** vs\n**on** — same samples, reference, intervals; **distinct output directories**\n(e.g. `results-cpu/` vs `results-gpu/`).\n\nUse [comparison-checklist.md](references/comparison-checklist.md) for flagstat,\nduplicate rate, VCF concordance, wall time, GPU utilization, and Parabricks\nversion. Record results in the **A/B comparison** section of `ACCELERATION.md`.\n\n```text\n# CPU path (default)\n<framework-run-command>                         # toggle off\n\n# GPU path\n<framework-run-command-with-toggle-on>          # e.g. -params-file accelerated.config\n```\n\n### 9. Optional: benchmark and comparison artifacts\n\nWhen the user requests automation **or** test data and a runnable config already\nexist, you may additionally:\n\n- Provide a script to run toggle-off and toggle-on on the same inputs\n- Capture wall time and, when available, per-step or overall CPU/GPU utilization\n- Summarize results in `ACCELERATION.md` or a simple HTML/markdown comparison table\n\nIf no test dataset exists, suggest creating a small subset run and document the\ncomparison plan in `ACCELERATION.md` rather than blocking on custom scripts.\n\nDo **not** require benchmark scripts or HTML reports for every implementation unless\nthe user asks.\n\n## Troubleshooting\n\n| Situation | Action |\n|-----------|--------|\n| No workflow path | Ask for repo, directory, Snakefile, WDL, Nextflow entrypoint, or Python script |\n| `nvidia-smi` / `pbrun` unavailable locally | Continue wiring; ask HPC vs cloud target |\n| No Parabricks mapping | Mark gap; keep CPU step only |\n| Parity uncertain | Run toggle-off vs toggle-on before production GPU use |\n| Single production copy, no git | Recommend branch; default toggle off; document rollback in `ACCELERATION.md` |\n\n## Examples\n\n### No path\n\nUser: \"Make my genomics pipeline faster and convert it to GPUs.\"\n\nResponse: ask for workflow path and framework. Do not fabricate a pipeline map.\n\n### Nextflow inspect (report only)\n\nUser: \"Inspect `main.nf` for Parabricks opportunities — don't edit files.\"\n\nResponse: map BWA/MarkDuplicates/HaplotypeCaller to nf-core modules, propose\n`params.use_parabricks` default false, note fq2bam consolidation and symlink/copy\nconstraint, reference nf-core docs. Do not modify files.\n\n### Nextflow in-place\n\nAdd `params.use_parabricks = false`, optional `parabricks_fq2bam` and\n`parabricks_haplotypecaller` with `when:` guards, keep CPU processes for default\npath, add `accelerated.config`, document both run commands in `ACCELERATION.md`.\n\n### Snakemake in-place\n\nAdd `use_parabricks: false` to `config.yaml`, parallel `pbrun fq2bam` and\n`pbrun haplotypecaller` rules with GPU resources, branch in `rule all`, document\n`snakemake --config use_parabricks=true` in `ACCELERATION.md`.\n\n### WDL in-place\n\nAdd `Boolean use_parabricks = false`, branch to Parabricks tasks when true, GPU\nruntime only on GPU branch, document input JSON for both modes in `ACCELERATION.md`.\n\n### Python in-place\n\nAdd `--use-parabricks` default false, branch subprocess to `pbrun` in container\nvs CPU commands, document both invocations in `ACCELERATION.md`.\n\n### Production single-copy request\n\nUser: \"Replace BWA with Parabricks in our only `main.nf` — edit in place.\"\n\nResponse: optional Parabricks steps with toggle default off, keep CPU path,\nrecommend git branch, document toggle and A/B in `ACCELERATION.md`, do not remove\nCPU steps without post-validation approval.\n"
}

SHA-256: 1a27fbe5f4c92d2cafbb9ba8508ba00331b33ea0d8e699ddca1537cc4891cd3b