view picard_MarkDuplicatesWithMateCigar.xml @ 6:4ff1e04010e6 draft

Uploaded
author devteam
date Thu, 15 Jan 2015 15:37:04 -0500
parents 3d4f1fa26f0e
children 3a3234d7a2e8
line wrap: on
line source

<tool name="MarkDuplicatesWithMateCigar" id="picard_MarkDuplicatesWithMateCigar" version="1.126.0">
  <description>examine aligned records in BAM datasets to locate duplicate molecules</description>
  <requirements>
    <requirement type="package" version="1.126.0">picard</requirement>
  </requirements>
  
  <macros>
    <import>picard_macros.xml</import>
  </macros>
  
  <command>
    @java_options@
    
    java -jar \$JAVA_JAR_PATH/picard.jar
    MarkDuplicatesWithMateCigar
    
    INPUT="${inputFile}"
    OUTPUT="${outFile}"
    
    METRICS_FILE="${metrics_file}"
    #for $element in $comments:
      COMMENT="${element.comment}"
    #end for
    
    MINIMUM_DISTANCE="${minimum_distance}"
    SKIP_PAIRS_WITH_NO_MATE_CIGAR="${skip_pairs_with_no_mate_cigar}"
    
    
    REMOVE_DUPLICATES="${remove_duplicates}"
    ASSUME_SORTED="${assume_sorted}"
    
    DUPLICATE_SCORING_STRATEGY="${duplicate_scoring_strategy}"
    
    #import pipes
    READ_NAME_REGEX=${ pipes.quote( str( $read_name_regex ) ) or "''" }
    OPTICAL_DUPLICATE_PIXEL_DISTANCE="${optical_duplicate_pixel_distance}"
    
    
    BLOCK_SIZE=100000
    VALIDATION_STRINGENCY="${validation_stringency}"
    QUIET=true
    VERBOSITY=ERROR
  
  </command>
  <inputs>
    <param format="bam" name="inputFile" type="data" label="Select SAM/BAM dataset or dataset collection" help="If empty, upload or import a SAM/BAM dataset"/>
      <param name="comment" type="text" size="50" label="Add this comment to BAM dataset"/>
    
    <param name="minimum_distance" type="integer" value="-1" label="The minimum distance to buffer records to account for clipping on the 5' end of the records" help="MINIMUM_DISTANCE; Set this number to -1 to use twice the first read's read length (or 100, whichever is smaller); default=-1"/>
    <param name="skip_pairs_with_no_mate_cigar" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Skip record pairs with no mate cigar and include them in the output" help="SKIP_PAIRS_WITH_NO_MATE_CIGAR; default=True"/>
    <param name="remove_duplicates" type="boolean" label="If true do not write duplicates to the output file instead of writing them with appropriate flags set" help="REMOVE_DUPLICATES; default=False"/>
    <param name="assume_sorted" type="boolean" label="Assume the input file is already sorted" checked="true" truevalue="true" falsevalue="false" help="ASSUME_SORTED; default=True"/>

    <param name="duplicate_scoring_strategy" type="select" label="The scoring strategy for choosing the non-duplicate among candidates" help="DUPLICATE_SCORING_STRATEGY; default=TOTAL_MAPPED_REFERENCE_LENGTH">
      <option value="TOTAL_MAPPED_REFERENCE_LENGTH" select="True">TOTAL_MAPPED_REFERENCE_LENGTH</option>
      <option value="SUM_OF_BASE_QUALITIES">SUM_OF_BASE_QUALITIES</option>
    </param>


    <param name="read_name_regex" type="text" size="40" value="[a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*." label="Regular expression that can be used to parse read names in the incoming SAM/BAM dataset" help="READ_NAME_REGEX; Read names are parsed to extract three variables: tile/region, x coordinate and y coordinate. These values are used to estimate the rate of optical duplication in order to give a more accurate estimated library size. See help below for more info; default=[a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*.">
      <sanitizer>
        <valid initial="string.printable">
        </valid>
      </sanitizer>
    </param>
    <param name="optical_duplicate_pixel_distance" type="integer" value="100" min="0" max="500" label="The maximum offset between two duplicte clusters in order to consider them optical duplicates" help="OPTICAL_DUPLICATE_PIXEL_DISTANCE; default=100"/>

   <expand macro="VS" />
    
  </inputs> 
  
  <outputs>
    <data format="txt" name="metrics_file" label="${tool.name} on ${on_string}: MarkDuplicate metrics"/>
    <data format="bam" name="outFile" label="${tool.name} on ${on_string}: MarkDuplicates BAM output"/>
  </outputs>
  
  <tests>
    <test>
      <param name="inputFile" value="picard_MarkDuplicatesWithMateCigar.bam" ftype="bam"/>
      <param name="minimum_distance" value="-1"/>
      <param name="skip_pairs_with_no_mate_cigar" value="True"/>
      <param name="comment" value="test-run"/>
      <param name="assume_sorted" value="True"/>
      <param name="remove_duplicates" value="False"/>
      <param name="read_name_regex" value="[a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*."/>
      <param name="optical_duplicate_pixel_distance" value="100"/>
      <param name="duplicate_scoring_strategy" value="TOTAL_MAPPED_REFERENCE_LENGTH"/>
      <param name="validation_stringency" value="LENIENT"/>
      <output name="outFile" file="picard_MarkDuplicatesWithMateCigar_test1.bam" ftype="bam" lines_diff="4"/>
    </test>
  </tests>
  
  <stdio>
    <exit_code range="1:"  level="fatal"/>
  </stdio>
  
  <help>

**Purpose**

Examines aligned records in the supplied SAM or BAM dataset to locate duplicate molecules. All records are then written to the output file with the duplicate records flagged.

------

.. class:: warningmark

On the difference between **MarkDuplicates** and **picard_MarkDuplicatesWithMateCigar**

From Samtools Announce MailingList_:

This tool can replace MarkDuplicates if the input SAM/BAM has Mate CIGAR (MC) optional tags pre-computed
(see the tools RevertOriginalBaseQualitiesAndAddMateCigar and FixMateInformation).  This allows the new tool
to perform a streaming duplicate marking routine (i.e. a single-pass).  This tool cannot be used with
alignments that have large gaps or reference skips, which happens frequently in RNA-seq data.

.. _MailingList: http://sourceforge.net/p/samtools/mailman/message/32910359/

@dataset_collections@

@description@

  MINIMUM_DISTANCE=Integer      The minimum distance to buffer records to account for clipping on the 5' end of the 
                                records.Set this number to -1 to use twice the first read's read length (or 100, 
                                whichever is smaller).  Default value: -1. This option can be set to 'null' to clear the 
                                default value. 
  
  SKIP_PAIRS_WITH_NO_MATE_CIGAR=Boolean
                                Skip record pairs with no mate cigar and include them in the output.  Default value: 
                                true. This option can be set to 'null' to clear the default value. Possible values: 
                                {true, false} 

  COMMENT=String  
  CO=String                     Comment(s) to include in the output file's header.  This option may be specified 0 or 
                                more times. 

  REMOVE_DUPLICATES=Boolean     If true do not write duplicates to the output file instead of writing them with 
                                appropriate flags set.  Default value: false.  
  
  READ_NAME_REGEX=String        Regular expression that can be used to parse read names in the incoming SAM file. Read 
                                names are parsed to extract three variables: tile/region, x coordinate and y coordinate. 
                                These values are used to estimate the rate of optical duplication in order to give a more 
                                accurate estimated library size. Set this option to null to disable optical duplicate 
                                detection. The regular expression should contain three capture groups for the three 
                                variables, in order. It must match the entire read name. Note that if the default regex 
                                is specified, a regex match is not actually done, but instead the read name  is split on 
                                colon character. For 5 element names, the 3rd, 4th and 5th elements are assumed to be 
                                tile, x and y values. For 7 element names (CASAVA 1.8), the 5th, 6th, and 7th elements 
                                are assumed to be tile, x and y values.  Default value: 
                                [a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*.
                                
  DUPLICATE_SCORING_STRATEGY=ScoringStrategy
  DS=ScoringStrategy            The scoring strategy for choosing the non-duplicate among candidates.  Default value: 
                                TOTAL_MAPPED_REFERENCE_LENGTH. Possible values: {SUM_OF_BASE_QUALITIES, TOTAL_MAPPED_REFERENCE_LENGTH} 
  
  OPTICAL_DUPLICATE_PIXEL_DISTANCE=Integer
                                The maximum offset between two duplicte clusters in order to consider them optical 
                                duplicates. This should usually be set to some fairly small number (e.g. 5-10 pixels) 
                                unless using later versions of the Illumina pipeline that multiply pixel values by 10, in 
                                which case 50-100 is more normal.  Default value: 100. 

@more_info@

  </help>
</tool>