I am trying to figure out how can I copy reference genome files into Docker containers to be used by software aligners since CWL v1.0 does not support directory copy. One idea I am testing is to create a Docker image for the aligner itself and create a second image that derives FROM
from the first image by adding reference genome index files. For example:
- bowtie1 only software, no data
- bowtie1-hg19 download genome in FASTA and use parent image to build index
- bowtie1-rn5 keep images for each reference genome
I would like to know if it is possible to set Docker image in requirements
from inputs
at run time. For example:
cwlVersion: v1.0
class: CommandLineTool
baseCommand: [uname, -a]
requirements:
InlineJavascriptRequirement: {}
DockerRequirement:
dockerPull:
valueFrom: $(inputs.docker_image)
inputs:
docker_image:
type: string
default: ubuntu
outputs:
output:
type: stdout
I understand that docker_image
is not a Tool's input. Is there any way to do this in CWL? Or a better way to deal with reference genome files?