on BAM filesgatk_wrapper.py
--stdout "${output_log}"
-d "-I" "${reference_source.input_bam}" "${reference_source.input_bam.ext}" "gatk_input"
-d "" "${reference_source.input_bam.metadata.bam_index}" "bam_index" "gatk_input" ##hardcode galaxy ext type as bam_index
-p 'java
-jar "${GALAXY_DATA_INDEX_DIR}/shared/jars/gatk/GenomeAnalysisTK.jar"
-T "TableRecalibration"
-o "${output_bam}"
-et "NO_ET" ##ET no phone home
##-log "${output_log}" ##don't use this to log to file, instead directly capture stdout
#if $reference_source.reference_source_selector != "history":
-R "${reference_source.ref_file.fields.path}"
#end if
--recal_file "${input_recal}"
--disable_bam_indexing
'
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
#for $sample_metadata in $gatk_param_type.sample_metadata:
-p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
#end for
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
#for $name, $param in $read_filter.read_filter_type.iteritems():
#if $name not in [ "__current_case__", "read_filter_type_selector" ]:
--${name} "${param}"
#end if
#end for
'
#end for
#if str( $gatk_param_type.input_intervals ) != "None":
-d "-L" "${gatk_param_type.input_intervals}" "${gatk_param_type.input_intervals.ext}" "input_intervals"
#end if
#if str( $gatk_param_type.input_exclude_intervals ) != "None":
-d "-XL" "${gatk_param_type.input_exclude_intervals}" "${gatk_param_type.input_exclude_intervals.ext}" "input_intervals"
#end if
#set $rod_binding_names = dict()
#for $rod_binding in $gatk_param_type.rod_bind:
#if str( $rod_binding.rod_bind_type.rod_bind_type_selector ) == 'custom':
#set $rod_bind_name = $rod_binding.rod_bind_type.custom_rod_name
#else
#set $rod_bind_name = $rod_binding.rod_bind_type.rod_bind_type_selector
#end if
#set $rod_binding_names[$rod_bind_name] = $rod_binding_names.get( $rod_bind_name, -1 ) + 1
-d "-B:${rod_bind_name},%(file_type)s" "${rod_binding.rod_bind_type.input_rod}" "${rod_binding.rod_bind_type.input_rod.ext}" "input_${rod_bind_name}_${rod_binding_names[$rod_bind_name]}"
#if str( $rod_binding.rod_bind_type.rodToIntervalTrackName ):
-p '--rodToIntervalTrackName "${rod_bind_name}"'
#end if
#end for
-p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
#if str( $gatk_param_type.input_dbsnp_rod ) != "None":
-d "-D" "${gatk_param_type.input_dbsnp_rod}" "${gatk_param_type.input_dbsnp_rod.ext}" "dbsnp_rod"
#end if
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
-p '--${gatk_param_type.downsampling_type.downsample_to_type.downsample_to_type_selector} "${gatk_param_type.downsampling_type.downsample_to_type.downsample_to_value}"'
#end if
-p '
--baq "${gatk_param_type.baq}"
--baqGapOpenPenalty "${gatk_param_type.baq_gap_open_penalty}"
${gatk_param_type.use_original_qualities}
--defaultBaseQualities "${gatk_param_type.default_base_qualities}"
--validation_strictness "${gatk_param_type.validation_strictness}"
--interval_merging "${gatk_param_type.interval_merging}"
'
#if str( $gatk_param_type.read_group_black_list ) != "None":
-d "-read_group_black_list" "${gatk_param_type.read_group_black_list}" "txt" "input_read_group_black_list"
#end if
#end if
#if str( $reference_source.reference_source_selector ) == "history":
-d "-R" "${reference_source.ref_file}" "${reference_source.ref_file.ext}" "gatk_input"
#end if
##end standard gatk options
##start analysis specific options
#if $analysis_param_type.analysis_param_type_selector == "advanced":
-p '
#if $analysis_param_type.default_read_group_type.default_read_group_type_selector == "set":
--default_read_group "${analysis_param_type.default_read_group_type.default_read_group}"
#end if
#if str( $analysis_param_type.default_platform ) != "default":
--default_platform "${analysis_param_type.default_platform}"
#end if
#if str( $analysis_param_type.force_read_group_type.force_read_group_type_selector ) == "set":
--force_read_group "${analysis_param_type.force_read_group_type.force_read_group}"
#end if
#if str( $analysis_param_type.force_platform ) != "default":
--force_platform "${analysis_param_type.force_platform}"
#end if
${analysis_param_type.exception_if_no_tile}
#if str( $analysis_param_type.solid_options_type.solid_options_type_selector ) == "set":
#if str( $analysis_param_type.solid_options_type.solid_recal_mode ) != "default":
--solid_recal_mode "${analysis_param_type.solid_options_type.solid_recal_mode}"
#end if
#if str( $analysis_param_type.solid_options_type.solid_nocall_strategy ) != "default":
--solid_nocall_strategy "${analysis_param_type.solid_options_type.solid_nocall_strategy}"
#end if
#end if
${analysis_param_type.simplify_bam}
--preserve_qscores_less_than "${analysis_param_type.preserve_qscores_less_than}"
--smoothing "${analysis_param_type.smoothing}"
--max_quality_score "${analysis_param_type.max_quality_score}"
--window_size_nqs "${analysis_param_type.window_size_nqs}"
--homopolymer_nback "${analysis_param_type.homopolymer_nback}"
${analysis_param_type.do_not_write_original_quals}
'
#end if
**What it does**
This walker is designed to work as the second pass in a two-pass processing step, doing a by-read traversal. For
each base in each read this walker calculates various user-specified covariates (such as read group, reported
quality score, cycle, and dinuc) Using these values as a key in a large hashmap the walker calculates an empirical
base quality score and overwrites the quality score currently in the read. This walker then outputs a new bam file
with these updated (recalibrated) reads. Note: This walker expects as input the recalibration table file generated
previously by CovariateCounterWalker. Note: This walker is designed to be used in conjunction with
CovariateCounterWalker.
------
Please cite the website "http://addlink.here" as well as:
Add citation here 2011.
------
**Input formats**
GenomeAnalysisTK: TableRecalibration accepts an aligned BAM and a recalibration CSV input files.
------
**Outputs**
The output is in BAM format, see http://addlink.here for more details.
-------
**Settings**::
default_read_group If a read has no read group then default to the provided String.
default_platform If a read has no platform then default to the provided String. Valid options are illumina, 454, and solid.
force_read_group If provided, the read group ID of EVERY read will be forced to be the provided String. This is useful to collapse all data into a single read group.
force_platform If provided, the platform of EVERY read will be forced to be the provided String. Valid options are illumina, 454, and solid.
window_size_nqs The window size used by MinimumNQSCovariate for its calculation
homopolymer_nback The number of previous bases to look at in HomopolymerCovariate
exception_if_no_tile If provided, TileCovariate will throw an exception when no tile can be found. The default behavior is to use tile = -1
solid_recal_mode How should we recalibrate solid bases in whichthe reference was inserted? Options = DO_NOTHING, SET_Q_ZERO, SET_Q_ZERO_BASE_N, or REMOVE_REF_BIAS (DO_NOTHING|SET_Q_ZERO|SET_Q_ZERO_BASE_N|REMOVE_REF_BIAS)
solid_nocall_strategy Defines the behavior of the recalibrator when it encounters no calls in the color space. Options = THROW_EXCEPTION, LEAVE_READ_UNRECALIBRATED, or PURGE_READ (THROW_EXCEPTION|LEAVE_READ_UNRECALIBRATED|PURGE_READ)
recal_file Filename for the input covariates table recalibration .csv file
out The output BAM file
bam_compression Compression level to use for writing BAM files
disable_bam_indexing Turn off on-the-fly creation of indices for output BAM files.
simplifyBAM If provided, output BAM files will be simplified to include just key reads for downstream variation discovery analyses (removing duplicates, PF-, non-primary reads), as well stripping all extended tags from the kept reads except the read group identifier
preserve_qscores_less_than Bases with quality scores less than this threshold won't be recalibrated, default=5. In general it's unsafe to change qualities scores below < 5, since base callers use these values to indicate random or bad bases
smoothing Number of imaginary counts to add to each bin bin order to smooth out bins with few data points, default=1
max_quality_score The integer value at which to cap the quality scores, default=50
doNotWriteOriginalQuals If true, we will not write the original quality (OQ) tag for each read