# HG changeset patch # User devteam # Date 1437501062 14400 # Node ID fbf4608310360d1106a939584d7d3f99af2793e2 # Parent ac30bfd3e2a8ed2163ff605f1c67a74740bd90c7 planemo upload commit d0e3412c58bd3bdc1a483a1e2f7f9c2aa5c87a1f-dirty diff -r ac30bfd3e2a8 -r fbf460831036 bwa-mem.xml --- a/bwa-mem.xml Thu Jun 18 17:35:40 2015 -0400 +++ b/bwa-mem.xml Tue Jul 21 13:51:02 2015 -0400 @@ -1,7 +1,8 @@ - + - map medium and long reads (> 100 bp) against reference genome + read_group_macros.xml bwa_macros.xml @@ -103,7 +104,16 @@ #end if - #if str( $rg.rg_selector ) == "set": + ## Handle read group options... + @define_read_group_helpers@ + #if str( $fastq_input.fastq_input_selector ) == "paired": + #set $rg_auto_name = $read_group_name_default($fastq_input.fastq_input1, $fastq_input.fastq_input2) + #else: + #set $rg_auto_name = $read_group_name_default($fastq_input.fastq_input1) + #end if + @set_use_rg_var@ + @set_read_group_vars@ + #if $use_rg @set_rg_string@ -R '$rg_string' #end if @@ -189,7 +199,7 @@ - + diff -r ac30bfd3e2a8 -r fbf460831036 bwa.xml --- a/bwa.xml Thu Jun 18 17:35:40 2015 -0400 +++ b/bwa.xml Tue Jul 21 13:51:02 2015 -0400 @@ -1,7 +1,8 @@ - + - map short reads (< 100 bp) against reference genome + read_group_macros.xml bwa_macros.xml #if str( $analysis_type.analysis_type_selector ) == "full": @@ -29,7 +30,7 @@ #end if - #if str( $rg.rg_selector ) == "set": + #if $use_rg: @set_rg_string@ -r '$rg_string' #end if @@ -109,6 +110,18 @@ #set $reference_fasta_filename = str( $reference_source.ref_file.fields.path ) #end if + ## setup vars for rg handling... + @define_read_group_helpers@ + #if str( $input_type.input_type_selector ) == "paired": + #set $rg_auto_name = $read_group_name_default($input_type.fastq_input1, $input_type.fastq_input2) + #elif str( $input_type.input_type_selector ) in ["single_bam", "paired_bam"]: + #set $rg_auto_name = $read_group_name_default($input_type.bam_input) + #else + #set $rg_auto_name = $read_group_name_default($input_type.fastq_input1) + #end if + @set_use_rg_var@ + @set_read_group_vars@ + ## Begin bwa command line ####### Fastq paired @@ -327,7 +340,7 @@ - + diff -r ac30bfd3e2a8 -r fbf460831036 bwa_macros.xml --- a/bwa_macros.xml Thu Jun 18 17:35:40 2015 -0400 +++ b/bwa_macros.xml Tue Jul 21 13:51:02 2015 -0400 @@ -1,34 +1,18 @@ - + read_group_macros.xml - #set $rg_string = "@RG\tID:" + str($rg.ID) + "\tSM:" + str($rg.SM) + "\tPL:" + str($rg.PL) - #if $rg.LB - #set $rg_string += "\tLB:" + str($rg.LB) - #end if - #if $rg.CN - #set $rg_string += "\tCN:" + str($rg.CN) - #end if - #if $rg.DS - #set $rg_string += "\tDS:" + str($rg.DS) - #end if - #if $rg.DT - #set $rg_string += "\tDT:" + str($rg.DT) - #end if - #if $rg.FO - #set $rg_string += "\tFO:" + str($rg.FO) - #end if - #if $rg.KS - #set $rg_string += "\tKS:" + str($rg.KS) - #end if - #if $rg.PG - #set $rg_string += "\tPG:" + str($rg.PG) - #end if - #if str($rg.PI) - #set $rg_string += "\tPI:" + str($rg.PI) - #end if - #if $rg.PU - #set $rg_string += "\tPU:" + str($rg.PU) - #end if + #set $rg_string = "@RG\tID:" + str($rg_id) + #set $rg_string += $format_read_group("\tSM:", $rg_sm) + #set $rg_string += $format_read_group("\tPL:", $rg_pl) + #set $rg_string += $format_read_group("\tLB:", $rg_lb) + #set $rg_string += $format_read_group("\tCN:", $rg_cn) + #set $rg_string += $format_read_group("\tDS:", $rg_ds) + #set $rg_string += $format_read_group("\tDT:", $rg_dt) + #set $rg_string += $format_read_group("\tFO:", $rg_fo) + #set $rg_string += $format_read_group("\tKS:", $rg_ks) + #set $rg_string += $format_read_group("\tPG:", $rg_pg) + #set $rg_string += $format_read_group("\tPI:", $rg_pi) + #set $rg_string += $format_read_group("\tPU:", $rg_pu) @@ -108,42 +92,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \*|[ACMGRSVTWYHKDBN]+$ - - - - - - - - - - - diff -r ac30bfd3e2a8 -r fbf460831036 read_group_macros.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/read_group_macros.xml Tue Jul 21 13:51:02 2015 -0400 @@ -0,0 +1,294 @@ + + + +#import re +#def identifier_or_name($input1) + #if hasattr($input1, 'element_identifier') + #return $input1.element_identifier + #else + #return $input1.name.rstrip('.gz').rstrip('.fastq').rstrip('.fq') + #end if +#end def + +#def clean(name) + #set $name_clean = re.sub('[^\w\-_\.]', '_', $name) + #return $name_clean +#end def + +#def read_group_name_default($input1, $input2=None) + #if $input2 is None + #return $clean($identifier_or_name($input1)) + #else + #import itertools + #set $input_name1 = $clean($identifier_or_name($input1)) + #set $input_name2 = $clean($identifier_or_name($input2)) + #set $common_prefix = ''.join([c[0] for c in itertools.takewhile(lambda x: all(x[0] == y for y in x), itertools.izip(*[$input_name1, $input_name2]))]) + #if len($common_prefix) > 3 + #return $common_prefix + #else + #return $input_name1 + #end if + #end if +#end def + +#def format_read_group(prefix, value, quote='', arg='') + #if $value + #return $arg + $quote + $prefix + $value + $quote + #else + #return '' + #end if +#end def + +#def rg_param(name) + #if $varExists("rg") + #return $rg.get($name, None) + #else + #return $getVar($name, None) + #end if +#end def + +#set $use_rg = True + + + +#if $use_rg + #if $rg_param('read_group_id_conditional') is None + #set $rg_id = $rg_auto_name + #elif $rg_param('read_group_id_conditional').do_auto_name + #set $rg_id = $rg_auto_name + #else + #set $rg_id = str($rg_param('read_group_id_conditional').ID) + #end if + + #if $rg_param('read_group_sm_conditional') is None + #set $rg_sm = '' + #elif $rg_param('read_group_sm_conditional').do_auto_name + #set $rg_sm = $rg_auto_name + #else + #set $rg_sm = str($rg_param('read_group_sm_conditional').SM) + #end if + + #if $rg_param('PL') + #set $rg_pl = str($rg_param('PL')) + #else + #set $rg_pl = '' + #end if + + #if $rg_param('read_group_lb_conditional') is None + #set $rg_lb = '' + #elif $rg_param('read_group_lb_conditional')do_auto_name + #set $rg_lb = $rg_auto_name + #else + #set $rg_lb = str($rg_param('read_group_lb_conditional').LB) + #end if + + #if $rg_param('CN') + #set $rg_cn = str($rg_param('CN')) + #else + #set $rg_cn = '' + #end if + + #if $rg_param("DS") + #set $rg_ds = str($rg_param("DS")) + #else + #set $rg_ds = '' + #end if + + #if $rg_param("DT") + #set $rg_dt = str($rg_param("DT")) + #else + #set $rg_dt = '' + #end if + + #if $rg_param("FO") + #set $rg_fo = str($rg_param("FO")) + #else + #set $rg_fo = '' + #end if + + #if $rg_param("KS") + #set $rg_ks = str($rg_param("KS")) + #else + #set $rg_ks = '' + #end if + + #if $rg_param("PG") + #set $rg_pg = str($rg_param("PG")) + #else + #set $rg_pg = '' + #end if + + #if str($rg_param("PI")) + #set $rg_pi = str($rg_param("PI")) + #else + #set $rg_pi = '' + #end if + + #if $rg_param("PU") + #set $rg_pu = str($rg_param("PU")) + #else + #set $rg_pu = '' + #end if +#end if + + +#set $use_rg = str($rg.rg_selector) != "do_not_set" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \*|[ACMGRSVTWYHKDBN]+$ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r ac30bfd3e2a8 -r fbf460831036 test-data/bwa-aln-test3.bam Binary file test-data/bwa-aln-test3.bam has changed diff -r ac30bfd3e2a8 -r fbf460831036 test-data/bwa-mem-test2.bam Binary file test-data/bwa-mem-test2.bam has changed diff -r ac30bfd3e2a8 -r fbf460831036 tool_dependencies.xml --- a/tool_dependencies.xml Thu Jun 18 17:35:40 2015 -0400 +++ b/tool_dependencies.xml Tue Jul 21 13:51:02 2015 -0400 @@ -4,6 +4,6 @@ - +