如何恢复Achelous 作业

生物信息流程开发和实际分析过程中,经常涉及对流程的调试。因此需要对运行至中途的任务进行恢复操作,Achelous 结合生物信息工作人员的需要,开发了作业恢复机制,可以使用户轻松实现对流程修改后的继续运行,而无需从头运行程序。


作业运行状态说明

对于通过Achelous 提交的任务,其可能存在的作业状态如下:

作业状态 状态描述
CREATED 作业刚提交,尚未调度执行
RUNNING 作业正在运行。作业在执行流程的过程中,流程的每个阶段都会提交一个或多个任务到后端执行。这些阶段可能暂时没有资源,不能运行,处于等待状态。但是作业仍然会处于RUNNING 状态。
COMPLETE 作业执行完成,没有异常退出。如果流程有很多个阶段,表示每个阶段都正常完成。
FAIL 作业由于平台原因(例如引用不存在的存储)的一个或者多个阶段执行失败,且用户不可恢复。
CANCELED 作业被用户取消,作业正在执行且未完成的所有阶段的任务都将会被结束。
PAUSED 作业被暂停。作业将记住暂停时候的状态,如果用户恢复作业,作业将被恢复为暂停时候的状态继续执行。注意暂停作业时,作业产生的正在运行的任务不会被停止。但是作业将停止调度新的阶段和任务。
PSUDONE 作业执行部分完成,同时由于某些阶段的失败造成作业无法继续执行的结束状态。

对于PSUDONE 可以进行恢复操作。而FAIL 状态的任务,通常分析人员无法直接参与恢复,需要系统管理员介入。

造成作业PSUDONE 状态的原因

通常而言,一个作业PSUDONE 的原因主要有以下几种情况:

  • 流程WDL 脚本编写存在错误
  • 镜像不存在或镜像中程序路径存在错误
  • 计算资源分配不足(如作业内存分配太小)

[!TIP|style:flat]
如果作业参数填写存在错误,则无法进行恢复。

通过Achelous biocli 进行作业恢复

以下面的流程为例

## File name: samtools_view.wdl

task samtoolsview{
    File input_sam 
    command{
        samtoolsview ${input_sam} > my.result.bam ## 命令存在错误
    }
    ...
}

该流程对应的作业提交后,由于命令存在错误,会造成作业进入PSUDONE 状态。

此时,首先对WDL 脚本进行修改:

## File name: samtools_view.wdl

task samtoolsview{
    File input_sam 
    command{
        samtools view -B ${input_sam} > my.result.bam ## 命令错误已修正
    }
    ...
}

保存后,进行流程的更新

biocli pipeline update [pipeline.json] -d [wdl resource dir]

更新后,对作业进行恢复操作

biocli job recover -i [psudone-job-id]

即可对该作业进行恢复,恢复后的作业会保持前面正常结束的步骤对应结果,由错误步骤处重新运行。

Powered by XTAO TechnologyLast Modified On:2021 2023-03-24 09:05:16

results matching ""

    No results matching ""