集群模式

概览

SAW 目前支持在 Linux 系统上以集群模式提交分析任务,兼容 SGE 作业调度工具。集群模式允许分析人员在高性能计算(HPC)环境中并行执行任务,从而最大化利用集群资源,显著提升分析效率。

  • 集群模式支持:通过配置文件定义默认的作业提交规则和资源需求。
  • 资源分配优化:动态调整线程数、内存大小和内存重试因子,以优化资源利用率。
  • 任务管理:支持作业提交、日志记录以及任务中断挂起。
  • 并行计算:支持规则内(intra-rule)和规则间(inter-rule)的并行计算,完美适配大规模数据分析。

启用集群模式

运行任务时可通过指定 --job-mode=sge 参数即可启用集群模式,如果未明确指定该参数,系统将默认使用本地模式(local mode)运行。

资源配置

资源配置文件用于定义默认的作业提交规则和资源需求。资源文件通常位于 /path/to/software/package/saw/config/resources.yaml,采用 YAML 格式,主要包含以下核心部分:

  • 默认资源配置(Global Settings):为未明确配置特定规则的步骤定义全局默认值。
  • 特定规则的资源配置(Rule-specific Settings):为流中的特定规则定制以下参数:
    • 线程数(thread count)
    • 内存大小(memory size, GB)
    • 最大重试次数(maximum of times to retry)
    • 内存重试因子(memory retry factors):当任务因内存不足重试时,下一次分配的内存将自动乘以该指定系数

如果某个字段的默认值为 null,说明程序会在运行时根据数据量动态、实时地计算该组件所需的资源。通常,这些组件不会消耗过多的计算资源。

资源配置YAML文件示例:

version: "1.0"

global:
  scheduler: "local"  # 可选: local, sge
  default_setting:
    max_retries: 0

schedulers:  # 可选配置
  sge:
    queue: " "  # 若留空,则使用集群默认队列

-------------------------------------------------------
# 可选的规则设置,请根据实际运行需求挑选并修改
rules:
  generate_mask:
    threads: 1
    mem_gb: 1.5
    retry_factor: 2
  generate_cid_count:
    threads: 16
    mem_gb: 1 
    retry_factor: 2
  alignment:  # 序列比对
    threads: null 
    mem_gb: null  # 从 CID count 动态计算
    retry_factor: 1.5
  annotation:  # 基因注释
    threads: null  # 最低 8 线程
    mem_gb: 70 
    retry_factor: 1.5
  merge_cid_info:
    threads: 10
    mem_gb: 3
    retry_factor: 2
  image_registration:  # 图像相关处理
    threads: null
    mem_gb: 20
    retry_factor: 1.5
  tissue_cut:
    threads: 10
    mem_gb: 12
    retry_factor: 2
  microbe_analysis:
    threads: 10
    mem_gb: 66
    retry_factor: 2
  microbe_tissue_cut:
    threads: 10
    mem_gb: 11
    retry_factor: 2
  clustering:  # 基于表达矩阵的聚类分析
    threads: 1
    mem_gb: 8
    retry_factor: 2
  cell_cut:
    threads: 1
    mem_gb: 15
    retry_factor: 2
  saturation: 
    threads: 1
    mem_gb: 7
    retry_factor: 2
  protein_mapping:
    threads: null
    mem_gb: 45
    retry_factor: 2
  protein_tissue_cut:
    threads: 10
    mem_gb: 8
    retry_factor: 2
  protein_clustering:
    threads: 11
    mem_gb: 3
    retry_factor: 2
  protein_cell_cut:
    threads: 1
    mem_gb: 15
    retry_factor: 2
  protein_saturation:
    threads: 1
    mem_gb: 10
    retry_factor: 2
  protein_remove_background:
    threads: 10
    mem_gb: 20
    retry_factor: 2
  protein_calculate_statistics:
    threads: 1
    mem_gb: 45
    retry_factor: 2
  generate_gef:
    threads: 1
    mem_gb: 15
    retry_factor: 2
  generate_report:
    threads: 1
    mem_gb: 15
    retry_factor: 2
  package_visualization:
    threads: 1
    mem_gb: 1
    retry_factor: 2

默认的资源配置适用于大多数常规 Stereo-seq 数据集(芯片尺寸 <= 2*3)。如果你的 Stereo-seq 测序数据量极大,或者分析使用大尺寸时空芯片(芯片尺寸 > 2*3),请务必根据实际情况调整 resources.yaml 文件中的资源配置。

提交分析

可直接在命令行中启用 SGE 模式并提交 saw count 分析任务:

cd /saw/runs

saw count \
    --id=SGE_test \
    --sn=C04144D5 \
    --omics=transcriptomics \
    --kit-version='Stereo-seq N FFPE V1.0' \
    --sequencing-type='PE75_25+59' \
    --organism=mouse \
    --tissue=brain \
    --chip-mask=./C04144D5.barcodeToPos.h5 \
    --fastqs=./reads \
    --reference=./mouse_transcriptome \
    --threads-num=96 \
    --memory=100 \
    --job-mode=sge

或通过传递一个定制化的配置 YAML 文件来启动分析任务:

注意,当在 SGE 集群模式下指定自定义 YAML 文件时,请务必确保该 YAML 内的 scheduler 已调整为 "sge",并设置了可用的队列(queue)。

cd /saw/runs

saw count \
    --id=SGE_with_a_specific_yaml_test \
    --sn=C04144D5 \
    --omics=transcriptomics \
    --kit-version='Stereo-seq N FFPE V1.0' \
    --sequencing-type='PE75_25+59' \
    --organism=mouse \
    --tissue=brain \
    --chip-mask=./C04144D5.barcodeToPos.h5 \
    --fastqs=./reads \
    --reference=./mouse_transcriptome \
    --threads-num=96 \
    --memory=100 \
    --job-mode=./specific_configuration_for_my_stereoseq_chip.yaml
    --memory=100 \
    --job-mode=./specific_configuration_for_my_stereoseq_chip.yaml
© 2026 STOmics Tech. All rights reserved.Modified: 2026-09-15 10:50:37

results matching ""

    No results matching ""