我怎样才能发现 Rscript 已经被 CWL 运行 成功地 docker 了?

How can I found that the Rscript have been run successfully on the docker by the CWL?

我已经编写了 CWL 代码,其中 运行 是 docker 容器中的 Rscript 命令。我有两个 cwl 和 yaml 文件,通过命令 运行 它们:

cwltool --debug a_code.cwl a_input.yaml

我得到的输出表明进程状态为成功,但没有输出文件,结果 "output":报告为空。我想知道是否有一种方法可以成功地找到Rscript文件在docker上有运行。我真的想知道输出文件为空的原因。

结果的最后部分是:

[job a_code.cwl] {
    "output": null, 
    "errorFile": null
}
[job a_code.cwl] Removing input staging directory /tmp/tmpUbyb7k
[job a_code.cwl] Removing input staging directory /tmp/tmpUbyb7k
[job a_code.cwl] Removing temporary directory /tmp/tmpkUIOnw
[job a_code.cwl] Removing temporary directory /tmp/tmpkUIOnw
Removing intermediate output directory /tmp/tmpCG9Xs1
Removing intermediate output directory /tmp/tmpCG9Xs1
{
    "output": null, 
    "errorFile": null
}
Final process status is success
Final process status is success

R代码:

library(cummeRbund)
cuff<-readCufflinks( dbFile = "cuffData.db", gtfFile = NULL, runInfoFile = "run.info", repTableFile = "read_groups.info", geneFPKM = "genes.fpkm_trac .... )
#setwd("/scripts")
sink("cuff.txt")
print(cuff)
sink()

我的cwl文件代码是:

class: CommandLineTool
cwlVersion: v1.0
id: cummerbund
baseCommand:
  - Rscript
inputs:
  - id: Rfile
    type: File?
    inputBinding:
      position: 0
  - id: cuffdiffout
    type: 'File[]?'
    inputBinding:
      position: 1
  - id: errorout
    type: File?
    inputBinding:
      position: 99
      prefix: 2>
      valueFrom: |
        error.txt
outputs:
  - id: output
    type: File?
    outputBinding:
      glob: cuff.txt
  - id: errorFile
    type: File?
    outputBinding:
      glob: error.txt
label: cummerbund
requirements:
  - class: DockerRequirement
    dockerPull: cummerbund_0

我的输入文件(yaml 文件)是:

 inputs:
    Rfile:
      basename: run_cummeR.R
      class: File
      nameext: .R
      nameroot: run_cummeR
      path: run_cummeR.R
    cuffdiffout:
      - class: File
        path: cuffData.db
      - class: File
        path: genes.fpkm_tracking
      - class: File
        path: read_groups.info
      - class: File
        path: genes.count_tracking
      - class: File
        path: genes.read_group_tracking
      - class: File
        path: isoforms.fpkm_tracking
      - class: File
        path: isoforms.read_group_tracking
      - class: File
        path: isoforms.count_tracking
      - class: File
        path: isoform_exp.diff
      - class: File
        path: gene_exp.diff
    errorout:
      - class: File
        path: error.txt

此外,这是我用于创建图像的 Dockerfile:

FROM r-base
COPY . /scripts
RUN apt-get update
RUN apt-get install -y \
    libcurl4-openssl-dev\
    libssl-dev\
    libmariadb-client-lgpl-dev\
    libmariadbclient-dev\
    libxml2-dev\
    r-cran-plyr\
    r-cran-reshape2
WORKDIR /scripts
RUN Rscript /scripts/build.R
ENTRYPOINT /bin/bash

我找到答案了! 我的程序出现了一些问题。 1. docker没有被正确拉取,导致cwl无法产生任何输出。
2. 输入和输出没有强制定义。所以我在没有正确输入和输出的情况下获得了成功状态。