This is a test version of Biostars. For the public version, visit https://www.biostars.org.
CWL :Append the ref input used in toolkit

I want the input ref used in analysis toolkit, and the toolkit input the ref in config format,not in command-line format.Then,How can I deal with it,when I use CWL . Thank you!

cwl

And I want to know. when cwl running in a docker ,where is the running dir and the input files dir copied to the same dir?

The answer regarding InitialWorkDirRequirement has already been given. But for anybody reading this in the future: The directory in which a CommandLineTool runs will only be determined after starting the job. You can, however, reference the directory in your cwl documents using $(runtime.outdir).

If you do not use InitialWorkDirRequirement, input files will never be copied. Links to the input files are created instead.

My software need the ref directory name,and I need assign the directory name by cwl-yaml's ref params.How can I achieve it?

It is really difficult to understand what the issue is. Maybe try giving us a specific example of what you are working on. What software do you want to run? Can you post the current version of your command line tool, even if it doesn't work? What is the file you have trouble passing to the tool?

If you put a little more effort into elaborating, i am sure we will be able to help.

Sorry for my obscure expression. I have made it.

1 answer

Hello lizhichao,

For creating configuration files at runtime, please consult this part of the CWL User Guide: https://www.commonwl.org/user_guide/14-runtime/index.html

Yes,I have made it. Another quesiton: How can I write inputs to support the one options or more repeats arguments. For example :"-L chr1" and "-L chr1 -L chr2 -L chr3".

Ok。I will try it and i believe it works. take the previous a example.in gatk anlysis module,Haplotypecaller allows :-L target_string ,as well as -L wes.bed(type:file) . How can i deal with it in cwl? type:string?file?

You could define 2 inputs. One for strings, one for files. Both set as optional using ?.

input_A:
  type: string[]?
  inputBinding:
    prefix: -L
input_B:
  type: file?
  inputBinding:
    prefix: -L

emm. so the cwl will verdict the " -L" input format by string or file format?? hahahaha

If you pass input_A to the tool, it's an array of strings. If you pass input_B to the tool, its a file. CWL will not decide by itself.

oh,i think i understand your idea,Tank you ! You means CWL decide the input format by [id] not [prefix]. Is that so?

Yes!

CWL will check which inputs IDs are an the workflow / job and feed them into the tool.

hoping your reply,not vote... Thanks!

Log in to answer this question.