##AddOrReplaceReadGroups task AddOrReplaceReadGroups{ File input_bam String regroup_name String rgid String rglb String rglp String rgpu String rgsm String sort_order String create_index String mem_size Int disk_size command <<< java -jar -Xmx2g /usr/gitc/picard.jar AddOrReplaceReadGroups \ INPUT=${input_bam} \ OUTPUT=${regroup_name}_regroup.bam \ RGID=${rgid} \ #be sure to change from default of 1 RGLB= ${rglb} \ RGPL=${rglp} \ RGPU=${rgpu} \ RGSM=${rgsm} \ SORT_ORDER=${sort_order} \ CREATE_INDEX=${create_index} >>> runtime { docker: "broadinstitute/genomes-in-the-cloud:2.2.4-1469632282" memory: mem_size cpu: "1" disks: "local-disk " + disk_size + " HDD" } output { File regroup_bam="${regroup_name}.bam" } } ##Convert Aligned Bam to uBAM task AlignedBamToUBam { ##call AlignedBamToUBam { input: regroup_bam=AddOrReplaceReadGroups.output_bam} File regroup_bam String unmapped_name command <<< java -Xmx2g -jar /usr/gitc/picard.jar RevertSam \ I=${regroup_bam} \ O=${unmapped_name}_unmapped.bam \ SANITIZE=true \ MAX_DISCARD_FRACTION=0.005 \ #informational; does not affect processing ATTRIBUTE_TO_CLEAR=XT \ ATTRIBUTE_TO_CLEAR=XN \ ATTRIBUTE_TO_CLEAR=AS \ #Picard release of 9/2015 clears AS by default ATTRIBUTE_TO_CLEAR=OC \ ATTRIBUTE_TO_CLEAR=OP \ SORT_ORDER=queryname \ #default RESTORE_ORIGINAL_QUALITIES=true \ #default REMOVE_DUPLICATE_INFORMATION=true \ #default REMOVE_ALIGNMENT_INFORMATION=true #default >>> runtime { docker: "broadinstitute/genomes-in-the-cloud:2.2.4-1469632282" memory: mem_size cpu: "1" disks: "local-disk " + disk_size + " HDD" } output { File unmapped_bam="${unmapped_name}.bam" } } ##MArkIlluminaAdapters task MarkIlluminaAdapters{ ##call {MArkIlluminaAdapters input: unmapped_bam=AlignedBamToUBam.output_bam} File unmapped_bam String adapters_name String adapters_metrics command <<< java -Xmx2g -jar /usr/gitc/picard.jar MarkIlluminaAdapters \ I=${unmapped_bam} \ O=${adapters_name}_adapters.bam \ M=${adapters_metrics} \ #naming required >>> runtime { docker: "broadinstitute/genomes-in-the-cloud:2.2.4-1469632282" memory: mem_size cpu: "1" disks: "local-disk " + disk_size + " HDD" } output { File adapters_bam="${adapters_name}.bam" } } ##Bam to FASTQ task BamToFastq{ File adapters_bam String fastq1_name String fastq2_name command <<< java -Xmx2g -jar /usr/gitc/picard.jar SamToFastq \ I=${adapters_bam} \ FASTQ=${fastq1_name}_1.fastq \ SECOND_END_FASTQ=${fastq2_name}_2.fastq CLIPPING_ATTRIBUTE=XT \ CLIPPING_ACTION=2 \ NON_PF=true \ >>> runtime { docker: "broadinstitute/genomes-in-the-cloud:2.2.4-1469632282" memory: mem_size cpu: "1" disks: "local-disk " + disk_size + " HDD" } output { File fastq1="${fastq1_name}_1.fastq" File fastq2="${fastq2_name}_2.fastq" } } workflow FromExBamToFastq { File input_bam String regroup_name String rgid String rglb String rglp String rgpu String rgsm String sort_order String create_index String mem_size Int disk_size String unmapped_name String adapters_name String adapters_metrics String fastq1_name String fastq2_name call AddOrReplaceReadGroups{ input: input_bam=input_bam, regroup_name=regroup_name, rgid=rgid, rglb=rglb, rglp=rglp, rgpu=rgpu, rgsm=rgsm, sort_order=sort_order, create_index=create_index, mem_size=mem_size, disk_size=disk_size } call AlignedBamToUBam{ input: regroup_bam=AddOrReplaceReadGroups.regroup_bam, unmapped_name=unmapped_name } call MarkIlluminaAdapters{ input: unmapped_bam=AlignedBamToUBam.unmapped_bam, adapters_name=adapters_name, adapters_metrics=adapters_metrics } call BamToFastq{ input: adapters_bam=MarkIlluminaAdapters.adapters_bam, fastq1_name=fastq1_name, fastq2_name=fastq2_name } }