#!/usr/bin/env cwl-runner cwlVersion: v1.0 class: Workflow label: "Varscan Workflow" requirements: - class: SubworkflowFeatureRequirement - class: MultipleInputFeatureRequirement - class: StepInputExpressionRequirement inputs: reference: type: - string - File secondaryFiles: [.fai, ^.dict] bam: type: File secondaryFiles: [.bai, ^.bai] interval_list: type: File strand_filter: type: int? default: 0 min_coverage: type: int? default: 8 min_var_freq: type: float? default: 0.1 min_reads: type: int? default: 2 p_value: type: float? default: 0.99 max_normal_freq: type: float? sample_name: type: string outputs: unfiltered_vcf: type: File outputSource: filter/unfiltered_vcf secondaryFiles: [.tbi] filtered_vcf: type: File outputSource: filter/filtered_vcf secondaryFiles: [.tbi] steps: intervals_to_bed: run: ../tools/intervals_to_bed.cwl in: interval_list: interval_list out: [interval_bed] varscan: run: ../tools/varscan_germline.cwl in: reference: reference bam: bam roi_bed: intervals_to_bed/interval_bed strand_filter: strand_filter min_coverage: min_coverage min_var_freq: min_var_freq min_reads: min_reads p_value: p_value sample_name: sample_name out: [variants] bgzip_and_index: run: bgzip_and_index.cwl in: vcf: varscan/variants out: [indexed_vcf] filter: run: fp_filter.cwl in: reference: reference bam: bam vcf: bgzip_and_index/indexed_vcf variant_caller: valueFrom: "varscan" sample_name: sample_name min_var_freq: min_var_freq out: [unfiltered_vcf, filtered_vcf]