集群模式
概览
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