<tool name="Downsample SAM/BAM" id="picard_DownsampleSam" version="@TOOL_VERSION@.@WRAPPER_VERSION@">
  <description>Downsample a file to retain a subset of the reads</description>
  <macros>
    <import>picard_macros.xml</import>
    <token name="@WRAPPER_VERSION@">1</token>
  </macros>
  <expand macro="requirements" />
  <command detect_errors="exit_code"><![CDATA[
    @java_options@
    @symlink_element_identifier@
    picard
    DownsampleSam
      INPUT='$escaped_element_identifier'
      OUTPUT="${outFile}"
      PROBABILITY=${probability}
      RANDOM_SEED=${seed}
      QUIET=true
      VERBOSITY=ERROR
      @TMPDIR_OPTION@
      VALIDATION_STRINGENCY=${validation_stringency}
  ]]></command>
  <inputs>
    <param format="sam,bam" name="inputFile" type="data" label="Select SAM/BAM dataset or dataset collection" help="If empty, upload or import a SAM or BAM dataset" />
    <param name="probability" type="float" min="0.0" max="1.0" label="Probability (between 0 and 1) that any given read will be kept" help="PROBABILITY; specify 1 to keep all reads, 0.1 to keep 10% of the reads" value="1" />
    <param name="seed" type="integer" label="Random seed value" help="RANDOM_SEED; default=1" value="1" />

    <expand macro="VS" />

  </inputs>


  <outputs>
    <data name="outFile" format="bam" label="${tool.name} on ${on_string}: downsampled BAM"/>
  </outputs>

  <tests>
    <test>
      <param name="inputFile" value="picard_DownsampleSam.bam"  ftype="bam" />
      <param name="probability" value="0.1" />
      <param name="seed" value="1024" />
      <param name="validation_stringency" value="LENIENT" />
      <output name="outFile" file="picard_DownsampleSam_test1.bam" ftype="bam"/>
    </test>
  </tests>
  <help>

.. class:: infomark

**Purpose**

Randomly down-sample a SAM or BAM file to retain a random subset of the reads. Mate-pairs are either both kept or both discarded. Reads marked as not primary alignments are all discarded. Each read is given a probability P of being retained - results with the exact same input in the same order and with the same value for RANDOM_SEED will produce the same results.

@dataset_collections@

@description@

  INPUT=File
  I=File              The input SAM or BAM file to downsample.  Required.

  OUTPUT=File
  O=File              The output, downsampled, SAM or BAM file to write.  Required.

  RANDOM_SEED=Long
  R=Long              Random seed to use if reproducibilty is desired.  Setting to null will cause multiple
                      invocations to produce different results.

  PROBABILITY=Double
  P=Double            The probability of keeping any individual read, between 0 and 1.



@more_info@
  </help>
  <expand macro="citations" />
</tool>
