集群投递模式

简介

SDAS Pipelines 自动化投递任务是一个智能的作业调度系统,用于自动管理和提交SDAS分析流程的作业到PBS/Torque集群。该系统能够:

  • 自动解析依赖关系:根据作业间的依赖关系智能调度

  • 并发控制:限制同时运行的作业数量,避免资源冲突

  • 状态监控:实时监控作业执行状态

  • 错误处理:自动重试失败的作业

  • 详细报告:生成完整的执行报告和日志

系统要求

  • Python 3.6+

  • 作业调度系统(支持以下任一种):

    • PBS/Torque

    • SGE (Sun Grid Engine)

    • Slurm

    • LSF (IBM Platform Load Sharing Facility)

  • 适当的队列权限

  • SDAS软件已正确配置

使用步骤

1. 配置pipeline_input.conf文件

在运行SDAS Pipeline之前,需要先配置 pipeline_input.conf 文件。这个文件定义了:

  • 输入数据:h5ad文件路径和分组信息

  • 分析流程:选择要运行的SDAS模块

  • 模块参数:每个模块的具体参数配置

  • 依赖关系:模块间的输入输出关系

1.1 基本配置结构

1.2 模块参数配置示例

配置说明

  • 参数格式:参数名 = 参数值

  • 空格表示:参数值为空,使用默认值

  • 注释:以 # 开头,用于说明参数含义

  • 路径参数:使用绝对路径,避免相对路径问题

空间基因共表达分析 (coexpress)

细胞类型注释 (cellAnnotation)

空间结构域识别 (spatialDomain)

1.3 模块依赖关系配置

SDAS模块之间存在依赖关系,通过 *_input_process 参数指定:

2. 生成作业配置

配置完成后,运行SDAS Pipeline生成作业配置文件:

这将生成 all_shell.conf 文件,包含所有作业及其依赖关系。

3. 预览作业(推荐)

在实际提交前,建议先使用dry-run模式预览:

这将显示:

  • 所有作业的依赖关系

  • 资源需求(CPU、内存)

  • 将要生成的qsub脚本

4. 提交作业

确认无误后,提交作业到队列:

auto_qsub_scheduler.py 作业调度系统配置

根据您的集群环境,需要修改 auto_qsub_scheduler.py 中的 create_qsub_script 方法来自定义作业提交脚本的格式。该方法位于文件的 QsubScheduler 类中:

您需要:

  1. 根据您的作业调度系统(PBS/Torque、SGE、Slurm或LSF)修改脚本模板

  2. 确保包含必要的资源配置参数(CPU、内存等)

  3. 保留对以下变量的引用:

    • self.queue: 队列名称

    • shell_file: 执行脚本路径

    • cpu: CPU核心数

    • memory: 内存需求

测试数据和配置文件

SDAS Pipelines提供了单片和多片测试数据及对应的配置文件,方便用户快速上手和测试系统。

目录结构

单片数据分析配置

pipeline_input.single_slice.conf 针对单个空间转录组切片的分析流程:

  • 输入数据:单个h5ad文件

  • 分析模块:包含大多数SDAS分析模块

  • 特点

    • 简单的数据输入配置

    • 完整的模块参数示例

    • 适合初次使用的用户

多片数据分析配置

pipeline_input.multiple_slice.conf 针对多个空间转录组切片的分析流程:

  • 输入数据:多个h5ad文件,包含分组信息(如Normal/Tumor)

  • 分析模块:根据实验设计选择合适的模块

  • 特点

    • 展示了多样本输入格式

    • 包含组间比较的参数设置

    • 适合进行对照分析

测试步骤

1. 单片数据测试

步骤1:准备配置文件

步骤2:生成作业配置

步骤3:预览作业(推荐)

步骤4:提交作业

2. 多片数据测试

步骤1:准备配置文件

步骤2:生成作业配置

步骤3:预览作业(推荐)

步骤4:提交作业

Last updated