Mercurial > repos > devteam > bowtie_wrappers
changeset 4:df86f29bedee draft
planemo upload commit 00a7926c285bc4a339bd7deebf40b28f39c7d947-dirty
author | devteam |
---|---|
date | Tue, 21 Jul 2015 13:04:45 -0400 |
parents | 9ca609a2a421 |
children | 306077e393d4 |
files | bowtie_wrapper.py bowtie_wrapper.xml tool_dependencies.xml |
diffstat | 3 files changed, 221 insertions(+), 136 deletions(-) [+] |
line wrap: on
line diff
--- a/bowtie_wrapper.py Fri Feb 21 12:40:39 2014 -0500 +++ b/bowtie_wrapper.py Tue Jul 21 13:04:45 2015 -0400 @@ -27,10 +27,10 @@ -M, --mismatchQual=M: Maximum permitted total of quality values at mismatched read positions -l, --seedLen=l: Seed length -n, --rounding=n: Whether or not to round to the nearest 10 and saturating at 30 - -P, --maqSoapAlign=P: Choose MAQ- or SOAP-like alignment policy + -P, --maxMismatches=P: Maximum number of mismatches for -v alignment mode -w, --tryHard=: Whether or not to try as hard as possible to find valid alignments when they exist - -v, --valAlign=v: Report up to n valid arguments per read - -V, --allValAligns=V: Whether or not to report all valid alignments per read + -V, --allValAligns=V: Whether or not to report all valid alignments per read or pair + -v, --valAlign=v: Report up to n valid alignments per read or pair -G, --suppressAlign=G: Suppress all alignments for a read if more than n reportable alignments exist -b, --best=b: Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions -B, --maxBacktracks=B: Maximum number of backtracks permitted when aligning a read @@ -59,7 +59,6 @@ -X, --intoa=X: Whether or not to convert Ns in the reference sequence to As -N, --iendian=N: Endianness to use when serializing integers to the index file -Z, --iseed=Z: Seed for the pseudorandom number generator - -c, --icutoff=c: Number of first bases of the reference sequence to index -x, --indexSettings=x: Whether or not indexing options are to be set -H, --suppressHeader=H: Suppress header --do_not_build_index: Flag to specify that provided file is already indexed and to just use 'as is' @@ -101,10 +100,10 @@ parser.add_option( '-M', '--mismatchQual', dest='mismatchQual', help='Maximum permitted total of quality values at mismatched read positions' ) parser.add_option( '-l', '--seedLen', dest='seedLen', help='Seed length' ) parser.add_option( '-n', '--rounding', dest='rounding', help='Whether or not to round to the nearest 10 and saturating at 30' ) - parser.add_option( '-P', '--maqSoapAlign', dest='maqSoapAlign', help='Choose MAQ- or SOAP-like alignment policy' ) + parser.add_option( '-P', '--maxMismatches', dest='maxMismatches', help='Maximum number of mismatches for -v alignment mode' ) parser.add_option( '-w', '--tryHard', dest='tryHard', help='Whether or not to try as hard as possible to find valid alignments when they exist' ) - parser.add_option( '-v', '--valAlign', dest='valAlign', help='Report up to n valid arguments per read' ) - parser.add_option( '-V', '--allValAligns', dest='allValAligns', help='Whether or not to report all valid alignments per read' ) + parser.add_option( '-V', '--allValAligns', dest='allValAligns', help='Whether or not to report all valid alignments per read or pair' ) + parser.add_option( '-v', '--valAlign', dest='valAlign', help='Report up to n valid alignments per read or pair' ) parser.add_option( '-G', '--suppressAlign', dest='suppressAlign', help='Suppress all alignments for a read if more than n reportable alignments exist' ) parser.add_option( '-b', '--best', dest='best', help="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions" ) parser.add_option( '-B', '--maxBacktracks', dest='maxBacktracks', help='Maximum number of backtracks permitted when aligning a read' ) @@ -133,12 +132,13 @@ parser.add_option( '-X', '--intoa', dest='intoa', help='Whether or not to convert Ns in the reference sequence to As' ) parser.add_option( '-N', '--iendian', dest='iendian', help='Endianness to use when serializing integers to the index file' ) parser.add_option( '-Z', '--iseed', dest='iseed', help='Seed for the pseudorandom number generator' ) - parser.add_option( '-c', '--icutoff', dest='icutoff', help='Number of first bases of the reference sequence to index' ) parser.add_option( '-x', '--indexSettings', dest='index_settings', help='Whether or not indexing options are to be set' ) parser.add_option( '-H', '--suppressHeader', dest='suppressHeader', help='Suppress header' ) parser.add_option( '--galaxy_input_format', dest='galaxy_input_format', default="fastqsanger", help='galaxy input format' ) parser.add_option( '--do_not_build_index', dest='do_not_build_index', action="store_true", default=False, help='Flag to specify that provided file is already indexed, use as is' ) (options, args) = parser.parse_args() + if options.mismatchSeed and options.maxMismatches: + parser.error("options --mismatchSeed and --maxMismatches are mutually exclusive") stdout = '' # make temp directory for placement of indices and copy reference file there if necessary @@ -159,19 +159,19 @@ iautoB = '--noauto' else: iautoB = '' - if options. ipacked and options.ipacked == 'packed': + if options.ipacked and options.ipacked == 'packed': ipacked = '--packed' else: ipacked = '' if options.ibmax and int( options.ibmax ) >= 1: - ibmax = '--bmax %s' % options.ibmax + ibmax = '--bmax %s' % options.ibmax else: ibmax = '' if options.ibmaxdivn and int( options.ibmaxdivn ) >= 0: ibmaxdivn = '--bmaxdivn %s' % options.ibmaxdivn else: ibmaxdivn = '' - if options.idcv and int( options.idcv ) > 0: + if options.idcv and int( options.idcv ) >= 3: idcv = '--dcv %s' % options.idcv else: idcv = '' @@ -183,7 +183,7 @@ inoref = '--noref' else: inoref = '' - if options.iftab and int( options.iftab ) >= 0: + if options.iftab and int( options.iftab ) >= 1: iftab = '--ftabchars %s' % options.iftab else: iftab = '' @@ -199,14 +199,10 @@ iseed = '--seed %s' % options.iseed else: iseed = '' - if options.icutoff and int( options.icutoff ) > 0: - icutoff = '--cutoff %s' % options.icutoff - else: - icutoff = '' - indexing_cmds = '%s %s %s %s %s %s %s --offrate %s %s %s %s %s %s %s' % \ - ( iautoB, ipacked, ibmax, ibmaxdivn, idcv, inodc, - inoref, options.ioffrate, iftab, intoa, iendian, - iseed, icutoff, colorspace ) + indexing_cmds = '%s %s %s %s %s %s %s --offrate %s %s %s %s %s %s' % \ + ( iautoB, ipacked, ibmax, ibmaxdivn, idcv, inodc, + inoref, options.ioffrate, iftab, intoa, iendian, + iseed, colorspace ) except ValueError, e: # clean up temp dir if os.path.exists( tmp_index_dir ): @@ -283,16 +279,17 @@ trimL = '-3 %s' % options.trimL else: trimL = '' - if options.maqSoapAlign != '-1' and int( options.maqSoapAlign ) >= 0: - maqSoapAlign = '-v %s' % options.maqSoapAlign + if options.maxMismatches and (options.maxMismatches == '0' or options.maxMismatches == '1' \ + or options.maxMismatches == '2' or options.maxMismatches == '3'): + maxMismatches = '-v %s' % options.maxMismatches else: - maqSoapAlign = '' + maxMismatches = '' if options.mismatchSeed and (options.mismatchSeed == '0' or options.mismatchSeed == '1' \ or options.mismatchSeed == '2' or options.mismatchSeed == '3'): mismatchSeed = '-n %s' % options.mismatchSeed else: mismatchSeed = '' - if options.mismatchQual and int( options.mismatchQual ) >= 0: + if options.mismatchQual and int( options.mismatchQual ) >= 1: mismatchQual = '-e %s' % options.mismatchQual else: mismatchQual = '' @@ -395,8 +392,8 @@ aligning_cmds = '-q %s %s -p %s -S %s %s %s %s %s %s %s %s %s %s %s %s ' \ '%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s ' % \ ( maxInsert, mateOrient, options.threads, suppressHeader, - colorspace, skip, alignLimit, trimH, trimL, maqSoapAlign, - mismatchSeed, mismatchQual, seedLen, rounding, minInsert, + colorspace, skip, alignLimit, trimH, trimL, maxMismatches, + mismatchSeed, mismatchQual, seedLen, rounding, minInsert, maxAlignAttempt, forwardAlign, reverseAlign, maxBacktracks, tryHard, valAlign, allValAligns, suppressAlign, best, strata, offrate, seed, snpphred, snpfrac, keepends, @@ -466,4 +463,5 @@ stdout += 'Sequence file aligned.\n' sys.stdout.write( stdout ) -if __name__=="__main__": __main__() +if __name__ == "__main__": + __main__()
--- a/bowtie_wrapper.xml Fri Feb 21 12:40:39 2014 -0500 +++ b/bowtie_wrapper.xml Tue Jul 21 13:04:45 2015 -0400 @@ -1,9 +1,9 @@ -<tool id="bowtie_wrapper" name="Map with Bowtie for Illumina" version="1.1.2"> +<tool id="bowtie_wrapper" name="Map with Bowtie for Illumina" version="1.1.3"> <requirements> - <requirement type='package' version="0.12.7">bowtie</requirement> + <requirement type="package" version="0.12.7">bowtie</requirement> </requirements> <description></description> - <parallelism method="basic"></parallelism> + <version_command>bowtie --version</version_command> <command interpreter="python"> bowtie_wrapper.py ## Set number of threads @@ -58,7 +58,6 @@ --intoa="${refGenomeSource.indexParams.ntoa}" --iendian="${refGenomeSource.indexParams.endian}" --iseed="${refGenomeSource.indexParams.seed}" - --icutoff="${refGenomeSource.indexParams.cutoff}" #end if #end if #else @@ -74,21 +73,32 @@ --alignLimit="${singlePaired.sParams.sAlignLimit}" --trimH="${singlePaired.sParams.sTrimH}" --trimL="${singlePaired.sParams.sTrimL}" - --mismatchSeed="${singlePaired.sParams.sMismatchSeed}" - --mismatchQual="${singlePaired.sParams.sMismatchQual}" - --seedLen="${singlePaired.sParams.sSeedLen}" - --rounding="${singlePaired.sParams.sRounding}" - --maqSoapAlign="${singlePaired.sParams.sMaqSoapAlign}" - --tryHard="${singlePaired.sParams.sTryHard}" - --valAlign="${singlePaired.sParams.sValAlign}" - --allValAligns="${singlePaired.sParams.sAllValAligns}" + #if $singlePaired.sParams.alignModeOption.alignMode == 'nMode' + --mismatchSeed="${singlePaired.sParams.alignModeOption.sMismatchSeed}" + --mismatchQual="${singlePaired.sParams.alignModeOption.sMismatchQual}" + --seedLen="${singlePaired.sParams.alignModeOption.sSeedLen}" + --rounding="${singlePaired.sParams.alignModeOption.sRounding}" + #else + --maxMismatches="${singlePaired.sParams.alignModeOption.maxMismatches}" + #end if + --forwardAlign="${singlePaired.sParams.sForwardAlign}" + --reverseAlign="${singlePaired.sParams.sReverseAlign}" + --tryHard="${singlePaired.sParams.sBestOption.sTryHardOption.sTryHard}" + --allValAligns="${singlePaired.sParams.sAllValAlignsOption.sAllValAligns}" + #if $singlePaired.sParams.sAllValAlignsOption.sAllValAligns == "noAllValAligns" + --valAlign="${singlePaired.sParams.sAllValAlignsOption.sValAlign}" + #end if --suppressAlign="${singlePaired.sParams.sSuppressAlign}" --best="${singlePaired.sParams.sBestOption.sBest}" #if $singlePaired.sParams.sBestOption.sBest == "doBest": - --maxBacktracks="${singlePaired.sParams.sBestOption.sdMaxBacktracks}" --strata="${singlePaired.sParams.sBestOption.sdStrata}" + #if $singlePaired.sParams.sBestOption.sTryHardOption.sTryHard == "noTryHard" + --maxBacktracks="${singlePaired.sParams.sBestOption.sTryHardOption.sdMaxBacktracks}" + #end if #else: - --maxBacktracks="${singlePaired.sParams.sBestOption.snMaxBacktracks}" + #if $singlePaired.sParams.sBestOption.sTryHardOption.sTryHard == "noTryHard" + --maxBacktracks="${singlePaired.sParams.sBestOption.sTryHardOption.snMaxBacktracks}" + #end if #end if --offrate="${singlePaired.sParams.sOffrate}" --seed="${singlePaired.sParams.sSeed}" @@ -104,25 +114,35 @@ --alignLimit="${singlePaired.pParams.pAlignLimit}" --trimH="${singlePaired.pParams.pTrimH}" --trimL="${singlePaired.pParams.pTrimL}" - --mismatchSeed="${singlePaired.pParams.pMismatchSeed}" - --mismatchQual="${singlePaired.pParams.pMismatchQual}" - --seedLen="${singlePaired.pParams.pSeedLen}" - --rounding="${singlePaired.pParams.pRounding}" - --maqSoapAlign="${singlePaired.pParams.pMaqSoapAlign}" + #if $singlePaired.pParams.alignModeOption.alignMode == 'nMode' + --mismatchSeed="${singlePaired.pParams.alignModeOption.pMismatchSeed}" + --mismatchQual="${singlePaired.pParams.alignModeOption.pMismatchQual}" + --seedLen="${singlePaired.pParams.alignModeOption.pSeedLen}" + --rounding="${singlePaired.pParams.alignModeOption.pRounding}" + #else + --maxMismatches="${singlePaired.pParams.alignModeOption.maxMismatches}" + #end if --minInsert="${singlePaired.pParams.pMinInsert}" - --maxAlignAttempt="${singlePaired.pParams.pMaxAlignAttempt}" --forwardAlign="${singlePaired.pParams.pForwardAlign}" --reverseAlign="${singlePaired.pParams.pReverseAlign}" - --tryHard="${singlePaired.pParams.pTryHard}" - --valAlign="${singlePaired.pParams.pValAlign}" - --allValAligns="${singlePaired.pParams.pAllValAligns}" + --tryHard="${singlePaired.pParams.pBestOption.pTryHardOption.pTryHard}" + --allValAligns="${singlePaired.pParams.pAllValAlignsOption.pAllValAligns}" + #if $singlePaired.pParams.pAllValAlignsOption.pAllValAligns == "noAllValAligns" + --valAlign="${singlePaired.pParams.pAllValAlignsOption.pValAlign}" + #end if --suppressAlign="${singlePaired.pParams.pSuppressAlign}" --best="${singlePaired.pParams.pBestOption.pBest}" #if $singlePaired.pParams.pBestOption.pBest == "doBest": - --maxBacktracks="${singlePaired.pParams.pBestOption.pdMaxBacktracks}" --strata="${singlePaired.pParams.pBestOption.pdStrata}" + #if $singlePaired.pParams.pBestOption.pTryHardOption.pTryHard == "noTryHard" + --maxAlignAttempt="${singlePaired.pParams.pBestOption.pTryHardOption.pMaxAlignAttempt}" + --maxBacktracks="${singlePaired.pParams.pBestOption.pTryHardOption.pdMaxBacktracks}" + #end if #else: - --maxBacktracks="${singlePaired.pParams.pBestOption.pnMaxBacktracks}" + #if $singlePaired.pParams.pBestOption.pTryHardOption.pTryHard == "noTryHard" + --maxAlignAttempt="${singlePaired.pParams.pBestOption.pTryHardOption.pMaxAlignAttempt}" + --maxBacktracks="${singlePaired.pParams.pBestOption.pTryHardOption.pnMaxBacktracks}" + #end if #end if --offrate="${singlePaired.pParams.pOffrate}" --seed="${singlePaired.pParams.pSeed}" @@ -149,7 +169,7 @@ <param name="indexSettings" type="select" label="Choose whether to use Default options for building indices or to Set your own" help="These settings are ignored when using a prebuilt index"> <option value="indexPreSet">Default</option> <option value="indexFull">Set your own</option> - </param> + </param> <when value="indexPreSet" /> <when value="indexFull"> <conditional name="autoBehavior"> @@ -159,13 +179,13 @@ </param> <when value="auto" /> <when value="set"> - <param name="packed" type="select" label="Whether or not to use a packed representation for DNA strings (--packed)"> + <param name="packed" type="select" label="Whether or not to use a packed representation for DNA strings (--packed)" help="Packed representation saves memory but makes indexing 2-3 times slower"> <option value="unpacked">Use regular representation</option> <option value="packed">Use packed representation</option> </param> <param name="bmax" type="integer" value="-1" label="Maximum number of suffixes allowed in a block (--bmax)" help="-1 for not specified. Must be at least 1" /> <param name="bmaxdivn" type="integer" value="4" label="Maximum number of suffixes allowed in a block as a fraction of the length of the reference (--bmaxdivn)" /> - <param name="dcv" type="integer" value="1024" label="The period for the difference-cover sample (--dcv)" /> + <param name="dcv" type="integer" value="1024" min="3" label="The period for the difference-cover sample (--dcv)" help="A larger period yields less memory overhead, but may make suffix sorting slower, especially if repeats are present" /> </when> </conditional> <param name="nodc" type="select" label="Whether or not to disable the use of the difference-cover sample (--nodc)" help="Suffix sorting becomes quadratic-time in the worst case (with a very repetitive reference)"> @@ -176,8 +196,8 @@ <option value="ref">Build all index files</option> <option value="noref">Do not build paired-end alignment index files</option> </param> - <param name="offrate" type="integer" value="5" label="How many rows get marked during annotation of some or all of the Burrows-Wheeler rows (-o)" /> - <param name="ftab" type="integer" value="10" label="The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query (-t)" help="ftab is 4^(n+1) bytes" /> + <param name="offrate" type="integer" value="5" min="0" label="The indexer will mark every 2^n Burrows-Wheeler rows with their corresponding location on the genome (-o)" help="Marking more rows makes reference-position lookups faster, but requires more memory to hold the annotations at runtime" /> + <param name="ftab" type="integer" value="10" min="1" label="The size of the ftab lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query (-t)" help="ftab size is 4^(n+1) bytes" /> <param name="ntoa" type="select" label="Whether or not to convert Ns in the reference sequence to As (--ntoa)"> <option value="no">Do not convert Ns</option> <option value="yes">Convert Ns to As</option> @@ -185,9 +205,8 @@ <param name="endian" type="select" label="Endianness to use when serializing integers to the index file (--big/--little)" help="Little is most appropriate for Intel- and AMD-based architecture"> <option value="little">Little</option> <option value="big">Big</option> - </param> + </param> <param name="seed" type="integer" value="-1" label="Seed for the pseudorandom number generator (--seed)" help="Use -1 to use default" /> - <param name="cutoff" type="integer" value="-1" label="Number of first bases of the reference sequence to index (--cutoff)" help="Use -1 to use default" /> </when> <!-- indexFull --> </conditional> <!-- indexParams --> </when> <!-- history --> @@ -203,49 +222,86 @@ <param name="sSettingsType" type="select" label="Bowtie settings to use" help="For most mapping needs use Commonly used settings. If you want full control use Full parameter list"> <option value="preSet">Commonly used</option> <option value="full">Full parameter list</option> - </param> + </param> <when value="preSet" /> <when value="full"> - <param name="sSkip" type="integer" value="0" label="Skip the first n reads (-s)" /> - <param name="sAlignLimit" type="integer" value="-1" label="Only align the first n reads (-u)" help="-1 for off" /> + <param name="sSkip" type="integer" value="0" label="Skip the first n reads (-s)" /> + <param name="sAlignLimit" type="integer" value="-1" label="Only align the first n reads (-u)" help="-1 for off" /> <param name="sTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" /> <param name="sTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" /> - <param name="sMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" /> - <param name="sMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" /> - <param name="sSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" /> - <param name="sRounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)"> - <option value="round">Round to nearest 10</option> - <option value="noRound">Do not round to nearest 10</option> + <conditional name="alignModeOption"> + <param name="alignMode" type="select" label="Alignment mode"> + <option value="nMode">Maq-like: quality-aware, limit mismatches in seed (-n)</option> + <option value="vMode">ignore qualities, limit end-to-end mismatches (-v)</option> + </param> + <when value="nMode"> + <param name="sMismatchSeed" type="integer" value="2" min="0" max="3" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" /> + <param name="sMismatchQual" type="integer" value="70" min="1" label="Maximum permitted total of quality values at all mismatched read positions (-e)" /> + <param name="sSeedLen" type="integer" value="28" min="5" label="Seed length (-l)" help="Minimum value is 5" /> + <param name="sRounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)" help="Maq accepts quality values in the Phred quality scale, but internally rounds values to the nearest 10, with a maximum of 30. By default, bowtie also rounds this way"> + <option value="round">Round to nearest 10</option> + <option value="noRound">Do not round to nearest 10</option> + </param> + </when> + <when value="vMode"> + <param name="maxMismatches" type="integer" value="" min="0" max="3" label="Maximum number of mismatches (-v)" help="May be 0, 1, 2, or 3" /> + </when> + </conditional> + <param name="sForwardAlign" type="select" label="Choose whether or not to attempt to align against the forward reference strand (--nofw)"> + <option value="forward">Align against the forward reference strand</option> + <option value="noForward">Do not align against the forward reference strand</option> </param> - <param name="sMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" /> - <param name="sTryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode"> - <option value="noTryHard">Do not try hard</option> - <option value="doTryHard">Try hard</option> + <param name="sReverseAlign" type="select" label="Choose whether or not to attempt to align against the reverse-complement reference strand (--norc)"> + <option value="reverse">Align against the reverse-complement reference strand</option> + <option value="noReverse">Do not align against the reverse-complement reference strand</option> </param> - <param name="sValAlign" type="integer" value="1" label="Report up to n valid alignments per read (-k)" /> - <param name="sAllValAligns" type="select" label="Whether or not to report all valid alignments per read (-a)"> - <option value="noAllValAligns">Do not report all valid alignments</option> - <option value="doAllValAligns">Report all valid alignments</option> - </param> - <param name="sSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a read if more than n reportable alignments exist (-m)" help="-1 for no limit" /> - <param name="sMaxFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads with a number of valid alignments exceeding the limit set with the -m option to a file (--max)" /> - <param name="sUnmappedFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads that could not be aligned to a file (--un)" /> <conditional name="sBestOption"> <param name="sBest" type="select" label="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions (--best)" help="Removes all strand bias. Only affects which alignments are reported by Bowtie. Runs slower with best option"> <option value="noBest">Do not use best</option> <option value="doBest">Use best</option> </param> <when value="noBest"> - <param name="snMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" /> + <conditional name="sTryHardOption"> + <param name="sTryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode"> + <option value="noTryHard">Do not try hard</option> + <option value="doTryHard">Try hard</option> + </param> + <when value="noTryHard"> + <param name="snMaxBacktracks" type="integer" value="125" min="0" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" /> + </when> + <when value="doTryHard" /> + </conditional> </when> <when value="doBest"> - <param name="sdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" /> <param name="sdStrata" type="select" label="Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable (--strata)"> <option value="noStrata">Do not use strata option</option> <option value="doStrata">Use strata option</option> </param> + <conditional name="sTryHardOption"> + <param name="sTryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode"> + <option value="noTryHard">Do not try hard</option> + <option value="doTryHard">Try hard</option> + </param> + <when value="noTryHard"> + <param name="sdMaxBacktracks" type="integer" value="800" min="0" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" /> + </when> + <when value="doTryHard" /> + </conditional> </when> </conditional> <!-- bestOption --> + <conditional name="sAllValAlignsOption"> + <param name="sAllValAligns" type="select" label="Whether or not to report all valid alignments per read (-a)"> + <option value="noAllValAligns">Do not report all valid alignments</option> + <option value="doAllValAligns">Report all valid alignments</option> + </param> + <when value="noAllValAligns"> + <param name="sValAlign" type="integer" value="1" min="1" label="Report up to n valid alignments per read (-k)" /> + </when> + <when value="doAllValAligns" /> + </conditional> + <param name="sSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a read if more than n reportable alignments exist (-m)" help="-1 for no limit" /> + <param name="sMaxFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads with a number of valid alignments exceeding the limit set with the -m option to a file (--max)" /> + <param name="sUnmappedFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads that could not be aligned to a file (--un)" /> <param name="sOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" /> <param name="sSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" /> </when> <!-- full --> @@ -257,7 +313,7 @@ <options options_filter_attribute="ext" from_parameter="tool.app.datatypes_registry.datatypes_by_extension" transform_lines="obj.keys()">> <column name="name" index="0"/> <column name="value" index="0"/> - <filter type="param_value" ref="pInput1" ref_attribute="ext" column="0"/> + <filter type="param_value" ref="pInput1" ref_attribute="ext" column="0"/> </options> </param> <param name="pMaxInsert" type="integer" value="1000" label="Maximum insert size for valid paired-end alignments (-X)" /> @@ -273,63 +329,93 @@ </param> <when value="preSet" /> <when value="full"> - <param name="pSkip" type="integer" value="0" label="Skip the first n pairs (-s)" /> - <param name="pAlignLimit" type="integer" value="-1" label="Only align the first n pairs (-u)" help="-1 for off" /> + <param name="pSkip" type="integer" value="0" label="Skip the first n pairs (-s)" /> + <param name="pAlignLimit" type="integer" value="-1" label="Only align the first n pairs (-u)" help="-1 for off" /> <param name="pTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" /> <param name="pTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" /> - <param name="pMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" /> - <param name="pMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" /> - <param name="pSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" /> - <param name="pRounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)"> - <option value="round">Round to nearest 10</option> - <option value="noRound">Do not round to nearest 10</option> - </param> - <param name="pMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" /> + <conditional name="alignModeOption"> + <param name="alignMode" type="select" label="Alignment mode"> + <option value="nMode">Maq-like: quality-aware, limit mismatches in seed (-n)</option> + <option value="vMode">ignore qualities, limit end-to-end mismatches (-v)</option> + </param> + <when value="nMode"> + <param name="pMismatchSeed" type="integer" value="2" min="0" max="3" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" /> + <param name="pMismatchQual" type="integer" value="70" min="1" label="Maximum permitted total of quality values at all mismatched read positions (-e)" /> + <param name="pSeedLen" type="integer" value="28" min="5" label="Seed length (-l)" help="Minimum value is 5" /> + <param name="pRounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)" help="Maq accepts quality values in the Phred quality scale, but internally rounds values to the nearest 10, with a maximum of 30. By default, bowtie also rounds this way"> + <option value="round">Round to nearest 10</option> + <option value="noRound">Do not round to nearest 10</option> + </param> + </when> + <when value="vMode"> + <param name="maxMismatches" type="integer" value="" min="0" max="3" label="Maximum number of mismatches (-v)" help="May be 0, 1, 2, or 3" /> + </when> + </conditional> <param name="pMinInsert" type="integer" value="0" label="Minimum insert size for valid paired-end alignments (-I)" /> - <param name="pMaxAlignAttempt" type="integer" value="100" label="Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate (--pairtries)" /> - <param name="pForwardAlign" type="select" label="Choose whether or not to attempt to align the forward reference strand (--nofw)"> + <param name="pForwardAlign" type="select" label="Choose whether or not to attempt to align against the forward reference strand (--nofw)"> <option value="forward">Align against the forward reference strand</option> <option value="noForward">Do not align against the forward reference strand</option> </param> - <param name="pReverseAlign" type="select" label="Choose whether or not to align against the reverse-complement reference strand (--norc)"> + <param name="pReverseAlign" type="select" label="Choose whether or not to attempt to align against the reverse-complement reference strand (--norc)"> <option value="reverse">Align against the reverse-complement reference strand</option> <option value="noReverse">Do not align against the reverse-complement reference strand</option> </param> - <param name="pTryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode"> - <option value="noTryHard">Do not try hard</option> - <option value="doTryHard">Try hard</option> - </param> - <param name="pValAlign" type="integer" value="1" label="Report up to n valid arguments per pair (-k)" /> - <param name="pAllValAligns" type="select" label="Whether or not to report all valid alignments per pair (-a)"> - <option value="noAllValAligns">Do not report all valid alignments</option> - <option value="doAllValAligns">Report all valid alignments</option> - </param> - <param name="pSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a pair if more than n reportable alignments exist (-m)" help="-1 for no limit" /> - <param name="pMaxFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads with a number of valid alignments exceeding the limit set with the -m option to a file (--max)" /> - <param name="pUnmappedFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads that could not be aligned to a file (--un)" /> <conditional name="pBestOption"> <param name="pBest" type="select" label="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions (--best)" help="Removes all strand bias. Only affects which alignments are reported by Bowtie. Runs slower with best option"> <option value="noBest">Do not use best</option> <option value="doBest">Use best</option> </param> <when value="noBest"> - <param name="pnMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" /> + <conditional name="pTryHardOption"> + <param name="pTryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode"> + <option value="noTryHard">Do not try hard</option> + <option value="doTryHard">Try hard</option> + </param> + <when value="noTryHard"> + <param name="pMaxAlignAttempt" type="integer" value="100" min="1" label="Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate (--pairtries)" /> + <param name="pnMaxBacktracks" type="integer" value="125" min="0" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" /> + </when> + <when value="doTryHard" /> + </conditional> </when> <when value="doBest"> - <param name="pdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" /> <param name="pdStrata" type="select" label="Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable (--strata)"> <option value="noStrata">Do not use strata option</option> <option value="doStrata">Use strata option</option> </param> + <conditional name="pTryHardOption"> + <param name="pTryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode"> + <option value="noTryHard">Do not try hard</option> + <option value="doTryHard">Try hard</option> + </param> + <when value="noTryHard"> + <param name="pMaxAlignAttempt" type="integer" value="100" min="1" label="Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate (--pairtries)" /> + <param name="pdMaxBacktracks" type="integer" value="800" min="0" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" /> + </when> + <when value="doTryHard" /> + </conditional> </when> </conditional> + <conditional name="pAllValAlignsOption"> + <param name="pAllValAligns" type="select" label="Whether or not to report all valid alignments per pair (-a)"> + <option value="noAllValAligns">Do not report all valid alignments</option> + <option value="doAllValAligns">Report all valid alignments</option> + </param> + <when value="noAllValAligns"> + <param name="pValAlign" type="integer" value="1" min="1" label="Report up to n valid alignments per pair (-k)" /> + </when> + <when value="doAllValAligns" /> + </conditional> + <param name="pSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a pair if more than n reportable alignments exist (-m)" help="-1 for no limit" /> + <param name="pMaxFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads with a number of valid alignments exceeding the limit set with the -m option to a file (--max)" /> + <param name="pUnmappedFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads that could not be aligned to a file (--un)" /> <param name="pOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" /> <param name="pSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" /> </when> <!-- full --> </conditional> <!-- pParams --> </when> <!-- paired --> </conditional> <!-- singlePaired --> - <param name="suppressHeader" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Suppress the header in the output SAM file" help="Bowtie produces SAM with several lines of header information by default" /> + <param name="suppressHeader" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Suppress the header in the output SAM file (--sam-nohead)" help="Bowtie produces SAM with several lines of header information by default" /> </inputs> <outputs> <data format="sam" name="output" label="${tool.name} on ${on_string}: mapped reads"> @@ -449,7 +535,7 @@ Bowtie command: bowtie -q -p 4 -S +sam-nohead chrM_base test-data/bowtie_in2.fastqsanger > bowtie_out6_u.sam sort bowtie_out6_u.sam > bowtie_out6.sam - -p is the number of threads. You need to replace the + with 2 dashes. + -p is the number of threads. You need to replace the + with 2 dashes. chrM_base needs to be the base location/name of the index files. --> <param name="genomeSource" value="indexed" /> @@ -472,7 +558,7 @@ Then also need to modify bowtie_out8_1.sam and bowtie_out8_2.sam so that all @ lines come before sequence lines. -p is the number of threads. You need to replace the + with 2 dashes. The two unmapped output files will be named bowtie_out8_1.fastq and bowtie_out8_2.fastq. - chrM_base is the index files' location/base name. + chrM_base is the index files' location/base name. --> <param name="genomeSource" value="history" /> <param name="ownFile" value="phiX.fasta" /> @@ -487,11 +573,11 @@ <param name="pAlignLimit" value="-1" /> <param name="pTrimH" value="0" /> <param name="pTrimL" value="0" /> + <param name="alignMode" value="nMode" /> <param name="pMismatchSeed" value="2" /> <param name="pMismatchQual" value="70" /> <param name="pSeedLen" value="28" /> <param name="pRounding" value="round" /> - <param name="pMaqSoapAlign" value="-1" /> <param name="pMinInsert" value="0" /> <param name="pMaxAlignAttempt" value="100" /> <param name="pForwardAlign" value="forward" /> @@ -527,11 +613,11 @@ <param name="pAlignLimit" value="-1" /> <param name="pTrimH" value="0" /> <param name="pTrimL" value="0" /> + <param name="alignMode" value="nMode" /> <param name="pMismatchSeed" value="2" /> <param name="pMismatchQual" value="70" /> <param name="pSeedLen" value="28" /> <param name="pRounding" value="round" /> - <param name="pMaqSoapAlign" value="-1" /> <param name="pMinInsert" value="0" /> <param name="pMaxAlignAttempt" value="100" /> <param name="pForwardAlign" value="forward" /> @@ -549,8 +635,8 @@ <param name="pSeed" value="-1" /> <param name="suppressHeader" value="true" /> <output name="output" ftype="sam" file="bowtie_out7.sam" sort="True" /> - <output name="output_unmapped_reads_l" ftype="fastqillumna" file="bowtie_out8_1.fastqillumina.sorted" sort="True" /> - <output name="output_unmapped_reads_r" ftype="fastqillumna" file="bowtie_out8_2.fastqillumina.sorted" sort="True" /> + <output name="output_unmapped_reads_l" ftype="fastqillumina" file="bowtie_out8_1.fastqillumina.sorted" sort="True" /> + <output name="output_unmapped_reads_r" ftype="fastqillumina" file="bowtie_out8_2.fastqillumina.sorted" sort="True" /> </test> <test> <param name="genomeSource" value="history" /> @@ -566,11 +652,11 @@ <param name="pAlignLimit" value="-1" /> <param name="pTrimH" value="0" /> <param name="pTrimL" value="0" /> + <param name="alignMode" value="nMode" /> <param name="pMismatchSeed" value="2" /> <param name="pMismatchQual" value="70" /> <param name="pSeedLen" value="28" /> <param name="pRounding" value="round" /> - <param name="pMaqSoapAlign" value="-1" /> <param name="pMinInsert" value="0" /> <param name="pMaxAlignAttempt" value="100" /> <param name="pForwardAlign" value="forward" /> @@ -591,14 +677,14 @@ <output name="output_unmapped_reads_l" ftype="fastqsolexa" file="bowtie_out8_1.fastqsolexa.sorted" sort="True" /> <output name="output_unmapped_reads_r" ftype="fastqsolexa" file="bowtie_out8_2.fastqsolexa.sorted" sort="True" /> </test> - <!-- end testing of non-sanger variant fastq reads --> + <!-- end testing of non-sanger variant fastq reads --> <test> <!-- Bowtie command: - bowtie -q -p 4 -S +sam-nohead -n 2 -e 70 -l 28 +maxbts 125 -y -k 1 chrM_base test-data/bowtie_in2.fastqsanger > bowtie_out9_u.sam + bowtie -q -p 4 -S +sam-nohead -n 2 -e 70 -l 28 -y -k 1 chrM_base test-data/bowtie_in2.fastqsanger > bowtie_out9_u.sam sort bowtie_out9_u.sam > bowtie_out9.sam -p is the number of threads. You need to replace the + with 2 dashes. - chrM_base is the index files' location/base name. + chrM_base is the index files' location/base name. --> <param name="genomeSource" value="indexed" /> <!-- this is the backwards-compatible "unique value" for this index, not an actual path --> @@ -610,11 +696,13 @@ <param name="sAlignLimit" value="-1" /> <param name="sTrimH" value="0" /> <param name="sTrimL" value="0" /> + <param name="alignMode" value="nMode" /> <param name="sMismatchSeed" value="2" /> <param name="sMismatchQual" value="70" /> <param name="sSeedLen" value="28" /> <param name="sRounding" value="round" /> - <param name="sMaqSoapAlign" value="-1" /> + <param name="sForwardAlign" value="forward" /> + <param name="sReverseAlign" value="reverse" /> <param name="sTryHard" value="doTryHard" /> <param name="sValAlign" value="1" /> <param name="sAllValAligns" value="noAllValAligns" /> @@ -622,7 +710,6 @@ <param name="sUnmappedFile" value="false" /> <param name="sMaxFile" value="false" /> <param name="sBest" value="noBest" /> - <param name="snMaxBacktracks" value="125" /> <param name="sOffrate" value="-1" /> <param name="sSeed" value="-1" /> <param name="suppressHeader" value="true" /> @@ -635,7 +722,7 @@ bowtie -q -X 1000 +ff -p 4 -S +sam-nohead phiX_base -1 test-data/bowtie_in5.fastqsanger -2 test-data/bowtie_in6.fastqsanger > bowtie_out10_u.sam sort bowtie_out10_u.sam > bowtie_out10.sam -p is the number of threads. You need to replace the + with 2 dashes. - chrM_base is the index files' location/base name. + chrM_base is the index files' location/base name. --> <param name="genomeSource" value="history" /> <param name="ownFile" value="phiX.fasta" /> @@ -648,7 +735,6 @@ <param name="ntoa" value="no" /> <param name="endian" value="little" /> <param name="seed" value="-1" /> - <param name="cutoff" value="-1" /> <param name="sPaired" value="paired" /> <param name="pInput1" ftype="fastqsanger" value="bowtie_in5.fastqsanger" /> <param name="pInput2" ftype="fastqsanger" value="bowtie_in6.fastqsanger" /> @@ -697,7 +783,7 @@ The output is in SAM format, and has the following columns:: Column Description - -------- -------------------------------------------------------- + -------- -------------------------------------------------------- 1 QNAME Query (pair) NAME 2 FLAG bitwise FLAG 3 RNAME Reference sequence NAME @@ -710,7 +796,7 @@ 10 SEQ query SEQuence on the same strand as the reference 11 QUAL query QUALity (ASCII-33 gives the Phred base quality) 12 OPT variable OPTional fields in the format TAG:VTYPE:VALUE - + The flags are as follows:: Flag Description @@ -760,8 +846,8 @@ -o Offrate. How many Burrows-Wheeler rows get marked by the indexer. The indexer will mark every 2^INT rows. The marked rows correspond to rows on the genome. [5] - -t INT Ftab. The lookup table used to calculate an initial Burrows-Wheeler range - with respect to the first INT characters of the query. Ftab is 4^INT+1 + -t INT The ftab lookup table used to calculate an initial Burrows-Wheeler range + with respect to the first INT characters of the query. Ftab size is 4^(INT+1) bytes. [10] --ntoa N conversion. Convert Ns to As before building the index. Otherwise, Ns are simply excluded from the index and Bowtie will not find alignments that @@ -769,8 +855,6 @@ --big Endianness. Endianness to use when serializing integers to the index file. [off] --little Endianness. [--little] --seed INT Random seed. Use INT as the seed for the pseudo-random number generator. [off] - --cutoff INT Cutoff. Index only the first INT bases of the reference sequences (cumulative - across sequences) and ignore the rest. [off] For aligning (bowtie):: @@ -787,10 +871,10 @@ at 30. [70] -l INT Seed length. The number of bases on the high-quality end of the read to which the -n ceiling applies. Must be at least 5. [28] - --nomaqround Suppress MAQ rounding. Values are internally rounded to the nearest 10 and + --nomaqround Suppress Maq rounding. Values are internally rounded to the nearest 10 and saturate at 30. This options turns off that rounding. [off] - -v INT MAQ- or SOAP-like alignment policy. This option turns off the default - MAQ-like alignment policy in favor of a SOAP-like one. End-to-end alignments + -v INT Maq- or SOAP-like alignment policy. This option turns off the default + Maq-like alignment policy in favor of a SOAP-like one. End-to-end alignments with at most INT mismatches. [off] -I INT Minimum insert. The minimum insert size for valid paired-end alignments. Does checking on untrimmed reads if -5 or -3 is used. [0] @@ -835,5 +919,8 @@ --col-keepends Keep the extreme-end nucleotides and qualities when decoding colorspace alignments. [off] - </help> + </help> + <citations> + <citation type="doi">10.1186/gb-2009-10-3-r25</citation> + </citations> </tool>
--- a/tool_dependencies.xml Fri Feb 21 12:40:39 2014 -0500 +++ b/tool_dependencies.xml Tue Jul 21 13:04:45 2015 -0400 @@ -1,6 +1,6 @@ <?xml version="1.0"?> <tool_dependency> <package name="bowtie" version="0.12.7"> - <repository changeset_revision="9f9f38617a98" name="package_bowtie_0_12_7" owner="devteam" toolshed="http://toolshed.g2.bx.psu.edu" /> + <repository changeset_revision="9f9f38617a98" name="package_bowtie_0_12_7" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" /> </package> </tool_dependency>