This is a test version of Biostars. For the public version, visit https://www.biostars.org.
CWL Workflow removing input files

I want use deepbinner as the first step of a workflow. Deepbinner scans fast5 files for barcodes and then moves them to different folders accordingly. My problem is that files are sorted into a temp directory created by cwltool and disappear from their original location. The temporary files are then processed further and i get my desired output. However, all my raw data is lost.

Is there a way to prevent this behavior? I would like for the workflow to not alter the input directory at all, but i don't know how to make sure deepbinner only gets a copy of the directory.

cwl deepbinner

Hello Tom,

Which CWL runner are you using, and which version is it?

Do your CWL descriptions use the DockerRequirement?

Can you share a link to view your CWL descriptions?

I'm using cwltool version is 1.0.20181217162649 I am still struggling with getting my stuff to work with docker, so for now there is no DockerRequirement.

I added the relevant code to a repository: *edit: repository made private again.

Thank you for taking the time to help.

In case it is of interest: When running the tool in Docker it fails because it cannot move the input files out of their directories.

Using InitialWorkDirRequirement with writable: true solves the problem.

1 answer

Using InitialWorkDirRequirement with a writable: field set to true solves the problem. CWLtool seems to copy all files into a temporary directory and deepbinner is then able to move them out of there.

requirements:
  InlineJavascriptRequirement: {}
  InitialWorkDirRequirement:
    listing:
      - entry: $(inputs.reads_directory)
        writable: true

Log in to answer this question.