You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snakemake中call_variants规则报139错误,直接执行命令正常

解决Snakemake调用xAtlas时随机出现Segmentation Fault(退出码139)的问题

问题场景

  • Snakemake脚本snakefile.py包含all、call_variants等6条规则,仅call_variants规则调用xAtlas变异检测工具时出现随机错误
  • 47个样本中每次失败的样本不固定,手动执行Snakemake日志中的报错命令可成功完成
  • 服务器迁移重装xAtlas后出现此问题,其他变异检测工具脚本无异常
  • 多次使用--keep-going参数执行,需3次才能完成所有样本;失败样本的日志文件仅被截断,无完整报错信息
  • 环境:Snakemake v8.30.0、Ubuntu 22.04.3 LTS

可行解决方案

1. 限制xAtlas任务的资源分配,避免并行资源竞争

随机段错误大概率是多任务并行时内存/CPU资源不足导致,手动单进程执行时资源充足所以无问题。

  • 在call_variants规则中显式指定资源限制(根据xAtlas实际需求调整数值):
    rule call_variants:
        input: "input/{sample}.bam"
        output: "output/{sample}.vcf"
        resources:
            mem_mb=16000,  # 按需加大内存分配
            threads=4
        shell: """
            xAtlas call --input {input} --output {output} --threads {threads}
        """
    
  • 执行Snakemake时限制总并行任务数,避免服务器资源过载:
    snakemake --printshellcmds -s snakefile.py --jobs 4
    

2. 重新验证xAtlas的安装完整性与依赖

迁移服务器后重装的xAtlas可能存在编译不完整或依赖缺失,单进程执行无问题但多进程时触发异常:

  • 重新编译xAtlas,确保使用服务器本地的依赖库(如libcurl、zlib、htslib等),避免使用跨环境的预编译包
  • 用ldd $(which xAtlas)检查动态链接库,确认所有依赖库都能正常找到,无缺失或版本不匹配

3. 调整Snakemake执行策略,自动重跑失败任务

无需手动多次执行--keep-going,可让Snakemake自动重跑不完整的任务:

snakemake --printshellcmds -s snakefile.py --jobs 4 --rerun-incomplete --keep-going

若怀疑是并行导致的问题,可先将call_variants设为串行执行验证:给规则加threads=1,执行时用--jobs 1,若不再出错则确认是并行资源冲突问题。

4. 捕获完整错误日志

当前失败样本日志被截断,无法定位xAtlas崩溃原因,可在规则中重定向所有输出到日志文件:

rule call_variants:
    input: "input/{sample}.bam"
    output: "output/{sample}.vcf"
    log: "logs/call_variants/{sample}.full.log"
    resources:
        mem_mb=16000,
        threads=4
    shell: """
        xAtlas call --input {input} --output {output} --threads {threads} > {log} 2>&1
    """

这样即使任务崩溃,日志也会保留崩溃前的所有输出,有助于排查xAtlas的具体问题。

5. 调高系统资源限制

Ubuntu默认的进程数、文件句柄数限制可能导致多进程并行时出错,临时调高限制后再执行:

ulimit -n 65536  # 调高最大文件句柄数
ulimit -u 10240  # 调高最大进程数
snakemake --printshellcmds -s snakefile.py --jobs 4

若有效,可修改/etc/security/limits.conf文件永久调整这些限制。

内容的提问来源于stack exchange,提问作者Sofya Dubovskova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 14:25:10