PageRenderTime 22ms CodeModel.GetById 12ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 1ms

/tools/picard/picard_ReorderSam.xml

https://bitbucket.org/cistrome/cistrome-harvard/
XML | 165 lines | 119 code | 29 blank | 17 comment | 0 complexity | 3e62e4d883ad2dcccf6d6601e5a68dbe MD5 | raw file
  1<tool name="Reorder SAM/BAM" id="picard_ReorderSam" version="0.3.0">
  2  <requirements><requirement type="package">picard</requirement></requirements>
  3  <command interpreter="python">
  4    picard_wrapper.py
  5      --input=$inputFile
  6      #if $source.indexSource == "built-in"
  7        --ref="${ filter( lambda x: str( x[0] ) == str( $source.ref ), $__app__.tool_data_tables[ 'picard_indexes' ].get_fields() )[0][-1] }"
  8      #else
  9        --ref-file=$refFile
 10        --species-name=$source.speciesName
 11        --build-name=$source.buildName
 12        --trunc-names=$source.truncateSeqNames
 13      #end if
 14      --allow-inc-dict-concord=$allowIncDictConcord
 15      --allow-contig-len-discord=$allowContigLenDiscord
 16      --output-format=$outputFormat
 17      --output=$outFile
 18      -j "${GALAXY_DATA_INDEX_DIR}/shared/jars/ReorderSam.jar"
 19  </command>
 20  <inputs>
 21    <param format="bam,sam" name="inputFile" type="data" label="SAM/BAM dataset to be reordered"
 22           help="If empty, upload or import a SAM/BAM dataset." />
 23    <conditional name="source">
 24      <param name="indexSource" type="select" label="Select Reference Genome" help="This tool will re-order SAM/BAM in the same order as reference selected below.">
 25        <option value="built-in">Locally cached</option>
 26        <option value="history">History</option>
 27      </param>
 28      <when value="built-in">
 29        <param name="ref" type="select" label="Select a reference genome">
 30          <options from_data_table="picard_indexes" />
 31        </param>
 32      </when>
 33      <when value="history">
 34        <param name="refFile" type="data" format="fasta" metadata_name="dbkey" label="Using reference file" />
 35        <param name="speciesName" type="text" value="" label="Species name" />
 36        <param name="buildName" type="text" value="" label="Build name" />
 37        <param name="truncateSeqNames" type="boolean" checked="False" truevalue="true" falsevalue="false" label="Truncate sequence names after first whitespace" />
 38      </when>
 39    </conditional>
 40    <param name="allowIncDictConcord" type="boolean" checked="False" truevalue="true" falsevalue="false" label="Allow incomplete dict concordance?" help="Allows a partial overlap of the BAM contigs with the new reference sequence contigs." />
 41    <param name="allowContigLenDiscord" type="boolean" checked="False" truevalue="true" falsevalue="false" label="Allow contig length discordance?" help="This is dangerous--don't check it unless you know exactly what you're doing!" />
 42    <param name="outputFormat" type="boolean" checked="True" truevalue="bam" falsevalue="sam" label="Output BAM instead of SAM" help="Uncheck for SAM output" />
 43  </inputs>
 44  <outputs>
 45    <data name="outFile" format="bam" label="${tool.name} on ${on_string}: reordered ${outputFormat}">
 46      <change_format>
 47        <when input="outputFormat" value="sam" format="sam" />
 48      </change_format>
 49    </data>
 50  </outputs>
 51  <tests>
 52    <test>
 53      <!-- Commands:
 54      cp test-data/phiX.fasta .
 55      samtools faidx phiX.fasta
 56      java -jar CreateSequenceDictionary.jar R=phiX.fasta O=phiX.dict URI=phiX.fasta TRUNCATE_NAMES_AT_WHITESPACE=false SPECIES=phiX174
 57      java -jar ReorderSam.jar VALIDATION_STRINGENCY=LENIENT I=test-data/picard_RS_input1.bam O=picard_RS_output1.bam REFERENCE=phiX.fasta ALLOW_INCOMPLETE_DICT_CONCORDANCE=false ALLOW_CONTIG_LENGTH_DISCORDANCE=false
 58    -->
 59      <param name="inputFile" value="picard_RS_input1.bam" />
 60      <param name="indexSource" value="history" />
 61      <param name="refFile" value="phiX.fasta" />
 62      <param name="speciesName" value="phiX174" />
 63      <param name="buildName" value="" />
 64      <param name="truncateSeqNames" value="false" />
 65      <param name="allowIncDictConcord" value="false" />
 66      <param name="allowContigLenDiscord" value="false" />
 67      <param name="outputFormat" value="True" />
 68      <output name="outFile" file="picard_RS_output1.bam" ftype="bam" lines_diff="4" compare="contains" />
 69    </test>
 70    <test>
 71      <!-- Command:
 72      java -jar ReorderSam.jar VALIDATION_STRINGENCY=LENIENT I=test-data/picard_RS_input2.sam O=picard_RS_output2.sam REFERENCE=/path/to/phiX/picard_index/phiX.fa ALLOW_INCOMPLETE_DICT_CONCORDANCE=false ALLOW_CONTIG_LENGTH_DISCORDANCE=false
 73      /path/to/phiX/srma_index/phiX.fa is path to phiX.fa, phiX.fa.fai, and phiX.dict
 74      -->
 75      <param name="inputFile" value="picard_RS_input2.sam" />
 76      <param name="indexSource" value="built-in" />
 77      <param name="ref" value="phiX" />
 78      <param name="allowIncDictConcord" value="false" />
 79      <param name="allowContigLenDiscord" value="false" />
 80      <param name="outputFormat" value="False" />
 81      <output name="outFile" file="picard_RS_output2.sam" ftype="sam" lines_diff="4" sort="True" />
 82    </test>
 83    <test>
 84      <!-- Commands:
 85      cp test-data/picard_RS_input4.fasta .
 86      samtools faidx picard_RS_input4.fasta
 87      java -jar CreateSequenceDictionary.jar R=picard_RS_input4.fasta O=picard_RS_input4.dict URI=picard_RS_input4.fasta TRUNCATE_NAMES_AT_WHITESPACE=true SPECIES=phiX174 GENOME_ASSEMBLY=phiX_buildBlah1.1
 88      java -jar ReorderSam.jar VALIDATION_STRINGENCY=LENIENT I=test-data/picard_RS_input3.bam O=picard_RS_output3.sam REFERENCE=picard_RS_input4.fasta ALLOW_INCOMPLETE_DICT_CONCORDANCE=true ALLOW_CONTIG_LENGTH_DISCORDANCE=false
 89      picard_RS_input3.bam can be made from picard_RS_input3.sam
 90      -->
 91      <param name="inputFile" value="picard_RS_input3.bam" />
 92      <param name="indexSource" value="history" />
 93      <param name="refFile" value="picard_RS_input4.fasta" />
 94      <param name="speciesName" value="phiX174" />
 95      <param name="buildName" value="phiX_buildBlah1.1" />
 96      <param name="truncateSeqNames" value="true" />
 97      <param name="allowIncDictConcord" value="true" />
 98      <param name="allowContigLenDiscord" value="false" />
 99      <param name="outputFormat" value="False" />
100      <output name="outFile" file="picard_RS_output3.sam" ftype="sam" lines_diff="12" sort="True" />
101    </test>
102  </tests>
103  <help>
104
105.. class:: infomark
106
107**Purpose**
108
109Reorder SAM/BAM to match contig ordering in a particular reference file. Note that this is
110not the same as sorting as done by the SortSam tool, which sorts by either coordinate
111values or query name. The ordering in ReorderSam is based on exact name matching of
112contigs/chromosomes. Reads that are mapped to a contig that is not in the new reference file are
113not included in the output.
114
115**Picard documentation**
116
117This is a Galaxy wrapper for ReorderSam, a part of the external package Picard-tools_.
118
119 .. _Picard-tools: http://www.google.com/search?q=picard+samtools
120
121------
122
123.. class:: infomark 
124
125**Inputs, outputs, and parameters**
126
127For the file that needs to be reordered, either a sam file or a bam file must be supplied.
128If a bam file is used, it must be coordinate-sorted. A reference file is also required,
129so either a fasta file should be supplied or a built-in reference can be selected.
130
131The output contains the same reads as the input file but the reads have been rearranged so
132they appear in the same order as the provided reference file. The tool will output either
133bam (the default) or sam, according to user selection. Bam is recommended since it is smaller.
134
135The only extra parameters that can be set are flags for allowing incomplete dict concordance
136and allowing contig length discordance. If incomplete dict concordance is allowed, only a
137partial overlap of the bam contigs with the new reference sequence contigs is required. By
138default it is off, requiring a corresponding contig in the new reference for each read contig.
139If contig length discordance is allowed, contig names that are the same between a read and the
140new reference contig are allowed even if they have different lengths. This is usually not a
141good idea, unless you know exactly what you're doing. It's off by default.
142
143.. class:: warningmark
144
145**Warning on SAM/BAM quality**
146
147Many SAM/BAM files produced externally and uploaded to Galaxy do not fully conform to SAM/BAM specifications. Galaxy deals with this by using the **LENIENT**
148flag when it runs Picard, which allows reads to be discarded if they're empty or don't map. This appears
149to be the only way to deal with SAM/BAM that cannot be parsed.
150
151
152  </help>
153</tool>
154
155
156
157
158
159
160
161
162
163
164
165