common-workflow-language / cwltool

Common Workflow Language reference implementation
https://cwltool.readthedocs.io/
Apache License 2.0
337 stars 231 forks source link

Not producing cwl:source links for valid workflow in --print-rdf #431

Closed MarkRobbo closed 6 years ago

MarkRobbo commented 7 years ago

Expected Behavior

cwl:source predicates exist to define the links between steps

Actual Behavior

No such links are present so steps are disconnected:

cwlviewer graph

Workflow Code

https://github.com/common-workflow-language/workflows/tree/master/workflows/lobSTR/lobSTR-workflow.cwl

cwltool --print-rdf https://github.com/common-workflow-language/workflows/tree/master/workflows/lobSTR/lobSTR-workflow.cwl

Produces:

@prefix CommandLineBinding: <https://w3id.org/cwl/cwl#CommandLineBinding/> .
@prefix CommandLineTool: <https://w3id.org/cwl/cwl#CommandLineTool/> .
@prefix CommandOutputBinding: <https://w3id.org/cwl/cwl#CommandOutputBinding/> .
@prefix CreateFileRequirement: <https://w3id.org/cwl/cwl#CreateFileRequirement/> .
@prefix DockerRequirement: <https://w3id.org/cwl/cwl#DockerRequirement/> .
@prefix EnvVarRequirement: <https://w3id.org/cwl/cwl#EnvVarRequirement/> .
@prefix EnvironmentDef: <https://w3id.org/cwl/cwl#EnvironmentDef/> .
@prefix ExpressionTool: <https://w3id.org/cwl/cwl#ExpressionTool/> .
@prefix File: <https://w3id.org/cwl/cwl#File/> .
@prefix FileDef: <https://w3id.org/cwl/cwl#FileDef/> .
@prefix InlineJavascriptRequirement: <https://w3id.org/cwl/cwl#InlineJavascriptRequirement/> .
@prefix JsonldPredicate: <https://w3id.org/cwl/salad#JsonldPredicate/> .
@prefix LinkMergeMethod: <https://w3id.org/cwl/cwl#LinkMergeMethod/> .
@prefix ResourceRequirement: <https://w3id.org/cwl/cwl#ResourceRequirement/> .
@prefix SaladRecordSchema: <https://w3id.org/cwl/salad#SaladRecordSchema/> .
@prefix ScatterMethod: <https://w3id.org/cwl/cwl#ScatterMethod/> .
@prefix SchemaBase: <https://w3id.org/cwl/cwl#SchemaBase/> .
@prefix SchemaDefRequirement: <https://w3id.org/cwl/cwl#SchemaDefRequirement/> .
@prefix SchemaDefinedType: <https://w3id.org/cwl/salad#SchemaDefinedType/> .
@prefix Sink: <https://w3id.org/cwl/cwl#Sink/> .
@prefix Workflow: <https://w3id.org/cwl/cwl#Workflow/> .
@prefix cwl: <https://w3id.org/cwl/cwl#> .
@prefix ns1: <rdfs:> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sld: <https://w3id.org/cwl/salad#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl> a cwl:Workflow ;
    Workflow:steps <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#allelotype>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#lobSTR>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#samindex>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#samsort> ;
    cwl:cwlVersion <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/v1.1.0-dev1> ;
    cwl:hints [ a cwl:DockerRequirement ;
            DockerRequirement:dockerImageId "7e0c0ae3bf4e70442f9b8eee816ec23426d9e1169a2925316e5c932745e21613" ;
            DockerRequirement:dockerLoad "https://workbench.qr1hi.arvadosapi.com/collections/download/qr1hi-4zz18-x2ae13tsx5jqg8d/1nduktd8dpvhdpgsva82lje0i710kgzb6rttks5jldx7s2y7k9/7e0c0ae3bf4e70442f9b8eee816ec23426d9e1169a2925316e5c932745e21613.tar" ] ;
    cwl:inputs <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#noise_model>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#output_prefix>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#p1>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#p2>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#reference>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#rg-lib>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#rg-sample>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#strinfo> ;
    cwl:outputs <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#bam>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#bam_stats>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#vcf>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#vcf_stats> .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl> a cwl:CommandLineTool ;
    cwl:arguments ( "--noweb" ) ;
    cwl:baseCommand ( "allelotype" "--command" "classify" ) ;
    cwl:cwlVersion <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/v1.1.0-dev1> ;
    cwl:inputs <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#bam>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#noise_model>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#output_prefix>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#reference>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#strinfo> ;
    cwl:outputs <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#vcf>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#vcf_stats> ;
    cwl:requirements [ a cwl:InlineJavascriptRequirement ] ;
    sld:doc "Run lobSTR allelotype classifier." .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#bam> cwl:inputBinding [ CommandLineBinding:prefix "--bam" ] ;
    cwl:secondaryFiles ".bai" ;
    sld:doc """BAM file to analyze. Should have a unique read group and be sorted and indexed.
""" ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#noise_model> cwl:inputBinding [ CommandLineBinding:prefix "--noise_model" ;
            cwl:valueFrom """${ return {"path": self.path.match(/(.*)\\.stepmodel/)[1], "class": "File"}; }
""" ] ;
    cwl:secondaryFiles "^.stuttermodel" ;
    sld:doc """File to read noise model parameters from (.stepmodel)
""" ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#output_prefix> cwl:inputBinding [ CommandLineBinding:prefix "--out" ] ;
    sld:doc "Prefix for output files. will output prefix.vcf and prefix.genotypes.tab" ;
    sld:type xsd:string .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#reference> cwl:inputBinding [ CommandLineBinding:prefix "--index-prefix" ;
            cwl:valueFrom """${ return {"path": self.path.match(/(.*)ref\\.fasta/)[1], "class": "File"}; }
""" ] ;
    cwl:secondaryFiles "${return self.location.replace(/(.*)ref\\.fasta/, \"$1chromsizes.tab\")}",
        "${return self.location.replace(/(.*)ref\\.fasta/, \"$1mergedref.bed\")}",
        "${return self.location.replace(/(.*)ref\\.fasta/, \"$1ref_map.tab\")}",
        ".amb",
        ".ann",
        ".bwt",
        ".pac",
        ".rbwt",
        ".rpac",
        ".rsa" ;
    sld:doc "lobSTR's bwa reference files" ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#strinfo> cwl:inputBinding [ CommandLineBinding:prefix "--strinfo" ] ;
    sld:doc """File containing statistics for each STR.
""" ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#vcf> cwl:outputBinding [ CommandOutputBinding:glob "$(inputs['output_prefix'] + '.vcf')" ] ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl#vcf_stats> cwl:outputBinding [ CommandOutputBinding:glob "$(inputs['output_prefix'] + '.allelotype.stats')" ] ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl> a cwl:CommandLineTool ;
    cwl:arguments ( "--verbose" "--noweb" [ cwl:valueFrom """${
  var r = /.*(\\.fastq|\\.fq)(\\.gz)?$/i;
  var m;
  if (inputs['files']) {
    m = r.exec(inputs.files[0].path);
  } else {
    m = r.exec(inputs.p1[0].path);
  }
  if (m) {
    if (m[2]) {
      return ["--fastq", "--gzip"];
    } else {
      return "--fastq";
    }
  } else {
    return null;
  }
}
""" ] [ cwl:valueFrom """${
  if (inputs['files'] && (/.*\\.bam$/i).test(inputs['files'][0].path) && !inputs.bampair) {
    return "--bam";
  } else {
    return null;
  }
}
""" ] ) ;
    cwl:baseCommand ( "lobSTR" ) ;
    cwl:cwlVersion <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/v1.1.0-dev1> ;
    cwl:inputs <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#bampair>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#bwaq>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#e>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#entropy-threshold>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#extend>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#fft-window-size>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#fft-window-step>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#files>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#g>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#maq>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#max-diff-ref>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#max-hits-quit-aln>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#max-read-length>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#maxflank>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#min-flank-allow-mismatch>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#min-read-length>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#minflank>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#mismatch>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#multi>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#oldillumina>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#output_prefix>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#p1>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#p2>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#r>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#reference>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#rg-lib>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#rg-sample>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#u> ;
    cwl:outputs <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#bam>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#bam_stats> ;
    cwl:requirements [ a cwl:InlineJavascriptRequirement ] ;
    sld:doc "lobSTR is a tool for profiling Short Tandem Repeats (STRs) from high throughput sequencing data." ;
    ns1:
 "lobSTR" .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#bam> cwl:outputBinding [ CommandOutputBinding:glob "$(inputs['output_prefix'] + '.aligned.bam')" ] ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#bam_stats> cwl:outputBinding [ CommandOutputBinding:glob "$(inputs['output_prefix'] + '.aligned.stats')" ] ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#bampair> cwl:inputBinding [ CommandLineBinding:prefix "--bampair" ] ;
    sld:doc """Reads are in BAM format and are paired-end. NOTE: BAM file MUST be sorted or collated by read name.
""" ;
    sld:type xsd:boolean,
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#bwaq> cwl:inputBinding [ CommandLineBinding:prefix "--bwaq" ] ;
    sld:doc "trim reads based on quality score. Same as the -q parameter in BWA" ;
    sld:type xsd:int,
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#e> cwl:default 1 ;
    cwl:inputBinding [ CommandLineBinding:prefix "-e" ] ;
    sld:doc "Maximum number of gap extends allowed in each flanking region" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#entropy-threshold> cwl:default 4.5e-01 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--entropy-threshold" ] ;
    sld:doc "Threshold score to call a window periodic" ;
    sld:type xsd:float .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#extend> cwl:default 1000 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--extend" ] ;
    sld:doc "Number of bp the reference was extended when building the index. Must be same as --extend parameter used to run lobstr_index.py" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#fft-window-size> cwl:default 16 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--fft-window-size" ] ;
    sld:doc "Size of sliding entropy window" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#fft-window-step> cwl:default 4 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--fft-window-step" ] ;
    sld:doc "Step size of the sliding window" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#files> cwl:inputBinding [ CommandLineBinding:itemSeparator "," ;
            CommandLineBinding:position 2 ;
            CommandLineBinding:prefix "--files" ] ;
    sld:doc "List of files of single ends in fasta, fastq, or BAM files to align. Also use this parameter to specify paired-end BAM files to align." ;
    sld:type [ sld:items cwl:File ;
            sld:type sld:array ],
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#g> cwl:default 1 ;
    cwl:inputBinding [ CommandLineBinding:prefix "-g" ] ;
    sld:doc "Maximum number of gap opens allowed in each flanking region" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#maq> cwl:default 100 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--mapq" ] ;
    sld:doc "maximum allowed mapq score calculated as the sum of qualities at base mismatches" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#max-diff-ref> cwl:default 50 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--max-diff-ref" ] ;
    sld:doc "Only report reads differing by at most this number of bp from the reference allele" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#max-hits-quit-aln> cwl:default 1000 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--max-hits-quit-aln" ] ;
    sld:doc "Stop alignment search after this many hits found. Use -1 for no limit." ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#max-read-length> cwl:default 1024 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--min-read-length" ] ;
    sld:doc "Don't process reads longer than this" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#maxflank> cwl:default 100 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--maxflank" ] ;
    sld:doc "Length to trim flanking regions to before aligning" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#min-flank-allow-mismatch> cwl:default 30 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--min-flank-allow-mismatch" ] ;
    sld:doc "Don't allow mismatches if aligning flanking regions shorter than this" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#min-read-length> cwl:default 45 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--min-read-length" ] ;
    sld:doc "Don't process reads shorter than this" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#minflank> cwl:default 8 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--minflank" ] ;
    sld:doc "Minimum length of flanking region to try to align" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#mismatch> cwl:default 1 ;
    cwl:inputBinding [ CommandLineBinding:prefix "--mismatch" ] ;
    sld:doc "allowed edit distance in either flanking region" ;
    sld:type xsd:int .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#multi> cwl:inputBinding [ CommandLineBinding:prefix "--multi" ] ;
    sld:doc "Report reads mapping to multiple genomic locations" ;
    sld:type xsd:boolean,
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#oldillumina> cwl:inputBinding [ CommandLineBinding:prefix "--oldillumina" ] ;
    sld:doc """specifies that base pair quality scores are reported in the old Phred
format (Illumina 1.3+, Illumina 1.5+) where quality scores are given as
Phred + 64 rather than Phred + 33
""" ;
    sld:type xsd:boolean,
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#output_prefix> cwl:inputBinding [ CommandLineBinding:prefix "--out" ] ;
    sld:doc "prefix for output files. will output prefix.aligned.bam and prefix.aligned.stats" ;
    sld:type xsd:string .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#p1> cwl:inputBinding [ CommandLineBinding:itemSeparator "," ;
            CommandLineBinding:position 2 ;
            CommandLineBinding:prefix "--p1" ] ;
    sld:doc "list of files containing the first end of paired end reads in fasta or fastq format" ;
    sld:type [ sld:items cwl:File ;
            sld:type sld:array ],
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#p2> cwl:inputBinding [ CommandLineBinding:itemSeparator "," ;
            CommandLineBinding:position 3 ;
            CommandLineBinding:prefix "--p2" ] ;
    sld:doc "list of files containing the second end of paired end reads in fasta or fastq format" ;
    sld:type [ sld:items cwl:File ;
            sld:type sld:array ],
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#r> cwl:default -1 ;
    cwl:inputBinding [ CommandLineBinding:prefix "-e" ] ;
    sld:doc "fraction of missing alignments given 2% uniform base error rate. Ignored if --mismatch is set" ;
    sld:type xsd:float .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#reference> cwl:inputBinding [ CommandLineBinding:prefix "--index-prefix" ;
            cwl:valueFrom """${ return {"path": self.path.match(/(.*)ref\\.fasta/)[1], "class": "File"}; }
""" ] ;
    cwl:secondaryFiles "${return self.location.replace(/(.*)ref\\.fasta/, \"$1chromsizes.tab\");}",
        "${return self.location.replace(/(.*)ref\\.fasta/, \"$1mergedref.bed\");}",
        "${return self.location.replace(/(.*)ref\\.fasta/, \"$1ref_map.tab\");}",
        ".amb",
        ".ann",
        ".bwt",
        ".pac",
        ".rbwt",
        ".rpac",
        ".rsa",
        ".sa" ;
    sld:doc "lobSTR's bwa reference files" ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#rg-lib> cwl:inputBinding [ CommandLineBinding:prefix "--rg-lib" ] ;
    sld:doc "Use this in the read group LB tag" ;
    sld:type xsd:string .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#rg-sample> cwl:inputBinding [ CommandLineBinding:prefix "--rg-sample" ] ;
    sld:doc "Use this in the read group SM tag" ;
    sld:type xsd:string .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl#u> cwl:inputBinding [ CommandLineBinding:prefix "-u" ] ;
    sld:doc "only report reads different by an integer number of copy numbers from the reference allele" ;
    sld:type xsd:boolean,
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#allelotype> cwl:run <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/allelotype.cwl> .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#bam> sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#bam_stats> sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#lobSTR> cwl:run <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-tool.cwl> .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#noise_model> cwl:secondaryFiles "^.stuttermodel" ;
    sld:doc "File to read noise model parameters from (.stepmodel)" ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#> sld:doc "prefix for output files. will output prefix.aligned.bam and prefix.aligned.stats" ;
    sld:type xsd:string .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#p1> sld:doc "list of files containing the first end of paired end reads in fasta or fastq format" ;
    sld:type [ sld:items cwl:File ;
            sld:type sld:array ],
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#p2> sld:doc "list of files containing the second end of paired end reads in fasta or fastq format" ;
    sld:type [ sld:items cwl:File ;
            sld:type sld:array ],
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#reference> sld:doc "lobSTR's bwa reference files" ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#rg-lib> sld:doc "Use this in the read group LB tag" ;
    sld:type xsd:string .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#rg-sample> sld:doc "Use this in the read group SM tag" ;
    sld:type xsd:string .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#samindex> cwl:run <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-index.cwl> .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#samsort> cwl:run <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl> .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#strinfo> sld:doc "File containing statistics for each STR." ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#vcf> sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/lobSTR-workflow.cwl#vcf_stats> sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-index.cwl> a cwl:CommandLineTool ;
    cwl:arguments ( "indexed.bam" ) ;
    cwl:baseCommand ( "samtools" "index" ) ;
    cwl:cwlVersion <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/v1.1.0-dev1> ;
    cwl:inputs <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-index.cwl#input> ;
    cwl:outputs <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-index.cwl#bam_with_bai> ;
    cwl:requirements [ a <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/InitialWorkDirRequirement> ] ;
    sld:doc "Invoke 'samtools index' to create a 'BAI' index (samtools 1.19)" .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-index.cwl#bam_with_bai> cwl:outputBinding [ CommandOutputBinding:glob "indexed.bam" ] ;
    cwl:secondaryFiles ".bai" ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-index.cwl#input> sld:doc "Input bam file." ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl> a cwl:CommandLineTool ;
    cwl:arguments ( "-f" ) ;
    cwl:baseCommand ( "samtools" "sort" ) ;
    cwl:cwlVersion <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/v1.1.0-dev1> ;
    cwl:inputs <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#compression_level>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#input>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#memory>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#output_name>,
        <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#sort_by_name> ;
    cwl:outputs <https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#output_file> ;
    sld:doc "Invoke 'samtools sort' (samtools 1.19)" .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#compression_level> cwl:inputBinding [ CommandLineBinding:prefix "-l" ] ;
    sld:doc """Set the desired compression level for the final output file, ranging from
0 (uncompressed) or 1 (fastest but minimal compression) to 9 (best
compression but slowest to write), similarly to gzip(1)'s compression
level setting.

If -l is not used, the default compression level will apply.
""" ;
    sld:type xsd:int,
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#input> cwl:inputBinding [ CommandLineBinding:position 1 ] ;
    sld:doc "Input bam file." ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#memory> cwl:inputBinding [ CommandLineBinding:prefix "-m" ] ;
    sld:doc """Approximately the maximum required memory per thread, specified  in
bytes.
""" ;
    sld:type xsd:int,
        sld:null .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#output_file> cwl:outputBinding [ CommandOutputBinding:glob "$(inputs['output_name'])" ] ;
    sld:type cwl:File .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#output_name> cwl:inputBinding [ CommandLineBinding:position 2 ] ;
    sld:doc "Desired output filename." ;
    sld:type xsd:string .

<https://raw.githubusercontent.com/common-workflow-language/workflows/master/workflows/lobSTR/samtools-sort.cwl#sort_by_name> cwl:inputBinding [ CommandLineBinding:prefix "-n" ] ;
    sld:doc "Sort by read names (i.e., the QNAME field) rather than by chromosomal coordinates." ;
    sld:type xsd:boolean,
        sld:null .

cwltool version

MarkRobbo commented 7 years ago

Found another example of this:

https://github.com/Duke-GCB/GGR-cwl/blob/master/ChIP-seq_pipeline/03-map-pe.cwl

http://i.imgur.com/9Aq33qW.png

MarkRobbo commented 7 years ago

https://github.com/bmeg/funnel-client/blob/master/test/hashsplitter-workflow.cwl

Seems like a draft-3 exclusive bug

mr-c commented 7 years ago

@MarkRobbo That'd be welcome news, we're deprecating draft-3 and draft-2 from the ref runner

anton-khodak commented 6 years ago

Closed in #520