pacsomatic
Overview
This skill provides a reproducible execution workflow for nf-core/pacsomatic, centered on a single helper entrypoint that handles validation, artifact generation, and optional execution.
Primary entrypoint:
scripts/run_pacsomatic.py
The helper script:
- validates required identifiers, files, reference mode, and runtime prerequisites
- writes a pacsomatic-compatible samplesheet (
patient,sample,status,bam,pbi) - generates a params YAML and launch script for reproducible reruns
- supports dry-run validation and run/submit execution paths
Use this skill as the default path for pacsomatic operations. Do not bypass it with manually assembled nextflow run nf-core/pacsomatic commands unless the user explicitly asks for manual command construction.
When to Use This Skill
Invoke this skill when the user asks to:
- run matched tumor-normal analysis from BAM files
- generate or fix pacsomatic samplesheet and launch artifacts
- execute locally or submit to schedulers (LSF/Slurm/PBS/SGE)
- perform dry-run validation before execution
- troubleshoot launch failures or summarize run outputs
Do not use this skill for:
- deep biological interpretation beyond run-level sanity checks
- editing pipeline internals unless explicitly requested
Typical trigger phrases:
- "run nf-core/pacsomatic for this tumor-normal pair"
- "prepare pacsomatic samplesheet and launch script"
- "do a dry run first and tell me what is missing"
- "submit pacsomatic to slurm/lsf and return the job id"
- "why did pacsomatic submission fail"
Routing and Execution Rules
- Always collect required run inputs first.
- Always route through
scripts/run_pacsomatic.pyfor validation and artifact generation. - Default to
--dry-runwhen the user asks for checks/validation only. - Use
--runonly when the user asks to execute/submit. - For scheduler modes, include executor-specific resource arguments and return detected job ID when available.
- If execution fails, report first failure point and next triage target (
.nextflow.log,pipeline_info, failing task logs).
Inputs Required
Required:
- tumor BAM path
- normal BAM path
- patient ID
- tumor sample ID
- normal sample ID
- output directory
- exactly one reference mode:
--fastaor--genome
Optional:
- profile, resources, scheduler account/queue
- pipeline version (
-r) - params file, resume/report/dag flags
--dry-runand/or--run
Workflow
- Validate identity and input constraints.
- Validate required local paths (BAM, optional PBI, optional FASTA).
- Resolve runtime and dependency checks.
- Build samplesheet and generated params YAML.
- Generate launch script for selected executor.
- If
--dry-runand not--run, stop after artifact generation. - If
--run, execute locally or submit to scheduler. - Return command/script path, validation status, and job ID (if detected).
Agent Response Contract
Every response after invocation should include:
- exact command used or generated script path
- confirmation that validation checks ran
- run type (
dry-runvsrun) - scheduler job ID when available
- one concrete next step for validation/triage
Quick Start
Dry run:
python scripts/run_pacsomatic.py \
--tumor-bam /path/to/tumor.bam \
--normal-bam /path/to/normal.bam \
--patient-id P001 \
--tumor-sample-id P001_T \
--normal-sample-id P001_N \
--outdir /path/to/output \
--genome GRCh38 \
--profile singularity,sanger \
--dry-run
Scheduler execution example (Slurm):
python scripts/run_pacsomatic.py \
--tumor-bam /path/to/tumor.bam \
--normal-bam /path/to/normal.bam \
--patient-id P001 \
--tumor-sample-id P001_T \
--normal-sample-id P001_N \
--outdir /path/to/output \
--genome GRCh38 \
--profile singularity,sanger \
--executor slurm \
--queue compute \
--project my_account \
--cpus 16 \
--memory-gb 64 \
--walltime 48:00 \
--run
Configuration
Use config.yaml as the baseline for profile/executor/runtime defaults. Override at invocation time when user requirements differ.
Testing
Run unit tests from skill root:
python -m unittest discover -s tests -v
References
references/agent-playbook.mdreferences/config-and-output.mdreferences/pacsomatic_guide.mdscripts/run_pacsomatic.py