4.4.8

4.4.8


O2pdT9LxApmvveWwJNLhaCrQ5UKoE8T0vK5fPqJFOuiKIUWdsRPb+rsVWH3+cAJ09ZSUY+lIK6LLDZN+USXWb6jzoyUk7YmEKqXRM4svu5l2tKPBThiGTCMp+PcxUc2QxPk9yalqnYRvzvVBD+1ObgZ0mwZTJpCFcnPIQJ9+/16Ov2qc2q3XOSAWUvmvWD7axPlk5QlCB4QTpzeIA7vNE1dOfD2HtKw9ua7U/OXmchFiiovY9z17AZd6gid4mmQ/wpTMupmbzUfM1X+UOv/74d9+FChUqVcaqY0Mg0ClSxk0jy0254xeyXWGW/o0OMmDUSri5feKzXcesGOOvGPMFA==


# vim: set ts=2 sw=2 sts=2 et:

class: Workflow

cwlVersion: v1.0


requirements:

# - class: DockerRequirement

#   dockerPull: parseq/stepik-variant-calling-tools-cwl

 - class: InlineJavascriptRequirement

 - class: StepInputExpressionRequirement

 - class: SubworkflowFeatureRequirement


inputs:

 input_bam:

   type: File

 reference_genome:

   type: File


outputs:

 out_fb:

   type: File

   outputSource: vc_freebayes_index/out_gz

 out_hp:

   type: File

   outputSource: vc_haplotypecaller_index/out_gz

 out_st:

   type: File

   outputSource: vc_samtools_index/out_gz

 out_int:

   type: File

   outputSource: intersect_variants/out

 out_count:

   type: File

   outputSource: count_variants/out


steps:

 reference_dict:

   run:

     class: CommandLineTool

     requirements:

       - class: InlineJavascriptRequirement

       - class: InitialWorkDirRequirement

         listing:

           - $(inputs.ref)

     inputs:

       ref:

         type: File

     outputs:

       out:

         type: File

         outputBinding:

           glob: 22.dict

     arguments:

       - java

       - -jar

       - /opt/picard/picard.jar

       - CreateSequenceDictionary

       - prefix: R=

         valueFrom: $(inputs.ref)

       - O=22.dict


   in:

     ref: reference_genome

   out:

     [out]


 reference_index:

   run:

     class: CommandLineTool

     requirements:

       - class: InlineJavascriptRequirement

       - class: InitialWorkDirRequirement

         listing:

           - $(inputs.ref)

     inputs:

       ref:

         type: File

         inputBinding:

           position: 2

           valueFrom: $(self.basename)

     outputs:

       out:

         type: File

         outputBinding:

           glob: $(inputs.ref.basename).fai

     arguments: [samtools, faidx]


   in:

     ref: reference_genome

   out:

     [out]


 index_bam:

   run:

     class: CommandLineTool

     inputs:

       bam:

         type: File

     outputs:

       out:

         type: File

         outputBinding:

           glob: $(inputs.bam.basename).bai

    

     arguments: [samtools, index, $(inputs.bam), $(inputs.bam.basename).bai]


   in:

     bam: input_bam

   out:

     [out]


 vc_freebayes:

   run:

     class: CommandLineTool

     requirements:

       - class: InitialWorkDirRequirement

         listing:

           - $(inputs.ref)

           - $(inputs.ref_fai)

     inputs:

       ref:

         type: File

         inputBinding:

           position: 2

           valueFrom: $(self.basename)

       ref_fai:

         type: File

       bam:

         type: File

     outputs:

       out:

         type: File

         outputBinding:

           glob: fb$(inputs.bam.basename).vcf

     arguments:

       - freebayes

       - -f

       - position: 3

         valueFrom: $(inputs.bam)

     stdout: fb$(inputs.bam.basename).vcf


   in:

     ref: reference_genome

     ref_fai: reference_index/out

     bam: input_bam

   out:

     [out]


 vc_freebayes_index:

   run: vc_index.cwl

   in:

     vcf: vc_freebayes/out

   out:

     [out_gz, out_tbi]


 vc_haplotypecaller:

   run:

     class: CommandLineTool

     requirements:

       - class: InitialWorkDirRequirement

         listing:

           - $(inputs.ref)

           - $(inputs.ref_fai)

           - $(inputs.ref_dict)

           - $(inputs.bam)

           - $(inputs.bam_index)

     inputs:

       ref:

         type: File

         inputBinding:

           position: 4

           valueFrom: $(self.basename)

       ref_fai:

         type: File

       ref_dict:

         type: File

       bam:

         type: File

         inputBinding:

           position: 8

           valueFrom: $(self.basename)

       bam_index:

         type: File

     outputs:

       out:

         type: File

         outputBinding:

           glob: hp$(inputs.bam.basename).vcf

     arguments:

       - java

       - -jar

       - /opt/gatk/GenomeAnalysisTK.jar

       - -R

       - position: 5

         valueFrom: -T

       - position: 6

         valueFrom: HaplotypeCaller

       - position: 7

         valueFrom: -I

       - position: 9

         valueFrom: -o

       - position: 9

         valueFrom: hp$(inputs.bam.basename).vcf


   in:

     ref: reference_genome

     ref_fai: reference_index/out

     ref_dict: reference_dict/out

     bam: input_bam

     bam_index: index_bam/out

   out:

     [out]


 vc_haplotypecaller_index:

   run:

     vc_index.cwl

   in:

     vcf: vc_haplotypecaller/out

   out:

     [out_gz, out_tbi]


 vc_samtools:

   run:

     class: CommandLineTool

     requirements:

       - class: InitialWorkDirRequirement

         listing:

           - $(inputs.ref)

           - $(inputs.ref_fai)

           - $(inputs.ref_dict)

           - $(inputs.bam)

           - $(inputs.bam_index)

     inputs:

       ref:

         type: File

         inputBinding:

           position: 3

           valueFrom: $(self.basename)

       ref_fai:

         type: File

       ref_dict:

         type: File

       bam:

         type: File

         inputBinding:

           position: 4

           valueFrom: $(self.basename)

       bam_index:

         type: File

     outputs:

       out:

         type: File

         outputBinding:

           glob: st$(inputs.bam.basename).vc

     arguments:

       - samtools

       - mpileup

       - -uf


     stdout: st$(inputs.bam.basename).vc


   in:

     ref: reference_genome

     ref_fai: reference_index/out

     ref_dict: reference_dict/out

     bam: input_bam

     bam_index: index_bam/out

   out:

     [out]


 vc_samtools2:

   run:

     class: CommandLineTool

     inputs:

       inp:

         type: File

     outputs:

       out:

         type: File

         outputBinding:

           glob: st$(inputs.inp.basename)f

     arguments: [bcftools, view, -vcg, $(inputs.inp)]

     stdout: st$(inputs.inp.basename)f

   in:

     inp: vc_samtools/out

   out:

     [out]


 vc_samtools_index:

   run: vc_index.cwl

   in:

     vcf: vc_samtools2/out

   out:

     [out_gz, out_tbi]


 intersect_variants:

   run:

     class: CommandLineTool

     requirements:

       - class: InitialWorkDirRequirement

         listing:

           - $(inputs.inp1)

           - $(inputs.inp2)

           - $(inputs.inp3)

           - $(inputs.inp1_tbi)

           - $(inputs.inp2_tbi)

           - $(inputs.inp3_tbi)

     inputs:

       inp1:

         type: File

         inputBinding:

           position: 4

           valueFrom: $(self.basename)

       inp1_tbi:

         type: File

       inp2:

         type: File

         inputBinding:

           position: 5

           valueFrom: $(self.basename)

       inp2_tbi:

         type: File

       inp3:

         type: File

         inputBinding:

           position: 6

           valueFrom: $(self.basename)

       inp3_tbi:

         type: File

     outputs:

       out:

         type: File

         outputBinding:

           glob: $(inputs.inp1.basename)_common.vcf

     arguments:

       - vcf-isec

       - -f

       - -n

       - '+2'

     stdout: $(inputs.inp1.basename)_common.vcf

   in:

     inp1: vc_freebayes_index/out_gz

     inp1_tbi: vc_freebayes_index/out_tbi

     inp2: vc_haplotypecaller_index/out_gz

     inp2_tbi: vc_haplotypecaller_index/out_tbi

     inp3: vc_samtools_index/out_gz

     inp3_tbi: vc_samtools_index/out_tbi

   out:

     [out]


 count_variants:

   run:

     class: CommandLineTool

     inputs:

       inp:

         type: File

       bam:

         type: File

     outputs:

       out:

         type: File

         outputBinding:

           glob: $(inputs.bam.nameroot)_count.txt

     arguments: [grep, -v, '^\s*\(#\|$\)', -c, $(inputs.inp)]

     stdout: $(inputs.bam.nameroot)_count.txt


   in:

     inp: intersect_variants/out

     bam: input_bam

   out:

     [out]


# vim: set ts=2 sw=2 sts=2 et:

# vc_index.cwl

class: Workflow

cwlVersion: v1.0


#requirements:

# - class: DockerRequirement

#   dockerPull: parseq/stepik-variant-calling-tools-cwl


inputs:

 vcf:

   type: File

outputs:

 out_gz:

   type: File

   outputSource: vc_bgzip/out

 out_tbi:

   type: File

   outputSource: vc_index/out


steps:

 vc_bgzip:

   run:

     class: CommandLineTool

     requirements:

       - class: InitialWorkDirRequirement

         listing:

           - $(inputs.inp)

     inputs:

       inp:

         type: File

         inputBinding:

           position: 1

           valueFrom: $(self.basename)

     outputs:

       out:

         type: File

         outputBinding:

           glob: $(inputs.inp.basename).gz

     baseCommand: bgzip


   in:

     inp: vcf

   out:

     [out]


 vc_index:

   run:

     class: CommandLineTool

     requirements:

       - class: InitialWorkDirRequirement

         listing:

           - $(inputs.inp)

     inputs:

       inp:

         type: File

         inputBinding:

           position: 3

           valueFrom: $(self.basename)

     outputs:

       out:

         type: File

         outputBinding:

           glob: $(inputs.inp.basename).tbi

     arguments: [tabix, -p, vcf]


   in:

     inp: vc_bgzip/out

   out:

     [out]


# vim: set ts=2 sw=2 sts=2 et:

# count_variants.cwl

class: CommandLineTool

cwlVersion: v1.0


inputs:

 bam:

   type: File

 vcf:

   type: File

 script:

   type: string

   default: |

     import sys

     with open(sys.argv[2], "w") as fout, open(sys.argv[1], "r") as fin:

       c = 0

       for line in fin:

         if not line.strip().startswith("#"):

           c += 1

       fout.write(str(c))


arguments: [python, -c, $(inputs.script), $(inputs.vcf),

       $(inputs.bam.nameroot)_count.txt]


outputs:

 out:

   type: File

   outputBinding:

     glob: $(inputs.bam.nameroot)_count.txt

Report Page