pacsomatic 是做什么的?
概述
本技能为 nf-core/pacsomatic 提供了一个可复现的执行工作流,核心是一个单一辅助入口点,用于处理验证、工件生成和可选执行。
主要入口点:
scripts/run_pacsomatic.py
辅助脚本的功能:
- 验证所需的标识符、文件、参考模式和运行时前提条件
- 写入与 pacsomatic 兼容的样本表(
patient,sample,status,bam,pbi) - 生成参数 YAML 和启动脚本以实现可复现的重新运行
- 支持 dry-run 验证和运行/提交执行路径
将此技能作为 pacsomatic 操作的默认路径。除非用户明确要求手动构建命令,否则不要通过手动拼接 nextflow run nf-core/pacsomatic 命令来绕过它。
何时使用此技能
当用户要求执行以下操作时调用此技能:
- 从 BAM 文件运行配对肿瘤-正常分析
- 生成或修复 pacsomatic 样本表和启动工件
- 在本地执行或提交到调度器(LSF/Slurm/PBS/SGE)
- 在执行前进行 dry-run 验证
- 排查启动失败或总结运行输出
以下情况不使用此技能:
- 超出运行级健全性检查的深度生物学解释
- 除非明确要求,否则编辑管道内部逻辑
典型触发短语:
- "运行 nf-core/pacsomatic 分析这对肿瘤-正常样本"
- "准备 pacsomatic 样本表和启动脚本"
- "先做一次 dry run,告诉我缺少什么"
- "将 pacsomatic 提交到 slurm/lsf 并返回作业 ID"
- "为什么 pacsomatic 提交失败了"
路由与执行规则
- 始终先收集所需的运行输入。
- 始终通过
scripts/run_pacsomatic.py进行验证和工件生成。 - 当用户仅要求检查/验证时,默认使用
--dry-run。 - 仅当用户要求执行/提交时使用
--run。 - 对于调度器模式,包含执行器特定的资源参数,并在可用时返回检测到的作业 ID。
- 如果执行失败,报告第一个失败点以及下一步排查目标(
.nextflow.log、pipeline_info、失败的任务日志)。
所需输入
必需:
- 肿瘤 BAM 路径
- 正常 BAM 路径
- 患者 ID
- 肿瘤样本 ID
- 正常样本 ID
- 输出目录
- 恰好一种参考模式:
--fasta或--genome
可选:
- profile、资源、调度器账户/队列
- 管道版本(
-r) - 参数文件、resume/report/dag 标志
--dry-run和/或--run
工作流
- 验证标识符和输入约束。
- 验证所需的本地路径(BAM、可选的 PBI、可选的 FASTA)。
- 解析运行时和依赖检查。
- 构建样本表和生成的参数 YAML。
- 为所选执行器生成启动脚本。
- 如果指定了
--dry-run而未指定--run,则在工件生成后停止。 - 如果指定了
--run,则在本地执行或提交到调度器。 - 返回命令/脚本路径、验证状态和作业 ID(如果检测到)。
代理响应契约
每次调用后的响应必须包括:
- 使用的确切命令或生成的脚本路径
- 确认验证检查已运行
- 运行类型(
dry-run或run) - 调度器作业 ID(如果可用)
- 一个具体的下一步验证/排查操作
快速开始
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
调度器执行示例(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
配置
使用 config.yaml 作为 profile/executor/runtime 默认值的基线。当用户需求不同时,可在调用时覆盖。
测试
从技能根目录运行单元测试:
python -m unittest discover -s tests/pacsomatic -v
参考资料
references/agent-playbook.mdreferences/config-and-output.mdreferences/pacsomatic_guide.mdscripts/run_pacsomatic.py