galaxy-dev
Threads by month
- ----- 2026 -----
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- 10009 discussions
22 Jan '10
details: http://www.bx.psu.edu/hg/galaxy/rev/35d2a31cfbaf
changeset: 3230:35d2a31cfbaf
user: Kelly Vincent <kpvincent(a)bx.psu.edu>
date: Tue Jan 12 16:49:02 2010 -0500
description:
Changed the bowtie wrapper tool into two different tools: one for illumina data and one for solid
diffstat:
test-data/bowtie_in1.fastq | 5 -
test-data/bowtie_in2.fastq | 4 -
test-data/bowtie_in3.fastq | 4 -
test-data/bowtie_in4.fastqsanger | 2 +-
test-data/bowtie_out3.sam | 4 +-
test-data/bowtie_out7.sam | 4 +-
tool_conf.xml.sample | 1 +
tools/sr_mapping/bowtie_color_wrapper.xml | 659 +++++++++++++
tools/sr_mapping/bowtie_wrapper.py | 51 +-
tools/sr_mapping/bowtie_wrapper.xml | 1423 +++++++++-------------------
tools/sr_mapping/bowtie_wrapper_code.py | 13 +-
11 files changed, 1141 insertions(+), 1029 deletions(-)
diffs (2385 lines):
diff -r b78de785df21 -r 35d2a31cfbaf test-data/bowtie_in1.fastq
--- a/test-data/bowtie_in1.fastq Tue Jan 12 15:48:21 2010 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-@HWI-EAS91_1_30788AAXX:1:1:1513:715/1
-GTTTTTTNNGCATAGATGTTTAGTTGTGGTAGTCAG
-+/1
-IIIIIII""IIIIIIIIIIIIIIIIIIIDI?II-+I
-
diff -r b78de785df21 -r 35d2a31cfbaf test-data/bowtie_in2.fastq
--- a/test-data/bowtie_in2.fastq Tue Jan 12 15:48:21 2010 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-@HWI-EAS91_1_30788AAXX:1:2:618:346/1
-TAGACTACGAAAGTGACTTTAATACCTCTGACTACA
-+
-IIIIIIIIIIIIIIIIIIIIIIIIIIIII%4II;I3
diff -r b78de785df21 -r 35d2a31cfbaf test-data/bowtie_in3.fastq
--- a/test-data/bowtie_in3.fastq Tue Jan 12 15:48:21 2010 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-@HWI-EAS91_1_30788AAXX:1:2:618:346/2
-ATAGGCTGAATTAGCAATGGATGGTGGGGTTTATCG
-+
-IIIIIIIIIIIIIII9I.II5II6DFIIIIII*I2)
diff -r b78de785df21 -r 35d2a31cfbaf test-data/bowtie_in4.fastqsanger
--- a/test-data/bowtie_in4.fastqsanger Tue Jan 12 15:48:21 2010 -0500
+++ b/test-data/bowtie_in4.fastqsanger Tue Jan 12 16:49:02 2010 -0500
@@ -1,4 +1,4 @@
@869_1532_1255/2
-2200333112212110002221031T
+T1301222000112122113330022
+
;89<:==5<8>69;8=<9;<>9:=<
diff -r b78de785df21 -r 35d2a31cfbaf test-data/bowtie_out3.sam
--- a/test-data/bowtie_out3.sam Tue Jan 12 15:48:21 2010 -0500
+++ b/test-data/bowtie_out3.sam Tue Jan 12 16:49:02 2010 -0500
@@ -1,2 +1,2 @@
-869_1532_1255 163 chrM 3727 255 27M = 3752 50 GGAAATATGTCTGACAAAAGAGTTACT !!PTUVYQPSUSNSRTXTSVYVRVX<! XA:i:2 MD:Z:27 NM:i:0 CM:i:2
-869_1532_1255 83 chrM 3752 255 25M = 3727 -50 CTTTGATAGAGTAAAACATAGAGGC >USVY_UOXZWRQRSUY[\^XQR!! XA:i:1 MD:Z:25 NM:i:0 CM:i:1
+869_1532_1255 179 chrM 3727 255 25M = 3752 50 GGAAATATGTCTGACAAAAGAGTTA !!RVYVSTXTRSNSUSPQYVUTPR; XA:i:1 MD:Z:25 NM:i:0 CM:i:1
+869_1532_1255 115 chrM 3752 255 25M = 3727 -50 CTTTGATAGAGTAAAACATAGAGGC >USVY_UOXZWRQRSUY[\^XQR!! XA:i:1 MD:Z:25 NM:i:0 CM:i:1
diff -r b78de785df21 -r 35d2a31cfbaf test-data/bowtie_out7.sam
--- a/test-data/bowtie_out7.sam Tue Jan 12 15:48:21 2010 -0500
+++ b/test-data/bowtie_out7.sam Tue Jan 12 16:49:02 2010 -0500
@@ -1,2 +1,2 @@
-869_1532_1255 163 chrM 3728 255 25M = 3752 47 GAAATATGTCTGACAAAAGAGTTAC !PTUVYQPSUSNSRTXTSVYVRVX< XA:i:2 MD:Z:25 NM:i:0 CM:i:2
-869_1532_1255 83 chrM 3753 255 23M = 3727 -49 TTTGATAGAGTAAAACATAGAGG USVY_UOXZWRQRSUY[\^XQR! XA:i:1 MD:Z:23 NM:i:0 CM:i:1
+869_1532_1255 77 * 0 0 * * 0 0 CAGGGTTCCAAATCGGGTTGCAAG =;8:?@=?;;9:8;=>;5A?;<8> XM:i:0
+869_1532_1255 141 * 0 0 * * 0 0 TACGGGAAACCGCGGCCTTTAAGG ;89<:==5<8>69;8=<9;<>9:= XM:i:0
diff -r b78de785df21 -r 35d2a31cfbaf tool_conf.xml.sample
--- a/tool_conf.xml.sample Tue Jan 12 15:48:21 2010 -0500
+++ b/tool_conf.xml.sample Tue Jan 12 16:49:02 2010 -0500
@@ -192,6 +192,7 @@
<section name="NGS: Mapping" id="solexa_tools">
<tool file="sr_mapping/lastz_wrapper.xml" />
<tool file="sr_mapping/bowtie_wrapper.xml" />
+ <tool file="sr_mapping/bowtie_color_wrapper.xml" />
<tool file="sr_mapping/bwa_wrapper.xml" />
<tool file="metag_tools/megablast_wrapper.xml" />
<tool file="metag_tools/megablast_xml_parser.xml" />
diff -r b78de785df21 -r 35d2a31cfbaf tools/sr_mapping/bowtie_color_wrapper.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/sr_mapping/bowtie_color_wrapper.xml Tue Jan 12 16:49:02 2010 -0500
@@ -0,0 +1,659 @@
+<tool id="bowtie_color_wrapper" name="Map with Bowtie for SOLiD" version="1.0.0">
+ <description></description>
+ <command interpreter="python">
+ bowtie_wrapper.py
+ --threads="4"
+ --dataType="solid"
+ --output=$output
+ --suppressHeader=$suppressHeader
+ --genomeSource=$refGenomeSource.genomeSource
+ #if $refGenomeSource.genomeSource == "history":
+ --ref=$refGenomeSource.ownFile
+ --dbkey=$dbkey
+ --indexSettings=$refGenomeSource.indexParams.indexSettings
+ #if $refGenomeSource.indexParams.indexSettings == "indexFull":
+ --iautoB=$refGenomeSource.indexParams.autoBehavior.autoB
+ #if $refGenomeSource.indexParams.autoBehavior.autoB == "set":
+ --ipacked=$refGenomeSource.indexParams.autoBehavior.packed
+ --ibmax=$refGenomeSource.indexParams.autoBehavior.bmax
+ --ibmaxdivn=$refGenomeSource.indexParams.autoBehavior.bmaxdivn
+ --idcv=$refGenomeSource.indexParams.autoBehavior.dcv
+ #else:
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ #end if
+ --inodc=$refGenomeSource.indexParams.nodc
+ --inoref=$refGenomeSource.indexParams.noref
+ --ioffrate=$refGenomeSource.indexParams.offrate
+ --iftab=$refGenomeSource.indexParams.ftab
+ --intoa=$refGenomeSource.indexParams.ntoa
+ --iendian=$refGenomeSource.indexParams.endian
+ --iseed=$refGenomeSource.indexParams.seed
+ --icutoff=$refGenomeSource.indexParams.cutoff
+ #else:
+ --iautoB="None"
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ --inodc="None"
+ --inoref="None"
+ --ioffrate="None"
+ --iftab="None"
+ --intoa="None"
+ --iendian="None"
+ --iseed="None"
+ --icutoff="None"
+ #end if
+ #else:
+ --ref=$refGenomeSource.index.value
+ --dbkey="None"
+ --indexSettings="None"
+ --iautoB="None"
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ --inodc="None"
+ --inoref="None"
+ --ioffrate="None"
+ --iftab="None"
+ --intoa="None"
+ --iendian="None"
+ --iseed="None"
+ --icutoff="None"
+ #end if
+ --paired=$singlePaired.sPaired
+ #if $singlePaired.sPaired == "single":
+ --input1=$singlePaired.sInput1
+ --input2="None"
+ --params=$singlePaired.sParams.sSettingsType
+ #if $singlePaired.sParams.sSettingsType == "full":
+ --skip=$singlePaired.sParams.sSkip
+ --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
+ --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
+ #else:
+ --maxBacktracks=$singlePaired.sParams.sBestOption.snMaxBacktracks
+ --strata="None"
+ #end if
+ --offrate=$singlePaired.sParams.sOffrate
+ --seed=$singlePaired.sParams.sSeed
+ --snpphred=$singlePaired.sParams.sSnpphred
+ --snpfrac=$singlePaired.sParams.sSnpfrac
+ --keepends=$singlePaired.sParams.sKeepends
+ #else:
+ --skip="None"
+ --alignLimit="None"
+ --trimH="None"
+ --trimL="None"
+ --mismatchSeed="None"
+ --mismatchQual="None"
+ --seedLen="None"
+ --rounding="None"
+ --maqSoapAlign="None"
+ --tryHard="None"
+ --valAlign="None"
+ --allValAligns="None"
+ --suppressAlign="None"
+ --best="None"
+ --maxBacktracks="None"
+ --strata="None"
+ --offrate="None"
+ --seed="None"
+ --snpphred="None"
+ --snpfrac="None"
+ --keepends="None"
+ #end if
+ --minInsert="None"
+ --maxInsert="None"
+ --mateOrient="None"
+ --maxAlignAttempt="None"
+ --forwardAlign="None"
+ --reverseAlign="None"
+ #else:
+ --input1=$singlePaired.pInput1
+ --input2=$singlePaired.pInput2
+ --params=$singlePaired.pParams.pSettingsType
+ #if $singlePaired.pParams.pSettingsType == "full":
+ --skip=$singlePaired.pParams.pSkip
+ --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
+ --minInsert=$singlePaired.pParams.pMinInsert
+ --maxInsert=$singlePaired.pParams.pMaxInsert
+ --mateOrient=$singlePaired.pParams.pMateOrient
+ --maxAlignAttempt=$singlePaired.pParams.pMaxAlignAttempt
+ --forwardAlign=$singlePaired.pParams.pForwardAlign
+ --reverseAlign=$singlePaired.pParams.pReverseAlign
+ --tryHard=$singlePaired.pParams.pTryHard
+ --valAlign=$singlePaired.pParams.pValAlign
+ --allValAligns=$singlePaired.pParams.pAllValAligns
+ --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
+ #else:
+ --maxBacktracks=$singlePaired.pParams.pBestOption.pnMaxBacktracks
+ --strata="None"
+ #end if
+ --offrate=$singlePaired.pParams.pOffrate
+ --seed=$singlePaired.pParams.pSeed
+ --snpphred=$singlePaired.pParams.pSnpphred
+ --snpfrac=$singlePaired.pParams.pSnpfrac
+ --keepends=$singlePaired.pParams.pKeepends
+ #else:
+ --skip="None"
+ --alignLimit="None"
+ --trimH="None"
+ --trimL="None"
+ --mismatchSeed="None"
+ --mismatchQual="None"
+ --seedLen="None"
+ --rounding="None"
+ --maqSoapAlign="None"
+ --minInsert="None"
+ --maxInsert="None"
+ --mateOrient="None"
+ --maxAlignAttempt="None"
+ --forwardAlign="None"
+ --reverseAlign="None"
+ --tryHard="None"
+ --valAlign="None"
+ --allValAligns="None"
+ --suppressAlign="None"
+ --best="None"
+ --maxBacktracks="None"
+ --strata="None"
+ --offrate="None"
+ --seed="None"
+ --snpphred="None"
+ --snpfrac="None"
+ --keepends="None"
+ #end if
+ #end if
+ </command>
+ <inputs>
+ <conditional name="refGenomeSource">
+ <param name="genomeSource" type="select" label="Will you select a reference genome from your history or use a built-in index?" help="Built-ins were indexed using default options">
+ <option value="indexed">Use a built-in index</option>
+ <option value="history">Use one from the history</option>
+ </param>
+ <when value="indexed">
+ <param name="index" type="select" label="Select the reference genome" help="if your genome of interest is not listed - contact Galaxy team">
+ <options from_file="bowtie_indices_color.loc">
+ <column name="value" index="1" />
+ <column name="name" index="0" />
+ </options>
+ </param>
+ </when>
+ <when value="history">
+ <param name="ownFile" type="data" format="fasta" metadata_name="dbkey" label="Select a reference genome" />
+ <conditional name="indexParams">
+ <param name="indexSettings" type="select" label="Choose whether to use default options for building indices or to set your own">
+ <option value="indexPreSet">Default</option>
+ <option value="indexFull">Set your own</option>
+ </param>
+ <when value="indexPreSet" />
+ <when value="indexFull">
+ <conditional name="autoBehavior">
+ <param name="autoB" type="select" label="Choose to use automatic or specified behavior for some parameters (-a)" help="Allows you to set --packed, --bmax, --bmaxdivn, and --dcv">
+ <option value="auto">Automatic behavior</option>
+ <option value="set">Set values (sets --noauto and allows others to be set)</option>
+ </param>
+ <when value="auto" />
+ <when value="set">
+ <param name="packed" type="select" label="Whether or not to use a packed representation for DNA strings (-p)">
+ <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)" />
+ </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 (a very repetitive reference)">
+ <option value="dc">Use difference-cover sample</option>
+ <option value="nodc">Disable difference-cover sample</option>
+ </param>
+ <param name="noref" type="select" label="Whether or not to build the part of the reference index used only in paired-end alignment (-r)">
+ <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="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>
+ </param>
+ <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 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> <!-- cIndexFull -->
+ </conditional> <!-- cIndexParams -->
+ </when> <!-- cHistory -->
+ </conditional> <!-- cRefGenomeSource -->
+ <conditional name="singlePaired">
+ <param name="sPaired" type="select" label="Is this library mate-paired?">
+ <option value="single">Single-end</option>
+ <option value="paired">Paired-end</option>
+ </param>
+ <when value="single">
+ <param name="sInput1" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <conditional name="sParams">
+ <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>
+ <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="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>
+ </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>
+ <param name="sValAlign" type="integer" value="1" label="Report up to n valid arguments 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" />
+ <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)" />
+ </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>
+ </when>
+ </conditional> <!-- csBestOption -->
+ <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" />
+ <param name="sSnpphred" type="integer" value="-1" label="SNP penalty (ratio of SNPs per base in the subject genome) (--snpphred)" help="Enter this OR Ratio of SNPs per base" />
+ <param name="sSnpfrac" type="float" value="0.001" label="Ratio of SNPs per base (estimated ratio for colorspace alignments) (--snpfrac)" help="Enter this OR SNP penalty" />
+ <param name="sKeepends" type="select" label="Keep the extreme-ends nucleotides and qualities rather than trimming them (--keepends)">
+ <option value="doKeepends">Keep ends</option>
+ <option value="noKeepends">Trim ends</option>
+ </param>
+ </when> <!-- csFull -->
+ </conditional> <!-- csParams -->
+ </when> <!-- cSingle -->
+ <when value="paired">
+ <param name="pInput1" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <param name="pInput2" type="data" format="fastqsanger" label="Reverse FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <conditional name="pParams">
+ <param name="pSettingsType" 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>
+ <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="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" />
+ <param name="pMinInsert" type="integer" value="0" label="Minimum insert size for valid paired-end alignments (-I)" />
+ <param name="pMaxInsert" type="integer" value="250" label="Maximum insert size for valid paired-end alignments (-X)" />
+ <param name="pMateOrient" type="select" label="The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand (--fr/--rf/--ff)">
+ <option value="ff">FF (for SOLiD)</option>
+ <option value="fr">FR (for Illumina)</option>
+ <option value="rf">RF</option>
+ </param>
+ <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)">
+ <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)">
+ <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" />
+ <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)" />
+ </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>
+ </when>
+ </conditional> <!-- cpBestOption -->
+ <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" />
+ <param name="pSnpphred" type="integer" value="-1" label="SNP penalty (ratio of SNPs per base in the subject genome) (--snpphred)" help="Enter this OR Ratio of SNPs per base" />
+ <param name="pSnpfrac" type="float" value="0.001" label="Ratio of SNPs per base (estimated ratio for colorspace alignments) (--snpfrac)" help="Enter this OR SNP penalty" />
+ <param name="pKeepends" type="select" label="Keep the extreme-ends nucleotides and qualities rather than trimming them (--keepends)">
+ <option value="doKeepends">Keep ends</option>
+ <option value="noKeepends">Trim ends</option>
+ </param>
+ </when> <!-- cpFull -->
+ </conditional> <!-- cpParams -->
+ </when> <!-- cPaired -->
+ </conditional> <!-- cSinglePaired -->
+ <param name="suppressHeader" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Suppress the header in the output SAM file" help="Bowtie produces SAM with several lines of header information" />
+ </inputs>
+ <outputs>
+ <data format="sam" name="output" />
+ </outputs>
+ <tests>
+ <test>
+ <!--
+ Bowtie command:
+ bowtie -p 4 -S +sam-nohead -q -C chrM_color test-data/bowtie_in1.fastqsanger > test-data/bowtie_out1.sam
+ -p is the number of threads, which is hardcoded above. You need to replace the + with 2 dashes.
+ chrM_color needs to be the base location/name of the index files.
+ -->
+ <param name="genomeSource" value="indexed" />
+ <param name="index" value="equCab2chrM" />
+ <param name="sPaired" value="single" />
+ <param name="sInput1" ftype="fastqsanger" value="bowtie_in1.fastqsanger" />
+ <param name="sSettingsType" value="preSet" />
+ <param name="suppressHeader" value="true" />
+ <output name="output" ftype="sam" file="bowtie_out1.sam" />
+ </test>
+ <test>
+ <!--
+ Bowtie command:
+ bowtie-build -f -C test-data/chr_m.fasta chrM_color
+ bowtie -n 2 -e 70 -l 28 -X 250 +ff +pairtries 100 +maxbts 125 -k 1 -C +snpfrac 0.001 +col-keepends -p 4 -S +sam-nohead -q chrM_color -1 test-data/bowtie_in3.fastqsanger -2 test-data/bowtie_in4.fastqsanger > test-data/bowtie_out3.sam
+ -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
+ chrM_base is the index files' location/base name.
+ -->
+ <param name="genomeSource" value="history" />
+ <param name="ownFile" value="chr_m.fasta" />
+ <param name="indexSettings" value="indexPreSet" />
+ <param name="sPaired" value="paired" />
+ <param name="pInput1" ftype="fastqsanger" value="bowtie_in3.fastqsanger" />
+ <param name="pInput2" ftype="fastqsanger" value="bowtie_in4.fastqsanger" />
+ <param name="pSettingsType" value="full" />
+ <param name="pSkip" value="0" />
+ <param name="pAlignLimit" value="-1" />
+ <param name="pTrimH" value="0" />
+ <param name="pTrimL" value="0" />
+ <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="pMaxInsert" value="250" />
+ <param name="pMateOrient" value="ff" />
+ <param name="pMaxAlignAttempt" value="100" />
+ <param name="pForwardAlign" value="forward" />
+ <param name="pReverseAlign" value="reverse" />
+ <param name="pTryHard" value="noTryHard" />
+ <param name="pValAlign" value="1" />
+ <param name="pAllValAligns" value="noAllValAligns" />
+ <param name="pSuppressAlign" value="-1" />
+ <param name="pBest" value="noBest" />
+ <param name="pnMaxBacktracks" value="125" />
+ <param name="pOffrate" value="-1" />
+ <param name="pSeed" value="-1" />
+ <param name="pSnpphred" value="-1" />
+ <param name="pSnpfrac" value="0.001" />
+ <param name="pKeepends" value="doKeepends" />
+ <param name="suppressHeader" value="true" />
+ <output name="output" ftype="sam" file="bowtie_out3.sam" />
+ </test>
+ <test>
+ <!--
+ Bowtie command:
+ bowtie -n 2 -e 70 -l 28 +maxbts 125 -k 1 -C +snpfrac 0.001 +col-keepends -p 4 -S +sam-nohead -q chrM_color test-data/bowtie_in1.fastqsanger > test-data/bowtie_out5.sam
+ -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
+ chrM_base is the index files' location/base name.
+ -->
+ <param name="genomeSource" value="indexed" />
+ <param name="index" value="equCab2chrM" />
+ <param name="sPaired" value="single" />
+ <param name="sInput1" ftype="fastqsanger" value="bowtie_in1.fastqsanger" />
+ <param name="sSettingsType" value="full" />
+ <param name="sSkip" value="0" />
+ <param name="sAlignLimit" value="-1" />
+ <param name="sTrimH" value="0" />
+ <param name="sTrimL" value="0" />
+ <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="sTryHard" value="noTryHard" />
+ <param name="sValAlign" value="1" />
+ <param name="sAllValAligns" value="noAllValAligns" />
+ <param name="sSuppressAlign" value="-1" />
+ <param name="sBest" value="noBest" />
+ <param name="snMaxBacktracks" value="125" />
+ <param name="sOffrate" value="-1" />
+ <param name="sSeed" value="-1" />
+ <param name="sSnpphred" value="-1" />
+ <param name="sSnpfrac" value="0.001" />
+ <param name="sKeepends" value="doKeepends" />
+ <param name="suppressHeader" value="true" />
+ <output name="output" ftype="sam" file="bowtie_out5.sam" />
+ </test>
+ <test>
+ <!--
+ Bowtie command:
+ bowtie-build +noauto +bmaxdivn 4 +dcv 1024 +offrate 5 +ftabchars 10 +little -C -f test-data/chr_m.fasta chrM_color
+ bowtie -p 4 -S +sam-nohead -q -C chrM_color -1 test-data/bowtie_in3.fastqsanger -2 test-data/bowtie_in4.fastqsanger > test-data/bowtie_out7.sam
+ -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
+ chrM_base is the index files' location/base name.
+ -->
+ <param name="genomeSource" value="cHistory" />
+ <param name="ownFile" value="chr_m.fasta" />
+ <param name="indexSettings" value="indexFull" />
+ <param name="autoB" value="set" />
+ <param name="packed" value="unpacked" />
+ <param name="bmax" value="-1" />
+ <param name="bmaxdivn" value="4" />
+ <param name="dcv" value="1024" />
+ <param name="nodc" value="dc" />
+ <param name="noref" value="ref" />
+ <param name="offrate" value="5" />
+ <param name="ftab" value="10" />
+ <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_in3.fastqsanger" />
+ <param name="pInput2" ftype="fastqsanger" value="bowtie_in4.fastqsanger" />
+ <param name="pSettingsType" value="preSet" />
+ <param name="suppressHeader" value="true" />
+ <output name="output" ftype="sam" file="bowtie_out7.sam" />
+ </test>
+ </tests>
+
+ <help>
+
+**What it does**
+
+Bowtie_ is a short read aligner designed to be ultrafast and memory-efficient. It is developed by Ben Langmead and Cole Trapnell. Please cite: Langmead B, Trapnell C, Pop M, Salzberg SL. Ultrafast and memory-efficient alignment of short DNA sequences to the human genome. Genome Biology 10:R25.
+
+.. _Bowtie: http://bowtie-bio.sourceforge.net/index.shtml
+
+------
+
+**Know what you are doing**
+
+.. class:: warningmark
+
+There is no such thing (yet) as automated gearshift in short read mapping. It is all like stick-shift driving in San Francisco. In other words = running this tool with default parameters will probably not give you meaningful results. A way to deal with this is to **understand** the parameters by carefully reading `documentation`__ and experimenting. Fortunaly, Galaxy makes experimenting easy.
+
+ .. __: http://bowtie-bio.sourceforge.net/index.shtml
+
+------
+
+**Input formats**
+
+Bowtie accepts files in Sanger FASTQ format.
+
+------
+
+**Outputs**
+
+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
+ 4 POS 1-based leftmost POSition/coordinate of clipped sequence
+ 5 MAPQ MAPping Quality (Phred-scaled)
+ 6 CIGAR extended CIGAR string
+ 7 MRNM Mate Reference sequence NaMe ('=' if same as RNAME)
+ 8 MPOS 1-based Mate POSition
+ 9 ISIZE Inferred insert SIZE
+ 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
+ ------ -------------------------------------
+ 0x0001 the read is paired in sequencing
+ 0x0002 the read is mapped in a proper pair
+ 0x0004 the query sequence itself is unmapped
+ 0x0008 the mate is unmapped
+ 0x0010 strand of the query (1 for reverse)
+ 0x0020 strand of the mate
+ 0x0040 the read is the first read in a pair
+ 0x0080 the read is the second read in a pair
+ 0x0100 the alignment is not primary
+
+It looks like this (scroll sideways to see the entire example)::
+
+ QNAME FLAG RNAME POS MAPQ CIAGR MRNM MPOS ISIZE SEQ QUAL OPT
+ HWI-EAS91_1_30788AAXX:1:1:1761:343 4 * 0 0 * * 0 0 AAAAAAANNAAAAAAAAAAAAAAAAAAAAAAAAAAACNNANNGAGTNGNNNNNNNGCTTCCCACAGNNCTGG hhhhhhh;;hhhhhhhhhhh^hOhhhhghhhfhhhgh;;h;;hhhh;h;;;;;;;hhhhhhghhhh;;Phhh
+ HWI-EAS91_1_30788AAXX:1:1:1578:331 4 * 0 0 * * 0 0 GTATAGANNAATAAGAAAAAAAAAAATGAAGACTTTCNNANNTCTGNANNNNNNNTCTTTTTTCAGNNGTAG hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhhhh;;h;;hhhh;h;;;;;;;hhhhhhhhhhh;;hhVh
+
+-------
+
+**Bowtie settings**
+
+All of the options have a default value. You can change any of them. Most of the options in Bowtie have been implemented here.
+
+------
+
+**Bowtie parameter list**
+
+This is an exhaustive list of Bowtie options:
+
+For indexing (bowtie-build)::
+ -a No auto behavior. Disable the default behavior where bowtie automatically selects values for --bmax/--dcv/--packed parameters according to the memory available. [off]
+ -p Packing. Use a packed representation for DNA strings. [auto]
+ --bmax <int> Suffix maximum. The maximum number of suffixes allowed in a block. [auto]
+ --bmaxdivn <int> Suffix maximum fraction. The maximum number of suffixes allowed in a block expressed as a fraction of the length of the reference. [4]
+ --dcv <int> Difference-cover sample. Use <int> as the period for the difference-cover sample. [1024]
+ --nodc <int> No difference-cover sample. Disable the difference-cover sample. [off]
+ -r No reference indexes. Do not build the NAME.3.ebwt and NAME.4.ebwt portions of the index, used only for paired-end alignment. [off]
+ -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 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 overlap them. [off]
+ --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)::
+ -s <int> Skip. Do not align the first <int> reads or pairs in the input. [off]
+ -u <int> Align limit. Only align the first <int> reads/pairs from the input. [no limit]
+ -5 <int> High-quality trim. Trim <int> bases from the high-quality (left) end of each read before alignment. [0]
+ -3 <int> Low-quality trim. Trim <int> bases from the low-quality (right) end of each read before alignment. [0]
+ -n <int> Mismatch seed. Maximum number of mismatches permitted in the seed (defined with seed length option). Can be 0, 1, 2, or 3. [2]
+ -e <int> Mismatch quality. Maximum permitted total of quality values at mismatched read positions. Bowtie rounds quality values to the nearest 10 and saturates 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 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 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]
+ --fr Mate orientation. The upstream/downstream mate orientations for a valid paired-end alignment against the forward reference strand. [--fr]
+ --rf Mate orientation. [off]
+ --ff Mate orientation. [off]
+ -X <int> Maximum insert. The maximum insert size for valid paired-end alignments. Does checking on untrimmed reads if -5 or -3 is used. [250]
+ --pairtries <int> Maximum alignment attempts for paired-end data. [100]
+ --nofw No forward aligning. Choosing this option means that Bowtie will not attempt to align against the forward reference strand. [off]
+ --norc No reverse-complement aligning. Setting this will mean that Bowtie will not attempt to align against the reverse-complement reference strand. [off]
+ --maxbts <int> Maximum backtracks. The maximum number of backtracks permitted when aligning a read in -n 2 or -n 3 mode. [125 without --best] [800 with --best]
+ -y Try hard. Try as hard as possible to find valid alignments when they exist, including paired-end alignments. [off]
+ --chunkmbs <int> Thread memory. The number of megabytes of memory a given thread is given to store path descriptors in --best mode. [32]
+ -k <int> Valid alignments. The number of valid alignments per read or pair. [off]
+ -a All valid alignments. Choosing this means that all valid alignments per read or pair will be reported. [off]
+ -m <int> Suppress alignments. Suppress all alignments for a particular read or pair if more than <int> reportable alignments exist for it. [no limit]
+ --best Best mode. Make Bowtie guarantee that reported singleton alignments are "best" in terms of stratum (the number of mismatches) and quality values at mismatched position. [off]
+ --strata Best strata. When running in best mode, report alignments that fall into the best stratum if there are ones falling into more than one. [off]
+ -o <int> Offrate override. Override the offrate of the index with <int>. Some row markings are discarded when index read into memory. <int> must be greater than the value used to build the index (default: 5). [off]
+ --seed <int> Random seed. Use <int> as the seed for the pseudo-random number generator. [off]
+ --snpphred <int> Use <int> as the SNP penalty for decoding colorspace alignments. True ratio of SNPs per base in the subject genome. [see --snpfrac]
+ --snpfrac <dec> Use <dec> as the estimated ratio of SNPs per base when decoding colorspace alignments. [0.001]
+ --col-keepends Keep the extreme-end nucleotides and qualities when decoding colorspace alignments. [off]
+
+ </help>
+ <code file="bowtie_wrapper_code.py" />
+</tool>
diff -r b78de785df21 -r 35d2a31cfbaf tools/sr_mapping/bowtie_wrapper.py
--- a/tools/sr_mapping/bowtie_wrapper.py Tue Jan 12 15:48:21 2010 -0500
+++ b/tools/sr_mapping/bowtie_wrapper.py Tue Jan 12 16:49:02 2010 -0500
@@ -42,7 +42,7 @@
-S, --seed=S: Seed for pseudo-random number generator
-d, --dbkey=d: Dbkey of reference genome
-C, --params=C: Whether to use default or specified parameters
- -u, --iauto_b=u: Automatic or specified behavior
+ -u, --iautoB=u: Automatic or specified behavior
-K, --ipacked=K: Whether or not to use a packed representation for DNA strings
-Q, --ibmax=Q: Maximum number of suffixes allowed in a block
-Y, --ibmaxdivn=Y: Maximum number of suffixes allowed in a block as a fraction of the length of the reference
@@ -105,7 +105,7 @@
parser.add_option( '-7', '--keepends', dest='keepends', help='Keep extreme-end nucleotides and qualities' )
parser.add_option( '-d', '--dbkey', dest='dbkey', help='Dbkey of reference genome' )
parser.add_option( '-C', '--params', dest='params', help='Whether to use default or specified parameters' )
- parser.add_option( '-u', '--iauto_b', dest='iauto_b', help='Automatic or specified behavior' )
+ parser.add_option( '-u', '--iautoB', dest='iautoB', help='Automatic or specified behavior' )
parser.add_option( '-K', '--ipacked', dest='ipacked', help='Whether or not to use a packed representation for DNA strings' )
parser.add_option( '-Q', '--ibmax', dest='ibmax', help='Maximum number of suffixes allowed in a block' )
parser.add_option( '-Y', '--ibmaxdivn', dest='ibmaxdivn', help='Maximum number of suffixes allowed in a block as a fraction of the length of the reference' )
@@ -129,17 +129,17 @@
else:
colorspace = ''
# index if necessary
- if options.genomeSource == 'cHistory' or options.genomeSource == 'xHistory':
+ if options.genomeSource == 'history':
# set up commands
- if options.index_settings =='cIndexPreSet' or options.index_settings == 'xIndexPreSet':
+ if options.index_settings =='indexPreSet':
indexing_cmds = '%s' % colorspace
else:
try:
- if options.iauto_b == 'set':
- iauto_b = '--noauto'
+ if options.iautoB != 'None' and options.iautoB == 'set':
+ iautoB = '--noauto'
else:
- iauto_b = ''
- if options.ipacked == 'packed':
+ iautoB = ''
+ if options. ipacked != 'None' and options.ipacked == 'packed':
ipacked = '--packed'
else:
ipacked = ''
@@ -155,11 +155,11 @@
idcv = '--dcv %s' % options.idcv
else:
idcv = ''
- if options.inodc == 'nodc':
+ if options.inodc != 'None' and options.inodc == 'nodc':
inodc = '--nodc'
else:
inodc = ''
- if options.inoref == 'noref':
+ if options.inoref != 'None' and options.inoref == 'noref':
inoref = '--noref'
else:
inoref = ''
@@ -167,24 +167,24 @@
iftab = '--ftabchars %s' % options.iftab
else:
iftab = ''
- if options.intoa == 'yes':
+ if options.intoa != 'None' and options.intoa == 'yes':
intoa = '--ntoa'
else:
intoa = ''
- if options.iendian == 'big':
+ if options.iendian != 'None' and options.iendian == 'big':
iendian = '--big'
else:
iendian = '--little'
- if int( options.iseed ) > 0:
+ if options.iseed != 'None' and int( options.iseed ) > 0:
iseed = '--seed %s' % options.iseed
else:
iseed = ''
- if int( options.icutoff ) > 0:
+ if options.icutoff != 'None' 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' % \
- ( iauto_b, ipacked, ibmax, ibmaxdivn, idcv, inodc,
+ ( iautoB, ipacked, ibmax, ibmaxdivn, idcv, inodc,
inoref, options.ioffrate, iftab, intoa, iendian,
iseed, icutoff, colorspace )
except ValueError:
@@ -206,8 +206,7 @@
suppressHeader = '--sam-nohead'
else:
suppressHeader = ''
- if options.params == 'csPreSet' or options.params == 'cpPreSet' or \
- options.params == 'xsPreSet' or options.params == 'xpPreSet':
+ if options.params == 'preSet':
aligning_cmds = '-p %s -S %s -q %s ' % ( options.threads, suppressHeader, colorspace )
else:
try:
@@ -215,27 +214,28 @@
skip = '-s %s' % options.skip
else:
skip = ''
- if int( options.alignLimit ) >= 0:
+ if options.alignLimit != 'None' and int( options.alignLimit ) >= 0:
alignLimit = '-u %s' % options.alignLimit
else:
alignLimit = ''
- if int( options.trimH ) > 0:
+ if options.trimH != 'None' and int( options.trimH ) > 0:
trimH = '-5 %s' % options.trimH
else:
trimH = ''
- if int( options.trimL ) > 0:
+ if options.trimL != 'None' and int( options.trimL ) > 0:
trimL = '-3 %s' % options.trimL
else:
trimL = ''
- if options.mismatchSeed == '0' or options.mismatchSeed == '1' or options.mismatchSeed == '2' or options.mismatchSeed == '3':
+ if options. mismatchSeed != 'None' and (options.mismatchSeed == '0' or options.mismatchSeed == '1' \
+ or options.mismatchSeed == '2' or options.mismatchSeed == '3'):
mismatchSeed = '-n %s' % options.mismatchSeed
else:
mismatchSeed = ''
- if int( options.mismatchQual ) >= 0:
+ if options.mismatchQual != 'None' and int( options.mismatchQual ) >= 0:
mismatchQual = '-e %s' % options.mismatchQual
else:
mismatchQual = ''
- if int( options.seedLen ) >= 5:
+ if options.seedLen != 'None' and int( options.seedLen ) >= 5:
seedLen = '-l %s' % options.seedLen
else:
seedLen = ''
@@ -292,8 +292,7 @@
suppressAlign = '-m %s' % options.suppressAlign
else:
suppressAlign = ''
- if options.best == 'csDoBest' or options.best == 'cpDoBest' or \
- options.best == 'xsDoBest' or options.best == 'xpDoBest':
+ if options.best == 'doBest':
best = '--best'
else:
best = ''
@@ -332,7 +331,7 @@
except ValueError, e:
stop_err( 'Something is wrong with the alignment parameters and the alignment could not be run\n' + str( e ) )
# prepare actual aligning commands
- if options.paired == 'cPaired' or options.paired == 'xPaired':
+ if options.paired == 'paired':
cmd2 = 'bowtie %s %s -1 %s -2 %s > %s 2> /dev/null' % ( aligning_cmds, options.ref, options.input1, options.input2, options.output )
else:
cmd2 = 'bowtie %s %s %s > %s 2> /dev/null' % ( aligning_cmds, options.ref, options.input1, options.output )
diff -r b78de785df21 -r 35d2a31cfbaf tools/sr_mapping/bowtie_wrapper.xml
--- a/tools/sr_mapping/bowtie_wrapper.xml Tue Jan 12 15:48:21 2010 -0500
+++ b/tools/sr_mapping/bowtie_wrapper.xml Tue Jan 12 16:49:02 2010 -0500
@@ -1,780 +1,383 @@
-<tool id="bowtie_wrapper" name="Map with Bowtie" version="1.0.5">
+<tool id="bowtie_wrapper" name="Map with Bowtie for Illumina" version="1.0.6">
<description></description>
<command interpreter="python">
- bowtie_wrapper.py --threads="4" --output=$output --suppressHeader=$suppressHeader --dataType=$solidOrSolexa.dataType
-#if $solidOrSolexa.dataType == "solid":
- --genomeSource=$solidOrSolexa.cRefGenomeSource.cGenomeSource
- #if $solidOrSolexa.cRefGenomeSource.cGenomeSource == "cIndexed":
- --ref=$solidOrSolexa.cRefGenomeSource.cIndex.value
- --dbkey="None"
- --indexSettings="None"
- --iauto_b="None"
- --ipacked="None"
- --ibmax="None"
- --ibmaxdivn="None"
- --idcv="None"
- --inodc="None"
- --inoref="None"
- --ioffrate="None"
- --iftab="None"
- --intoa="None"
- --iendian="None"
- --iseed="None"
- --icutoff="None"
- #else:
- --ref=$solidOrSolexa.cRefGenomeSource.cOwnFile
- --dbkey=$dbkey
- --indexSettings=$solidOrSolexa.cRefGenomeSource.cIndexParams.cIndexSettings
- #if $solidOrSolexa.cRefGenomeSource.cIndexParams.cIndexSettings == "cIndexFull":
- --iauto_b=$solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cAutoB == "cSet"
- #if $solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cAutoB == "cSet":
- --ipacked=$solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cPacked
- --ibmax=$solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cBmax
- --ibmaxdivn=$solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cBmaxdivn
- --idcv=$solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cDcv
- #else:
- --ipacked="None"
- --ibmax="None"
- --ibmaxdivn="None"
- --idcv="None"
- #end if
- --inodc=$solidOrSolexa.cRefGenomeSource.cIndexParams.cNodc
- --inoref=$solidOrSolexa.cRefGenomeSource.cIndexParams.cNoref
- --ioffrate=$solidOrSolexa.cRefGenomeSource.cIndexParams.cOffrate
- --iftab=$solidOrSolexa.cRefGenomeSource.cIndexParams.cFtab
- --intoa=$solidOrSolexa.cRefGenomeSource.cIndexParams.cNtoa
- --iendian=$solidOrSolexa.cRefGenomeSource.cIndexParams.cEndian
- --iseed=$solidOrSolexa.cRefGenomeSource.cIndexParams.cSeed
- --icutoff=$solidOrSolexa.cRefGenomeSource.cIndexParams.cCutoff
- #else:
- --iauto_b="None"
- --ipacked="None"
- --ibmax="None"
- --ibmaxdivn="None"
- --idcv="None"
- --inodc="None"
- --inoref="None"
- --ioffrate="None"
- --iftab="None"
- --intoa="None"
- --iendian="None"
- --iseed="None"
- --icutoff="None"
- #end if
- #end if
- --paired=$solidOrSolexa.cSinglePaired.cSPaired
- #if $solidOrSolexa.cSinglePaired.cSPaired == "cSingle":
- --input1=$solidOrSolexa.cSinglePaired.csInput1
- --input2="None"
- --params=$solidOrSolexa.cSinglePaired.csParams.csSettingsType
- #if $solidOrSolexa.cSinglePaired.csParams.csSettingsType == "csFull":
- --skip=$solidOrSolexa.cSinglePaired.csParams.csSkip
- --alignLimit=$solidOrSolexa.cSinglePaired.csParams.csAlignLimit
- --trimH=$solidOrSolexa.cSinglePaired.csParams.csTrimH
- --trimL=$solidOrSolexa.cSinglePaired.csParams.csTrimL
- --mismatchSeed=$solidOrSolexa.cSinglePaired.csParams.csMismatchSeed
- --mismatchQual=$solidOrSolexa.cSinglePaired.csParams.csMismatchQual
- --seedLen=$solidOrSolexa.cSinglePaired.csParams.csSeedLen
- --rounding=$solidOrSolexa.cSinglePaired.csParams.csRounding
- --maqSoapAlign=$solidOrSolexa.cSinglePaired.csParams.csMaqSoapAlign
- --tryHard=$solidOrSolexa.cSinglePaired.csParams.csTryHard
- --valAlign=$solidOrSolexa.cSinglePaired.csParams.csValAlign
- --allValAligns=$solidOrSolexa.cSinglePaired.csParams.csAllValAligns
- --suppressAlign=$solidOrSolexa.cSinglePaired.csParams.csSuppressAlign
- --best=$solidOrSolexa.cSinglePaired.csParams.csBestOption.csBest
- #if $solidOrSolexa.cSinglePaired.csParams.csBestOption.csBest == "csDoBest":
- --maxBacktracks=$solidOrSolexa.cSinglePaired.csParams.csBestOption.csdMaxBacktracks
- --strata=$solidOrSolexa.cSinglePaired.csParams.csBestOption.csdStrata
- #else:
- --maxBacktracks=$solidOrSolexa.cSinglePaired.csParams.csBestOption.csnMaxBacktracks
- --strata="None"
- #end if
- --offrate=$solidOrSolexa.cSinglePaired.csParams.csOffrate
- --seed=$solidOrSolexa.cSinglePaired.csParams.csSeed
- --snpphred=$solidOrSolexa.cSinglePaired.csParams.csSnpphred
- --snpfrac=$solidOrSolexa.cSinglePaired.csParams.csSnpfrac
- --keepends=$solidOrSolexa.cSinglePaired.csParams.csKeepends
- #else:
- --skip="None"
- --alignLimit="None"
- --trimH="None"
- --trimL="None"
- --mismatchSeed="None"
- --mismatchQual="None"
- --seedLen="None"
- --rounding="None"
- --maqSoapAlign="None"
- --tryHard="None"
- --valAlign="None"
- --allValAligns="None"
- --suppressAlign="None"
- --best="None"
- --maxBacktracks="None"
- --strata="None"
- --offrate="None"
- --seed="None"
- --snpphred="None"
- --snpfrac="None"
- --keepends="None"
- #end if
- --minInsert="None"
- --maxInsert="None"
- --mateOrient="None"
- --maxAlignAttempt="None"
- --forwardAlign="None"
- --reverseAlign="None"
- #else:
- --input1=$solidOrSolexa.cSinglePaired.cpInput1
- --input2=$solidOrSolexa.cSinglePaired.cpInput2
- --params=$solidOrSolexa.cSinglePaired.cpParams.cpSettingsType
- #if $solidOrSolexa.cSinglePaired.cpParams.cpSettingsType == "cpFull":
- --skip=$solidOrSolexa.cSinglePaired.cpParams.cpSkip
- --alignLimit=$solidOrSolexa.cSinglePaired.cpParams.cpAlignLimit
- --trimH=$solidOrSolexa.cSinglePaired.cpParams.cpTrimH
- --trimL=$solidOrSolexa.cSinglePaired.cpParams.cpTrimL
- --mismatchSeed=$solidOrSolexa.cSinglePaired.cpParams.cpMismatchSeed
- --mismatchQual=$solidOrSolexa.cSinglePaired.cpParams.cpMismatchQual
- --seedLen=$solidOrSolexa.cSinglePaired.cpParams.cpSeedLen
- --rounding=$solidOrSolexa.cSinglePaired.cpParams.cpRounding
- --maqSoapAlign=$solidOrSolexa.cSinglePaired.cpParams.cpMaqSoapAlign
- --minInsert=$solidOrSolexa.cSinglePaired.cpParams.cpMinInsert
- --maxInsert=$solidOrSolexa.cSinglePaired.cpParams.cpMaxInsert
- --mateOrient=$solidOrSolexa.cSinglePaired.cpParams.cpMateOrient
- --maxAlignAttempt=$solidOrSolexa.cSinglePaired.cpParams.cpMaxAlignAttempt
- --forwardAlign=$solidOrSolexa.cSinglePaired.cpParams.cpForwardAlign
- --reverseAlign=$solidOrSolexa.cSinglePaired.cpParams.cpReverseAlign
- --tryHard=$solidOrSolexa.cSinglePaired.cpParams.cpTryHard
- --valAlign=$solidOrSolexa.cSinglePaired.cpParams.cpValAlign
- --allValAligns=$solidOrSolexa.cSinglePaired.cpParams.cpAllValAligns
- --suppressAlign=$solidOrSolexa.cSinglePaired.cpParams.cpSuppressAlign
- --best=$solidOrSolexa.cSinglePaired.cpParams.cpBestOption.cpBest
- #if $solidOrSolexa.cSinglePaired.cpParams.cpBestOption.cpBest == "cpDoBest":
- --maxBacktracks=$solidOrSolexa.cSinglePaired.cpParams.cpBestOption.cpdMaxBacktracks
- --strata=$solidOrSolexa.cSinglePaired.cpParams.cpBestOption.cpdStrata
- #else:
- --maxBacktracks=$solidOrSolexa.cSinglePaired.cpParams.cpBestOption.cpnMaxBacktracks
- --strata="None"
- #end if
- --offrate=$solidOrSolexa.cSinglePaired.cpParams.cpOffrate
- --seed=$solidOrSolexa.cSinglePaired.cpParams.cpSeed
- --snpphred=$solidOrSolexa.cSinglePaired.cpParams.cpSnpphred
- --snpfrac=$solidOrSolexa.cSinglePaired.cpParams.cpSnpfrac
- --keepends=$solidOrSolexa.cSinglePaired.cpParams.cpKeepends
- #else:
- --skip="None"
- --alignLimit="None"
- --trimH="None"
- --trimL="None"
- --mismatchSeed="None"
- --mismatchQual="None"
- --seedLen="None"
- --rounding="None"
- --maqSoapAlign="None"
- --tryHard="None"
- --valAlign="None"
- --allValAligns="None"
- --suppressAlign="None"
- --best="None"
- --maxBacktracks="None"
- --strata="None"
- --offrate="None"
- --seed="None"
- --snpphred="None"
- --snpfrac="None"
- --keepends="None"
- --minInsert="None"
- --maxInsert="None"
- --mateOrient="None"
- --maxAlignAttempt="None"
- --forwardAlign="None"
- --reverseAlign="None"
- #end if
- #end if
-#else:
- --genomeSource=$solidOrSolexa.xRefGenomeSource.xGenomeSource
- #if $solidOrSolexa.xRefGenomeSource.xGenomeSource == "xIndexed":
- --ref=$solidOrSolexa.xRefGenomeSource.xIndex.value
- --dbkey="None"
- --indexSettings="None"
- --iauto_b="None"
- --ipacked="None"
- --ibmax="None"
- --ibmaxdivn="None"
- --idcv="None"
- --inodc="None"
- --inoref="None"
- --ioffrate="None"
- --iftab="None"
- --intoa="None"
- --iendian="None"
- --iseed="None"
- --icutoff="None"
- #else:
- --ref=$solidOrSolexa.xRefGenomeSource.xOwnFile
- --dbkey=$dbkey
- --indexSettings=$solidOrSolexa.xRefGenomeSource.xIndexParams.xIndexSettings
- #if $solidOrSolexa.xRefGenomeSource.xIndexParams.xIndexSettings == "xIndexFull":
- --iauto_b=$solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xAutoB == "xSet"
- #if $solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xAutoB == "xSet":
- --ipacked=$solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xPacked
- --ibmax=$solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xBmax
- --ibmaxdivn=$solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xBmaxdivn
- --idcv=$solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xDcv
- #else:
- --ipacked="None"
- --ibmax="None"
- --ibmaxdivn="None"
- --idcv="None"
- #end if
- --inodc=$solidOrSolexa.xRefGenomeSource.xIndexParams.xNodc
- --inoref=$solidOrSolexa.xRefGenomeSource.xIndexParams.xNoref
- --ioffrate=$solidOrSolexa.xRefGenomeSource.xIndexParams.xOffrate
- --iftab=$solidOrSolexa.xRefGenomeSource.xIndexParams.xFtab
- --intoa=$solidOrSolexa.xRefGenomeSource.xIndexParams.xNtoa
- --iendian=$solidOrSolexa.xRefGenomeSource.xIndexParams.xEndian
- --iseed=$solidOrSolexa.xRefGenomeSource.xIndexParams.xSeed
- --icutoff=$solidOrSolexa.xRefGenomeSource.xIndexParams.xCutoff
- #else:
- --iauto_b="None"
- --ipacked="None"
- --ibmax="None"
- --ibmaxdivn="None"
- --idcv="None"
- --inodc="None"
- --inoref="None"
- --ioffrate="None"
- --iftab="None"
- --intoa="None"
- --iendian="None"
- --iseed="None"
- --icutoff="None"
- #end if
- #end if
- --paired=$solidOrSolexa.xSinglePaired.xSPaired
- #if $solidOrSolexa.xSinglePaired.xSPaired == "xSingle":
- --input1=$solidOrSolexa.xSinglePaired.xsInput1
- --input2="None"
- --params=$solidOrSolexa.xSinglePaired.xsParams.xsSettingsType
- #if $solidOrSolexa.xSinglePaired.xsParams.xsSettingsType == "xsFull":
- --skip=$solidOrSolexa.xSinglePaired.xsParams.xsSkip
- --alignLimit=$solidOrSolexa.xSinglePaired.xsParams.xsAlignLimit
- --trimH=$solidOrSolexa.xSinglePaired.xsParams.xsTrimH
- --trimL=$solidOrSolexa.xSinglePaired.xsParams.xsTrimL
- --mismatchSeed=$solidOrSolexa.xSinglePaired.xsParams.xsMismatchSeed
- --mismatchQual=$solidOrSolexa.xSinglePaired.xsParams.xsMismatchQual
- --seedLen=$solidOrSolexa.xSinglePaired.xsParams.xsSeedLen
- --rounding=$solidOrSolexa.xSinglePaired.xsParams.xsRounding
- --maqSoapAlign=$solidOrSolexa.xSinglePaired.xsParams.xsMaqSoapAlign
- --tryHard=$solidOrSolexa.xSinglePaired.xsParams.xsTryHard
- --valAlign=$solidOrSolexa.xSinglePaired.xsParams.xsValAlign
- --allValAligns=$solidOrSolexa.xSinglePaired.xsParams.xsAllValAligns
- --suppressAlign=$solidOrSolexa.xSinglePaired.xsParams.xsSuppressAlign
- --best=$solidOrSolexa.xSinglePaired.xsParams.xsBestOption.xsBest
- #if $solidOrSolexa.xSinglePaired.xsParams.xsBestOption.xsBest == "xsDoBest":
- --maxBacktracks=$solidOrSolexa.xSinglePaired.xsParams.xsBestOption.xsdMaxBacktracks
- --strata=$solidOrSolexa.xSinglePaired.xsParams.xsBestOption.xsdStrata
- #else:
- --maxBacktracks=$solidOrSolexa.xSinglePaired.xsParams.xsBestOption.xsnMaxBacktracks
- --strata="None"
- #end if
- --offrate=$solidOrSolexa.xSinglePaired.xsParams.xsOffrate
- --seed=$solidOrSolexa.xSinglePaired.xsParams.xsSeed
- #else:
- --skip="None"
- --alignLimit="None"
- --trimH="None"
- --trimL="None"
- --mismatchSeed="None"
- --mismatchQual="None"
- --seedLen="None"
- --rounding="None"
- --maqSoapAlign="None"
- --tryHard="None"
- --valAlign="None"
- --allValAligns="None"
- --suppressAlign="None"
- --best="None"
- --maxBacktracks="None"
- --strata="None"
- --offrate="None"
- --seed="None"
- #end if
- --snpphred="None"
- --snpfrac="None"
- --keepends="None"
- --minInsert="None"
- --maxInsert="None"
- --mateOrient="None"
- --maxAlignAttempt="None"
- --forwardAlign="None"
- --reverseAlign="None"
- #else:
- --input1=$solidOrSolexa.xSinglePaired.xpInput1
- --input2=$solidOrSolexa.xSinglePaired.xpInput2
- --params=$solidOrSolexa.xSinglePaired.xpParams.xpSettingsType
- #if $solidOrSolexa.xSinglePaired.xpParams.xpSettingsType == "xpFull":
- --skip=$solidOrSolexa.xSinglePaired.xpParams.xpSkip
- --alignLimit=$solidOrSolexa.xSinglePaired.xpParams.xpAlignLimit
- --trimH=$solidOrSolexa.xSinglePaired.xpParams.xpTrimH
- --trimL=$solidOrSolexa.xSinglePaired.xpParams.xpTrimL
- --mismatchSeed=$solidOrSolexa.xSinglePaired.xpParams.xpMismatchSeed
- --mismatchQual=$solidOrSolexa.xSinglePaired.xpParams.xpMismatchQual
- --seedLen=$solidOrSolexa.xSinglePaired.xpParams.xpSeedLen
- --rounding=$solidOrSolexa.xSinglePaired.xpParams.xpRounding
- --maqSoapAlign=$solidOrSolexa.xSinglePaired.xpParams.xpMaqSoapAlign
- --minInsert=$solidOrSolexa.xSinglePaired.xpParams.xpMinInsert
- --maxInsert=$solidOrSolexa.xSinglePaired.xpParams.xpMaxInsert
- --mateOrient=$solidOrSolexa.xSinglePaired.xpParams.xpMateOrient
- --maxAlignAttempt=$solidOrSolexa.xSinglePaired.xpParams.xpMaxAlignAttempt
- --forwardAlign=$solidOrSolexa.xSinglePaired.xpParams.xpForwardAlign
- --reverseAlign=$solidOrSolexa.xSinglePaired.xpParams.xpReverseAlign
- --tryHard=$solidOrSolexa.xSinglePaired.xpParams.xpTryHard
- --valAlign=$solidOrSolexa.xSinglePaired.xpParams.xpValAlign
- --allValAligns=$solidOrSolexa.xSinglePaired.xpParams.xpAllValAligns
- --suppressAlign=$solidOrSolexa.xSinglePaired.xpParams.xpSuppressAlign
- --best=$solidOrSolexa.xSinglePaired.xpParams.xpBestOption.xpBest
- #if $solidOrSolexa.xSinglePaired.xpParams.xpBestOption.xpBest == "xpDoBest":
- --maxBacktracks=$solidOrSolexa.xSinglePaired.xpParams.xpBestOption.xpdMaxBacktracks
- --strata=$solidOrSolexa.xSinglePaired.xpParams.xpBestOption.xpdStrata
- #else:
- --maxBacktracks=$solidOrSolexa.xSinglePaired.xpParams.xpBestOption.xpnMaxBacktracks
- --strata="None"
- #end if
- --offrate=$solidOrSolexa.xSinglePaired.xpParams.xpOffrate
- --seed=$solidOrSolexa.xSinglePaired.xpParams.xpSeed
- #else:
- --skip="None"
- --alignLimit="None"
- --trimH="None"
- --trimL="None"
- --mismatchSeed="None"
- --mismatchQual="None"
- --seedLen="None"
- --rounding="None"
- --maqSoapAlign="None"
- --tryHard="None"
- --valAlign="None"
- --allValAligns="None"
- --suppressAlign="None"
- --best="None"
- --maxBacktracks="None"
- --strata="None"
- --offrate="None"
- --seed="None"
- --minInsert="None"
- --maxInsert="None"
- --mateOrient="None"
- --maxAlignAttempt="None"
- --forwardAlign="None"
- --reverseAlign="None"
- #end if
- --snpphred="None"
- --snpfrac="None"
- --keepends="None"
- #end if
-#end if
+ bowtie_wrapper.py
+ --threads="4"
+ --dataType="solexa"
+ --output=$output
+ --suppressHeader=$suppressHeader
+ --genomeSource=$refGenomeSource.genomeSource
+ --snpphred="None"
+ --snpfrac="None"
+ --keepends="None"
+ #if $refGenomeSource.genomeSource == "history":
+ --ref=$refGenomeSource.ownFile
+ --dbkey=$dbkey
+ --indexSettings=$refGenomeSource.indexParams.indexSettings
+ #if $refGenomeSource.indexParams.indexSettings == "indexFull":
+ --iautoB=$refGenomeSource.indexParams.autoBehavior.autoB
+ #if $refGenomeSource.indexParams.autoBehavior.autoB == "set":
+ --ipacked=$refGenomeSource.indexParams.autoBehavior.packed
+ --ibmax=$refGenomeSource.indexParams.autoBehavior.bmax
+ --ibmaxdivn=$refGenomeSource.indexParams.autoBehavior.bmaxdivn
+ --idcv=$refGenomeSource.indexParams.autoBehavior.dcv
+ #else:
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ #end if
+ --inodc=$refGenomeSource.indexParams.nodc
+ --inoref=$refGenomeSource.indexParams.noref
+ --ioffrate=$refGenomeSource.indexParams.offrate
+ --iftab=$refGenomeSource.indexParams.ftab
+ --intoa=$refGenomeSource.indexParams.ntoa
+ --iendian=$refGenomeSource.indexParams.endian
+ --iseed=$refGenomeSource.indexParams.seed
+ --icutoff=$refGenomeSource.indexParams.cutoff
+ #else:
+ --iautoB="None"
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ --inodc="None"
+ --inoref="None"
+ --ioffrate="None"
+ --iftab="None"
+ --intoa="None"
+ --iendian="None"
+ --iseed="None"
+ --icutoff="None"
+ #end if
+ #else:
+ --ref=$refGenomeSource.index.value
+ --dbkey="None"
+ --indexSettings="None"
+ --iautoB="None"
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ --inodc="None"
+ --inoref="None"
+ --ioffrate="None"
+ --iftab="None"
+ --intoa="None"
+ --iendian="None"
+ --iseed="None"
+ --icutoff="None"
+ #end if
+ --paired=$singlePaired.sPaired
+ #if $singlePaired.sPaired == "single":
+ --input1=$singlePaired.sInput1
+ --input2="None"
+ --params=$singlePaired.sParams.sSettingsType
+ #if $singlePaired.sParams.sSettingsType == "full":
+ --skip=$singlePaired.sParams.sSkip
+ --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
+ --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
+ #else:
+ --maxBacktracks=$singlePaired.sParams.sBestOption.snMaxBacktracks
+ --strata="None"
+ #end if
+ --offrate=$singlePaired.sParams.sOffrate
+ --seed=$singlePaired.sParams.sSeed
+ #else:
+ --skip="None"
+ --alignLimit="None"
+ --trimH="None"
+ --trimL="None"
+ --mismatchSeed="None"
+ --mismatchQual="None"
+ --seedLen="None"
+ --rounding="None"
+ --maqSoapAlign="None"
+ --tryHard="None"
+ --valAlign="None"
+ --allValAligns="None"
+ --suppressAlign="None"
+ --best="None"
+ --maxBacktracks="None"
+ --strata="None"
+ --offrate="None"
+ --seed="None"
+ --snpphred="None"
+ --snpfrac="None"
+ --keepends="None"
+ #end if
+ --minInsert="None"
+ --maxInsert="None"
+ --mateOrient="None"
+ --maxAlignAttempt="None"
+ --forwardAlign="None"
+ --reverseAlign="None"
+ #else:
+ --input1=$singlePaired.pInput1
+ --input2=$singlePaired.pInput2
+ --params=$singlePaired.pParams.pSettingsType
+ #if $singlePaired.pParams.pSettingsType == "full":
+ --skip=$singlePaired.pParams.pSkip
+ --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
+ --minInsert=$singlePaired.pParams.pMinInsert
+ --maxInsert=$singlePaired.pParams.pMaxInsert
+ --mateOrient=$singlePaired.pParams.pMateOrient
+ --maxAlignAttempt=$singlePaired.pParams.pMaxAlignAttempt
+ --forwardAlign=$singlePaired.pParams.pForwardAlign
+ --reverseAlign=$singlePaired.pParams.pReverseAlign
+ --tryHard=$singlePaired.pParams.pTryHard
+ --valAlign=$singlePaired.pParams.pValAlign
+ --allValAligns=$singlePaired.pParams.pAllValAligns
+ --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
+ #else:
+ --maxBacktracks=$singlePaired.pParams.pBestOption.pnMaxBacktracks
+ --strata="None"
+ #end if
+ --offrate=$singlePaired.pParams.pOffrate
+ --seed=$singlePaired.pParams.pSeed
+ #else:
+ --skip="None"
+ --alignLimit="None"
+ --trimH="None"
+ --trimL="None"
+ --mismatchSeed="None"
+ --mismatchQual="None"
+ --seedLen="None"
+ --rounding="None"
+ --maqSoapAlign="None"
+ --tryHard="None"
+ --valAlign="None"
+ --allValAligns="None"
+ --suppressAlign="None"
+ --best="None"
+ --maxBacktracks="None"
+ --strata="None"
+ --offrate="None"
+ --seed="None"
+ --minInsert="None"
+ --maxInsert="None"
+ --mateOrient="None"
+ --maxAlignAttempt="None"
+ --forwardAlign="None"
+ --reverseAlign="None"
+ #end if
+ #end if
</command>
<inputs>
- <conditional name="solidOrSolexa">
- <param name="dataType" type="select" label="Is your data SOLiD or Solexa?">
- <option value="solid">SOLiD</option>
- <option value="solexa">Solexa</option>
+ <conditional name="refGenomeSource">
+ <param name="genomeSource" type="select" label="Will you select a reference genome from your history or use a built-in index?" help="Built-ins were indexed using default options">
+ <option value="indexed">Use a built-in index</option>
+ <option value="history">Use one from the history</option>
</param>
- <when value="solid">
- <conditional name="cRefGenomeSource">
- <param name="cGenomeSource" type="select" label="Will you select a reference genome from your history or use a built-in index?" help="Built-ins were indexed using default options">
- <option value="cIndexed">Use a built-in index</option>
- <option value="cHistory">Use one from the history</option>
- </param>
- <when value="cIndexed">
- <param name="cIndex" type="select" label="Select the reference genome" help="if your genome of interest is not listed - contact Galaxy team">
- <options from_file="bowtie_indices_color.loc">
- <column name="value" index="1" />
- <column name="name" index="0" />
- </options>
- </param>
- </when>
- <when value="cHistory">
- <param name="cOwnFile" type="data" format="fasta" metadata_name="dbkey" label="Select a reference genome" />
- <conditional name="cIndexParams">
- <param name="cIndexSettings" type="select" label="Choose whether to use default options for building indices or to set your own">
- <option value="cIndexPreSet">Default</option>
- <option value="cIndexFull">Set your own</option>
- </param>
- <when value="cIndexPreSet" />
- <when value="cIndexFull">
- <conditional name="cAutoBehavior">
- <param name="cAutoB" type="select" label="Choose to use automatic or specified behavior for some parameters (-a)" help="Allows you to set --packed, --bmax, --bmaxdivn, and --dcv">
- <option value="cAuto">Automatic behavior</option>
- <option value="cSet">Set values (sets --noauto and allows others to be set)</option>
- </param>
- <when value="cAuto" />
- <when value="cSet">
- <param name="cPacked" type="select" label="Whether or not to use a packed representation for DNA strings (-p)">
- <option value="unpacked">Use regular representation</option>
- <option value="packed">Use packed representation</option>
- </param>
- <param name="cBmax" 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="cBmaxdivn" 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="cDcv" type="integer" value="1024" label="The period for the difference-cover sample (--dcv)" />
- </when>
- </conditional>
- <param name="cNodc" 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 (a very repetitive reference)">
- <option value="dc">Use difference-cover sample</option>
- <option value="nodc">Disable difference-cover sample</option>
+ <when value="indexed">
+ <param name="index" type="select" label="Select a reference genome" help="if your genome of interest is not listed - contact Galaxy team">
+ <options from_file="bowtie_indices.loc">
+ <column name="value" index="1" />
+ <column name="name" index="0" />
+ </options>
+ </param>
+ </when>
+ <when value="history">
+ <param name="ownFile" type="data" format="fasta" metadata_name="dbkey" label="Select a reference genome" />
+ <conditional name="indexParams">
+ <param name="indexSettings" type="select" label="Choose whether to use default options for building indices or to set your own">
+ <option value="indexPreSet">Default</option>
+ <option value="indexFull">Set your own</option>
+ </param>
+ <when value="indexPreSet" />
+ <when value="indexFull">
+ <conditional name="autoBehavior">
+ <param name="autoB" type="select" label="Choose to use automatic or specified behavior for some parameters (-a)" help="Allows you to set --packed, --bmax, --bmaxdivn, and --dcv">
+ <option value="auto">Automatic behavior</option>
+ <option value="set">Set values (sets --noauto and allows others to be set)</option>
+ </param>
+ <when value="auto" />
+ <when value="set">
+ <param name="packed" type="select" label="Whether or not to use a packed representation for DNA strings (-p)">
+ <option value="unpacked">Use regular representation</option>
+ <option value="packed">Use packed representation</option>
</param>
- <param name="cNoref" type="select" label="Whether or not to build the part of the reference index used only in paired-end alignment (-r)">
- <option value="ref">Build all index files</option>
- <option value="noref">Do not build paired-end alignment index files</option>
+ <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)" />
+ </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 (a very repetitive reference)">
+ <option value="dc">Use difference-cover sample</option>
+ <option value="nodc">Disable difference-cover sample</option>
+ </param>
+ <param name="noref" type="select" label="Whether or not to build the part of the reference index used only in paired-end alignment (-r)">
+ <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="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>
+ </param>
+ <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 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 -->
+ </conditional> <!-- refGenomeSource -->
+ <conditional name="singlePaired">
+ <param name="sPaired" type="select" label="Is this library mate-paired?">
+ <option value="single">Single-end</option>
+ <option value="paired">Paired-end</option>
+ </param>
+ <when value="single">
+ <param name="sInput1" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <conditional name="sParams">
+ <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>
+ <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="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>
+ </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>
+ <param name="sValAlign" type="integer" value="1" label="Report up to n valid arguments 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" />
+ <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)" />
+ </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>
- <param name="cOffrate" type="integer" value="5" label="How many rows get marked during annotation of some or all of the Burrows-Wheeler rows (-o)" />
- <param name="cFtab" 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="cNtoa" 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>
+ </when>
+ </conditional> <!-- bestOption -->
+ <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 -->
+ </conditional> <!-- sParams -->
+ </when> <!-- single -->
+ <when value="paired">
+ <param name="pInput1" type="data" format="fastqsanger" label="Forward FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <param name="pInput2" type="data" format="fastqsanger" label="Reverse FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <conditional name="pParams">
+ <param name="pSettingsType" 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>
+ <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="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" />
+ <param name="pMinInsert" type="integer" value="0" label="Minimum insert size for valid paired-end alignments (-I)" />
+ <param name="pMaxInsert" type="integer" value="250" label="Maximum insert size for valid paired-end alignments (-X)" />
+ <param name="pMateOrient" type="select" label="The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand (--fr/--rf/--ff)">
+ <option value="fr">FR (for Illumina)</option>
+ <option value="rf">RF</option>
+ <option value="ff">FF (for SOLiD)</option>
+ </param>
+ <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)">
+ <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)">
+ <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" />
+ <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)" />
+ </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>
- <param name="cEndian" 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 name="cSeed" type="integer" value="-1" label="Seed for the pseudorandom number generator (--seed)" help="Use -1 to use default" />
- <param name="cCutoff" type="integer" value="-1" label="Number of first bases of the reference sequence to index (--cutoff)" help="Use -1 to use default" />
- </when> <!-- cIndexFull -->
- </conditional> <!-- cIndexParams -->
- </when> <!-- cHistory -->
- </conditional> <!-- cRefGenomeSource -->
- <conditional name="cSinglePaired">
- <param name="cSPaired" type="select" label="Is this library mate-paired?">
- <option value="cSingle">Single-end</option>
- <option value="cPaired">Paired-end</option>
- </param>
- <when value="cSingle">
- <param name="csInput1" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
- <conditional name="csParams">
- <param name="csSettingsType" 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="csPreSet">Commonly used</option>
- <option value="csFull">Full parameter list</option>
- </param>
- <when value="csPreSet" />
- <when value="csFull">
- <param name="csSkip" type="integer" value="0" label="Skip the first n reads (-s)" />
- <param name="csAlignLimit" type="integer" value="-1" label="Only align the first n reads (-u)" help="-1 for off" />
- <param name="csTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
- <param name="csTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
- <param name="csMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
- <param name="csMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
- <param name="csSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
- <param name="csRounding" 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="csMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
- <param name="csTryHard" 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="csValAlign" type="integer" value="1" label="Report up to n valid arguments per read (-k)" />
- <param name="csAllValAligns" 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="csSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a read if more than n reportable alignments exist (-m)" help="-1 for no limit" />
- <conditional name="csBestOption">
- <param name="csBest" 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="csNoBest">Do not use best</option>
- <option value="csDoBest">Use best</option>
- </param>
- <when value="csNoBest">
- <param name="csnMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- </when>
- <when value="csDoBest">
- <param name="csdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- <param name="csdStrata" 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>
- </when>
- </conditional> <!-- csBestOption -->
- <param name="csOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
- <param name="csSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
- <param name="csSnpphred" type="integer" value="-1" label="SNP penalty (ratio of SNPs per base in the subject genome) (--snpphred)" help="Enter this OR Ratio of SNPs per base" />
- <param name="csSnpfrac" type="float" value="0.001" label="Ratio of SNPs per base (estimated ratio for colorspace alignments) (--snpfrac)" help="Enter this OR SNP penalty" />
- <param name="csKeepends" type="select" label="Keep the extreme-ends nucleotides and qualities rather than trimming them (--keepends)">
- <option value="doKeepends">Keep ends</option>
- <option value="noKeepends">Trim ends</option>
- </param>
- </when> <!-- csFull -->
- </conditional> <!-- csParams -->
- </when> <!-- cSingle -->
- <when value="cPaired">
- <param name="cpInput1" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
- <param name="cpInput2" type="data" format="fastqsanger" label="Reverse FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
- <conditional name="cpParams">
- <param name="cpSettingsType" 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="cpPreSet">Commonly used</option>
- <option value="cpFull">Full parameter list</option>
- </param>
- <when value="cpPreSet" />
- <when value="cpFull">
- <param name="cpSkip" type="integer" value="0" label="Skip the first n pairs (-s)" />
- <param name="cpAlignLimit" type="integer" value="-1" label="Only align the first n pairs (-u)" help="-1 for off" />
- <param name="cpTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
- <param name="cpTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
- <param name="cpMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
- <param name="cpMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
- <param name="cpSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
- <param name="cpRounding" 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="cpMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
- <param name="cpMinInsert" type="integer" value="0" label="Minimum insert size for valid paired-end alignments (-I)" />
- <param name="cpMaxInsert" type="integer" value="250" label="Maximum insert size for valid paired-end alignments (-X)" />
- <param name="cpMateOrient" type="select" label="The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand (--fr/--rf/--ff)">
- <option value="fr">FR (for Illumina)</option>
- <option value="rf">RF</option>
- <option value="ff">FF</option>
- </param>
- <param name="cpMaxAlignAttempt" 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="cpForwardAlign" type="select" label="Choose whether or not to attempt to align 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="cpReverseAlign" type="select" label="Choose whether or not 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="cpTryHard" 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="cpValAlign" type="integer" value="1" label="Report up to n valid arguments per pair (-k)" />
- <param name="cpAllValAligns" 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="cpSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a pair if more than n reportable alignments exist (-m)" help="-1 for no limit" />
- <conditional name="cpBestOption">
- <param name="cpBest" 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="cpNoBest">Do not use best</option>
- <option value="cpDoBest">Use best</option>
- </param>
- <when value="cpNoBest">
- <param name="cpnMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- </when>
- <when value="cpDoBest">
- <param name="cpdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- <param name="cpdStrata" 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>
- </when>
- </conditional> <!-- cpBestOption -->
- <param name="cpOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
- <param name="cpSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
- <param name="cpSnpphred" type="integer" value="-1" label="SNP penalty (ratio of SNPs per base in the subject genome) (--snpphred)" help="Enter this OR Ratio of SNPs per base" />
- <param name="cpSnpfrac" type="float" value="0.001" label="Ratio of SNPs per base (estimated ratio for colorspace alignments) (--snpfrac)" help="Enter this OR SNP penalty" />
- <param name="cpKeepends" type="select" label="Keep the extreme-ends nucleotides and qualities rather than trimming them (--keepends)">
- <option value="doKeepends">Keep ends</option>
- <option value="noKeepends">Trim ends</option>
- </param>
- </when> <!-- cpFull -->
- </conditional> <!-- cpParams -->
- </when> <!-- cPaired -->
- </conditional> <!-- cSinglePaired -->
- </when> <!-- solid -->
- <when value="solexa">
- <conditional name="xRefGenomeSource">
- <param name="xGenomeSource" type="select" label="Will you select a reference genome from your history or use a built-in index?" help="Built-ins were indexed using default options">
- <option value="xIndexed">Use a built-in index</option>
- <option value="xHistory">Use one from the history</option>
- </param>
- <when value="xIndexed">
- <param name="xIndex" type="select" label="Select the reference genome" help="if your genome of interest is not listed - contact Galaxy team">
- <options from_file="bowtie_indices.loc">
- <column name="value" index="1" />
- <column name="name" index="0" />
- </options>
- </param>
- </when>
- <when value="xHistory">
- <param name="xOwnFile" type="data" format="fasta" metadata_name="dbkey" label="Select a reference genome" />
- <conditional name="xIndexParams">
- <param name="xIndexSettings" type="select" label="Choose whether to use default options for building indices or to set your own">
- <option value="xIndexPreSet">Default</option>
- <option value="xIndexFull">Set your own</option>
- </param>
- <when value="xIndexPreSet" />
- <when value="xIndexFull">
- <conditional name="xAutoBehavior">
- <param name="xAutoB" type="select" label="Choose to use automatic or specified behavior for some parameters (-a)" help="Allows you to set --packed, --bmax, --bmaxdivn, and --dcv">
- <option value="xAuto">Automatic behavior</option>
- <option value="xSet">Set values (sets --noauto and allows others to be set)</option>
- </param>
- <when value="xAuto" />
- <when value="xSet">
- <param name="xPacked" type="select" label="Whether or not to use a packed representation for DNA strings (-p)">
- <option value="unpacked">Use regular representation</option>
- <option value="packed">Use packed representation</option>
- </param>
- <param name="xBmax" 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="xBmaxdivn" 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="xDcv" type="integer" value="1024" label="The period for the difference-cover sample (--dcv)" />
- </when>
- </conditional>
- <param name="xNodc" 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 (a very repetitive reference)">
- <option value="dc">Use difference-cover sample</option>
- <option value="nodc">Disable difference-cover sample</option>
- </param>
- <param name="xNoref" type="select" label="Whether or not to build the part of the reference index used only in paired-end alignment (-r)">
- <option value="ref">Build all index files</option>
- <option value="noref">Do not build paired-end alignment index files</option>
- </param>
- <param name="xOffrate" type="integer" value="5" label="How many rows get marked during annotation of some or all of the Burrows-Wheeler rows (-o)" />
- <param name="xFtab" 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="xNtoa" 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>
- </param>
- <param name="xEndian" 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 name="xSeed" type="integer" value="-1" label="Seed for the pseudorandom number generator (--seed)" help="Use -1 to use default" />
- <param name="xCutoff" type="integer" value="-1" label="Number of first bases of the reference sequence to index (--cutoff)" help="Use -1 to use default" />
- </when> <!-- xIndexFull -->
- </conditional> <!-- xIndexParams -->
- </when> <!-- xHistory -->
- </conditional> <!-- xRefGenomeSource -->
- <conditional name="xSinglePaired">
- <param name="xSPaired" type="select" label="Is this library mate-paired?">
- <option value="xSingle">Single-end</option>
- <option value="xPaired">Paired-end</option>
- </param>
- <when value="xSingle">
- <param name="xsInput1" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
- <conditional name="xsParams">
- <param name="xsSettingsType" 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="xsPreSet">Commonly used</option>
- <option value="xsFull">Full parameter list</option>
- </param>
- <when value="xsPreSet" />
- <when value="xsFull">
- <param name="xsSkip" type="integer" value="0" label="Skip the first n reads (-s)" />
- <param name="xsAlignLimit" type="integer" value="-1" label="Only align the first n reads (-u)" help="-1 for off" />
- <param name="xsTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
- <param name="xsTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
- <param name="xsMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
- <param name="xsMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
- <param name="xsSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
- <param name="xsRounding" 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="xsMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
- <param name="xsTryHard" 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="xsValAlign" type="integer" value="1" label="Report up to n valid arguments per read (-k)" />
- <param name="xsAllValAligns" 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="xsSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a read if more than n reportable alignments exist (-m)" help="-1 for no limit" />
- <conditional name="xsBestOption">
- <param name="xsBest" 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="xsNoBest">Do not use best</option>
- <option value="xsDoBest">Use best</option>
- </param>
- <when value="xsNoBest">
- <param name="xsnMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- </when>
- <when value="xsDoBest">
- <param name="xsdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- <param name="xsdStrata" 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>
- </when>
- </conditional> <!-- xsBestOption -->
- <param name="xsOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
- <param name="xsSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
- </when> <!-- xsFull -->
- </conditional> <!-- xsParams -->
- </when> <!-- xSingle -->
- <when value="xPaired">
- <param name="xpInput1" type="data" format="fastqsanger" label="Forward FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
- <param name="xpInput2" type="data" format="fastqsanger" label="Reverse FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
- <conditional name="xpParams">
- <param name="xpSettingsType" 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="xpPreSet">Commonly used</option>
- <option value="xpFull">Full parameter list</option>
- </param>
- <when value="xpPreSet" />
- <when value="xpFull">
- <param name="xpSkip" type="integer" value="0" label="Skip the first n pairs (-s)" />
- <param name="xpAlignLimit" type="integer" value="-1" label="Only align the first n pairs (-u)" help="-1 for off" />
- <param name="xpTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
- <param name="xpTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
- <param name="xpMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
- <param name="xpMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
- <param name="xpSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
- <param name="xpRounding" 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="xpMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
- <param name="xpMinInsert" type="integer" value="0" label="Minimum insert size for valid paired-end alignments (-I)" />
- <param name="xpMaxInsert" type="integer" value="250" label="Maximum insert size for valid paired-end alignments (-X)" />
- <param name="xpMateOrient" type="select" label="The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand (--fr/--rf/--ff)">
- <option value="fr">FR (for Illumina)</option>
- <option value="rf">RF</option>
- <option value="ff">FF</option>
- </param>
- <param name="xpMaxAlignAttempt" 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="xpForwardAlign" type="select" label="Choose whether or not to attempt to align 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="xpReverseAlign" type="select" label="Choose whether or not 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="xpTryHard" 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="xpValAlign" type="integer" value="1" label="Report up to n valid arguments per pair (-k)" />
- <param name="xpAllValAligns" 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="xpSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a pair if more than n reportable alignments exist (-m)" help="-1 for no limit" />
- <conditional name="xpBestOption">
- <param name="xpBest" 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="xpNoBest">Do not use best</option>
- <option value="xpDoBest">Use best</option>
- </param>
- <when value="xpNoBest">
- <param name="xpnMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- </when>
- <when value="xpDoBest">
- <param name="xpdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- <param name="xpdStrata" 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>
- </when>
- </conditional> <!-- xpBestOption -->
- <param name="xpOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
- <param name="xpSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
- </when> <!-- xpFull -->
- </conditional> <!-- xpParams -->
- </when> <!-- xPaired -->
- </conditional> <!-- xSinglePaired -->
- </when> <!-- solexa -->
- </conditional> <!-- solidOrSolexa -->
+ </when>
+ </conditional>
+ <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="true" label="Suppress the header in the output SAM file" help="Bowtie produces SAM with several lines of header information" />
</inputs>
<outputs>
@@ -784,225 +387,93 @@
<test>
<!--
Bowtie command:
- bowtie -p 4 -S +sam-nohead -q -C chrM_color test-data/bowtie_in1.fastqsanger > test-data/bowtie_out1.sam
- -p is the number of threads, which is hardcoded above. You need to replace the + with 2 dashes.
- chrM_color needs to be the base location/name of the index files.
- -->
- <param name="dataType" value="solid" />
- <param name="cGenomeSource" value="cIndexed" />
- <param name="cIndex" value="equCab2chrM" />
- <param name="cSPaired" value="cSingle" />
- <param name="csInput1" ftype="fastqsanger" value="bowtie_in1.fastqsanger" />
- <param name="csSettingsType" value="csPreSet" />
- <param name="suppressHeader" value="true" />
- <output name="output" ftype="sam" file="bowtie_out1.sam" />
- </test>
- <test>
- <!--
- Bowtie command:
bowtie -p 4 -S +sam-nohead -q chrM_base test-data/bowtie_in2.fastqsanger > test-data/bowtie_out2.sam
-p is the number of threads, which is hardcoded above. You need to replace the + with 2 dashes.
chrM_base needs to be the base location/name of the index files.
-->
- <param name="dataType" value="solexa" />
- <param name="xGenomeSource" value="xIndexed" />
- <param name="xIndex" value="equCab2chrM" />
- <param name="xSPaired" value="xSingle" />
- <param name="xsInput1" ftype="fastqsanger" value="bowtie_in2.fastqsanger" />
- <param name="xsSettingsType" value="xsPreSet" />
+ <param name="genomeSource" value="indexed" />
+ <param name="index" value="equCab2chrM" />
+ <param name="sPaired" value="single" />
+ <param name="sInput1" ftype="fastqsanger" value="bowtie_in2.fastqsanger" />
+ <param name="sSettingsType" value="preSet" />
<param name="suppressHeader" value="true" />
<output name="output" ftype="sam" file="bowtie_out2.sam" />
</test>
<test>
<!--
Bowtie command:
- bowtie-build -f -C test-data/chr_m.fasta chrM_color
- bowtie -n 2 -e 70 -l 28 -X 250 +fr +pairtries 100 +maxbts 125 -k 1 -C +snpfrac 0.001 +col-keepends -p 4 -S +sam-nohead -q chrM_color -1 test-data/bowtie_in3.fastqsanger -2 test-data/bowtie_in4.fastqsanger > test-data/bowtie_out3.sam
- -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
- chrM_base is the index files' location/base name.
- -->
- <param name="dataType" value="solid" />
- <param name="cGenomeSource" value="cHistory" />
- <param name="cOwnFile" value="chr_m.fasta" />
- <param name="cIndexSettings" value="cIndexPreSet" />
- <param name="cSPaired" value="cPaired" />
- <param name="cpInput1" ftype="fastqsanger" value="bowtie_in3.fastqsanger" />
- <param name="cpInput2" ftype="fastqsanger" value="bowtie_in4.fastqsanger" />
- <param name="cpSettingsType" value="cpFull" />
- <param name="cpSkip" value="0" />
- <param name="cpAlignLimit" value="-1" />
- <param name="cpTrimH" value="0" />
- <param name="cpTrimL" value="0" />
- <param name="cpMismatchSeed" value="2" />
- <param name="cpMismatchQual" value="70" />
- <param name="cpSeedLen" value="28" />
- <param name="cpRounding" value="round" />
- <param name="cpMaqSoapAlign" value="-1" />
- <param name="cpMinInsert" value="0" />
- <param name="cpMaxInsert" value="250" />
- <param name="cpMateOrient" value="fr" />
- <param name="cpMaxAlignAttempt" value="100" />
- <param name="cpForwardAlign" value="forward" />
- <param name="cpReverseAlign" value="reverse" />
- <param name="cpTryHard" value="noTryHard" />
- <param name="cpValAlign" value="1" />
- <param name="cpAllValAligns" value="noAllValAligns" />
- <param name="cpSuppressAlign" value="-1" />
- <param name="cpBest" value="cpNoBest" />
- <param name="cpnMaxBacktracks" value="125" />
- <param name="cpOffrate" value="-1" />
- <param name="cpSeed" value="-1" />
- <param name="cpSnpphred" value="-1" />
- <param name="cpSnpfrac" value="0.001" />
- <param name="cpKeepends" value="doKeepends" />
- <param name="suppressHeader" value="true" />
- <output name="output" ftype="sam" file="bowtie_out3.sam" />
- </test>
- <test>
- <!--
- Bowtie command:
bowtie-build -f test-data/chr_m.fasta chrM_base
bowtie -n 2 -e 70 -l 28 -X 250 +fr +pairtries 100 +maxbts 800 -k 1 +best -p 4 -S +sam-nohead -q chrM_base -1 test-data/bowtie_in5.fastqsanger -2 test-data/bowtie_in6.fastqsanger > test-data/bowtie_out4.sam
-p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
chrM_base is the index files' location/base name.
-->
- <param name="dataType" value="solexa" />
- <param name="xGenomeSource" value="xHistory" />
- <param name="xOwnFile" value="chr_m.fasta" />
- <param name="xIndexSettings" value="xIndexPreSet" />
- <param name="xSPaired" value="xPaired" />
- <param name="xpInput1" ftype="fastqsanger" value="bowtie_in5.fastqsanger" />
- <param name="xpInput2" ftype="fastqsanger" value="bowtie_in6.fastqsanger" />
- <param name="xpSettingsType" value="xpFull" />
- <param name="xpSkip" value="0" />
- <param name="xpAlignLimit" value="-1" />
- <param name="xpTrimH" value="0" />
- <param name="xpTrimL" value="0" />
- <param name="xpMismatchSeed" value="2" />
- <param name="xpMismatchQual" value="70" />
- <param name="xpSeedLen" value="28" />
- <param name="xpRounding" value="round" />
- <param name="xpMaqSoapAlign" value="-1" />
- <param name="xpMinInsert" value="0" />
- <param name="xpMaxInsert" value="250" />
- <param name="xpMateOrient" value="fr" />
- <param name="xpMaxAlignAttempt" value="100" />
- <param name="xpForwardAlign" value="forward" />
- <param name="xpReverseAlign" value="reverse" />
- <param name="xpTryHard" value="noTryHard" />
- <param name="xpValAlign" value="1" />
- <param name="xpAllValAligns" value="noAllValAligns" />
- <param name="xpSuppressAlign" value="-1" />
- <param name="xpBest" value="xpDoBest" />
- <param name="xpdMaxBacktracks" value="800" />
- <param name="xpdStrata" value="noStrata" />
- <param name="xpOffrate" value="-1" />
- <param name="xpSeed" value="-1" />
+ <param name="genomeSource" value="history" />
+ <param name="ownFile" value="chr_m.fasta" />
+ <param name="indexSettings" value="indexPreSet" />
+ <param name="sPaired" value="paired" />
+ <param name="pInput1" ftype="fastqsanger" value="bowtie_in5.fastqsanger" />
+ <param name="pInput2" ftype="fastqsanger" value="bowtie_in6.fastqsanger" />
+ <param name="pSettingsType" value="full" />
+ <param name="pSkip" value="0" />
+ <param name="pAlignLimit" value="-1" />
+ <param name="pTrimH" value="0" />
+ <param name="pTrimL" value="0" />
+ <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="pMaxInsert" value="250" />
+ <param name="pMateOrient" value="fr" />
+ <param name="pMaxAlignAttempt" value="100" />
+ <param name="pForwardAlign" value="forward" />
+ <param name="pReverseAlign" value="reverse" />
+ <param name="pTryHard" value="noTryHard" />
+ <param name="pValAlign" value="1" />
+ <param name="pAllValAligns" value="noAllValAligns" />
+ <param name="pSuppressAlign" value="-1" />
+ <param name="pBest" value="doBest" />
+ <param name="pdMaxBacktracks" value="800" />
+ <param name="pdStrata" value="noStrata" />
+ <param name="pOffrate" value="-1" />
+ <param name="pSeed" value="-1" />
<param name="suppressHeader" value="true" />
<output name="output" ftype="sam" file="bowtie_out4.sam" />
</test>
-<!-- Comment out tests 5 and 6 because they are failing for an unknown reason
+<!-- Comment out test 3 because they are failing for an unknown reason -->
<test>
---> <!--
- Bowtie command:
- bowtie -n 2 -e 70 -l 28 +maxbts 125 -k 1 -C +snpfrac 0.001 +col-keepends -p 4 -S +sam-nohead -q chrM_color test-data/bowtie_in1.fastqsanger > test-data/bowtie_out5.sam
- -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
- chrM_base is the index files' location/base name.
- -->
-<!-- <param name="dataType" value="solid" />
- <param name="cGenomeSource" value="cIndexed" />
- <param name="cIndex" value="equCab2chrM" />
- <param name="cSPaired" value="cSingle" />
- <param name="csInput1" value="bowtie_in1.fastqsanger" />
- <param name="csSettingsType" value="csFull" />
- <param name="csSkip" value="0" />
- <param name="csAlignLimit" value="-1" />
- <param name="csTrimH" value="0" />
- <param name="csTrimL" value="0" />
- <param name="csMismatchSeed" value="2" />
- <param name="csMismatchQual" value="70" />
- <param name="csSeedLen" value="28" />
- <param name="csRounding" value="round" />
- <param name="csMaqSoapAlign" value="-1" />
- <param name="csTryHard" value="noTryHard" />
- <param name="csValAlign" value="1" />
- <param name="csAllValAligns" value="noAllValAligns" />
- <param name="csSuppressAlign" value="-1" />
- <param name="csBest" value="csNoBest" />
- <param name="csnMaxBacktracks" value="125" />
- <param name="csOffrate" value="-1" />
- <param name="csSeed" value="-1" />
- <param name="csSnpphred" value="-1" />
- <param name="csSnpfrac" value="0.001" />
- <param name="csKeepends" value="doKeepends" />
- <param name="suppressHeader" value="true" />
- <output name="output" ftype="sam" file="bowtie_out5.sam" />
- </test>
- <test>
---> <!--
+ <!--
Bowtie command:
bowtie -n 2 -e 70 -l 28 -k 1 +maxbts 125 -y -p 4 -S +sam-nohead -q chrM_base test-data/bowtie_in2.fastqsanger > test-data/bowtie_out6.sam
-p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
chrM_base is the index files' location/base name.
-->
-<!-- <param name="dataType" value="solexa" />
- <param name="xGenomeSource" value="xIndexed" />
- <param name="xIndex" value="equCab2chrM" />
- <param name="xSPaired" value="xSingle" />
- <param name="xsInput1" value="bowtie_in2.fastqsanger" />
- <param name="xsSettingsType" value="xsFull" />
- <param name="xsSkip" value="0" />
- <param name="xsAlignLimit" value="-1" />
- <param name="xsTrimH" value="0" />
- <param name="xsTrimL" value="0" />
- <param name="xsMismatchSeed" value="2" />
- <param name="xsMismatchQual" value="70" />
- <param name="xsSeedLen" value="28" />
- <param name="xsRounding" value="round" />
- <param name="xsMaqSoapAlign" value="-1" />
- <param name="xsTryHard" value="doTryHard" />
- <param name="xsValAlign" value="1" />
- <param name="xsAllValAligns" value="noAllValAligns" />
- <param name="xsSuppressAlign" value="-1" />
- <param name="xsBest" value="xsNoBest" />
- <param name="xsnMaxBacktracks" value="125" />
- <param name="xsOffrate" value="-1" />
- <param name="xsSeed" value="-1" />
+ <param name="genomeSource" value="indexed" />
+ <param name="index" value="equCab2chrM" />
+ <param name="sPaired" value="single" />
+ <param name="sInput1" ftype="fastqsanger" value="bowtie_in2.fastqsanger" />
+ <param name="sSettingsType" value="full" />
+ <param name="sSkip" value="0" />
+ <param name="sAlignLimit" value="-1" />
+ <param name="sTrimH" value="0" />
+ <param name="sTrimL" value="0" />
+ <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="sTryHard" value="doTryHard" />
+ <param name="sValAlign" value="1" />
+ <param name="sAllValAligns" value="noAllValAligns" />
+ <param name="sSuppressAlign" value="-1" />
+ <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" />
<output name="output" ftype="sam" file="bowtie_out6.sam" />
</test>
---> <test>
- <!--
- Bowtie command:
- bowtie-build +noauto +bmaxdivn 4 +dcv 1024 +offrate 5 +ftabchars 10 +little -C -f test-data/chr_m.fasta chrM_color
- bowtie -p 4 -S +sam-nohead -q -C chrM_color -1 test-data/bowtie_in3.fastqsanger -2 test-data/bowtie_in4.fastqsanger > test-data/bowtie_out7.sam
- -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
- chrM_base is the index files' location/base name.
- -->
- <param name="dataType" value="solid" />
- <param name="cGenomeSource" value="cHistory" />
- <param name="cOwnFile" value="chr_m.fasta" />
- <param name="cIndexSettings" value="cIndexFull" />
- <param name="cAutoB" value="cSet" />
- <param name="cPacked" value="unpacked" />
- <param name="cBmax" value="-1" />
- <param name="cBmaxdivn" value="4" />
- <param name="cDcv" value="1024" />
- <param name="cNodc" value="dc" />
- <param name="cNoref" value="ref" />
- <param name="cOffrate" value="5" />
- <param name="cFtab" value="10" />
- <param name="cNtoa" value="no" />
- <param name="cEndian" value="little" />
- <param name="cSeed" value="-1" />
- <param name="cCutoff" value="-1" />
- <param name="cSPaired" value="cPaired" />
- <param name="cpInput1" ftype="fastqsanger" value="bowtie_in3.fastqsanger" />
- <param name="cpInput2" ftype="fastqsanger" value="bowtie_in4.fastqsanger" />
- <param name="cpSettingsType" value="cpPreSet" />
- <param name="suppressHeader" value="true" />
- <output name="output" ftype="sam" file="bowtie_out7.sam" />
- </test>
<test>
<!--
Bowtie command:
@@ -1011,23 +482,22 @@
-p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
chrM_base is the index files' location/base name.
-->
- <param name="dataType" value="solexa" />
- <param name="xGenomeSource" value="xHistory" />
- <param name="xOwnFile" value="chr_m.fasta" />
- <param name="xIndexSettings" value="xIndexFull" />
- <param name="xAutoB" value="xAuto" />
- <param name="xNodc" value="dc" />
- <param name="xNoref" value="ref" />
- <param name="xOffrate" value="5" />
- <param name="xFtab" value="10" />
- <param name="xNtoa" value="no" />
- <param name="xEndian" value="little" />
- <param name="xSeed" value="-1" />
- <param name="xCutoff" value="-1" />
- <param name="xSPaired" value="xPaired" />
- <param name="xpInput1" ftype="fastqsanger" value="bowtie_in5.fastqsanger" />
- <param name="xpInput2" ftype="fastqsanger" value="bowtie_in6.fastqsanger" />
- <param name="xpSettingsType" value="xpPreSet" />
+ <param name="genomeSource" value="history" />
+ <param name="ownFile" value="chr_m.fasta" />
+ <param name="indexSettings" value="indexFull" />
+ <param name="autoB" value="auto" />
+ <param name="nodc" value="dc" />
+ <param name="noref" value="ref" />
+ <param name="offrate" value="5" />
+ <param name="ftab" value="10" />
+ <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" />
+ <param name="pSettingsType" value="preSet" />
<param name="suppressHeader" value="true" />
<output name="output" ftype="sam" file="bowtie_out8.sam" />
</test>
diff -r b78de785df21 -r 35d2a31cfbaf tools/sr_mapping/bowtie_wrapper_code.py
--- a/tools/sr_mapping/bowtie_wrapper_code.py Tue Jan 12 15:48:21 2010 -0500
+++ b/tools/sr_mapping/bowtie_wrapper_code.py Tue Jan 12 16:49:02 2010 -0500
@@ -2,19 +2,12 @@
def exec_before_job(app, inp_data, out_data, param_dict, tool):
try:
- try:
- refFile = param_dict[ 'solidOrSolexa' ][ 'cRefGenomeSource' ][ 'cIndex' ].value
- except:
- refFile = param_dict[ 'solidOrSolexa' ][ 'xRefGenomeSource' ][ 'xIndex' ].value
+ refFile = param_dict[ 'refGenomeSource' ][ 'index' ].value
except:
try:
- try:
- refFile = param_dict[ 'solidOrSolexa' ][ 'cRefGenomeSource' ][ 'cOwnFile' ].dbkey
- except:
- refFile = param_dict[ 'solidOrSolexa' ][ 'xRefGenomeSource' ][ 'xOwnFile' ].dbkey
+ refFile = param_dict[ 'refGenomeSource' ][ 'ownFile' ].dbkey
except:
- out_data[ 'output' ].set_dbkey( '?' )
- return
+ refFile = '?'
dbkey = os.path.split( refFile )[1].split( '.' )[0]
# deal with the one odd case
if dbkey.find( 'chrM' ) >= 0 or dbkey.find( 'chr_m' ) >= 0:
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/b78de785df21
changeset: 3229:b78de785df21
user: jeremy goecks <jeremy.goecks(a)emory.edu>
date: Tue Jan 12 15:48:21 2010 -0500
description:
Small style updates to tags.
diffstat:
static/june_2007_style/autocomplete_tagging.css.tmpl | 5 +++--
static/june_2007_style/blue/autocomplete_tagging.css | 6 +++---
templates/tagging_common.mako | 2 +-
3 files changed, 7 insertions(+), 6 deletions(-)
diffs (59 lines):
diff -r 6741f6000e03 -r b78de785df21 static/june_2007_style/autocomplete_tagging.css.tmpl
--- a/static/june_2007_style/autocomplete_tagging.css.tmpl Tue Jan 12 14:08:17 2010 -0500
+++ b/static/june_2007_style/autocomplete_tagging.css.tmpl Tue Jan 12 15:48:21 2010 -0500
@@ -66,12 +66,12 @@
/****************************************************************************/
.tag-area {
width: 100%;
- cursor: pointer;
}
-.individual-tags
+.individual-tag-area
{
border:solid 1px #eee;
+ cursor: pointer;
}
.active-tag-area {
@@ -128,6 +128,7 @@
vertical-align: bottom;
border: none;
outline: none;
+ resize: none;
}
.delete-tag-img
diff -r 6741f6000e03 -r b78de785df21 static/june_2007_style/blue/autocomplete_tagging.css
--- a/static/june_2007_style/blue/autocomplete_tagging.css Tue Jan 12 14:08:17 2010 -0500
+++ b/static/june_2007_style/blue/autocomplete_tagging.css Tue Jan 12 15:48:21 2010 -0500
@@ -6,8 +6,8 @@
.ac_even{margin-left:0.3em;}
.ac_over{background-color:#0A246A;color:white;}
.ac_header{font-style:normal;color:gray;border-bottom:0.1em solid gray;}
-.tag-area{width:100%;cursor:pointer;}
-.individual-tags{border:solid 1px #eee;}
+.tag-area{width:100%;}
+.individual-tag-area{border:solid 1px #eee;cursor:pointer;}
.active-tag-area{background-color:white;}
.toggle-link{font-weight:normal;padding:0.3em;margin-bottom:1em;width:100%;padding:0.2em 0em 0.2em 0em;}
.tag-button{width:auto;color:#444;text-decoration:none;display:inline-block;cursor:pointer;margin:0.2em;border:0;padding:0.1em 0.5em 0.1em 0.5em;-moz-border-radius:.5em;-webkit-border-radius:.5em;border-radius:.5em;background:#bbb;}
@@ -15,5 +15,5 @@
.tag-button .tag-name:hover{color:white;}
.add-tag-button{margin-bottom:0.3em;vertical-align:middle;padding:0.3em;}
.add-tag-button:hover{cursor:pointer;}
-.tag-input{vertical-align:bottom;border:none;outline:none;}
+.tag-input{vertical-align:bottom;border:none;outline:none;resize:none;}
.delete-tag-img{margin-left:0.3em;}
diff -r 6741f6000e03 -r b78de785df21 templates/tagging_common.mako
--- a/templates/tagging_common.mako Tue Jan 12 14:08:17 2010 -0500
+++ b/templates/tagging_common.mako Tue Jan 12 15:48:21 2010 -0500
@@ -39,7 +39,7 @@
%endif
<div class="tag-area
%if tag_type == 'individual':
- individual-tags
+ individual-tag-area
%endif
">
1
0
22 Jan '10
details: http://www.bx.psu.edu/hg/galaxy/rev/6741f6000e03
changeset: 3228:6741f6000e03
user: Greg Von Kuster <greg(a)bx.psu.edu>
date: Tue Jan 12 14:08:17 2010 -0500
description:
Preserve teh order of a tool's output datasets by storing them in an odict rather than a dict - loosely based on the "patch" contributed by Alexander Rose.
diffstat:
lib/galaxy/tools/__init__.py | 6 +++---
lib/galaxy/tools/actions/__init__.py | 3 ++-
lib/galaxy/tools/actions/metadata.py | 3 ++-
lib/galaxy/tools/actions/upload_common.py | 6 +++++-
test/base/twilltestcase.py | 3 +--
5 files changed, 13 insertions(+), 8 deletions(-)
diffs (95 lines):
diff -r 892199a8078e -r 6741f6000e03 lib/galaxy/tools/__init__.py
--- a/lib/galaxy/tools/__init__.py Tue Jan 12 11:42:22 2010 -0500
+++ b/lib/galaxy/tools/__init__.py Tue Jan 12 14:08:17 2010 -0500
@@ -372,7 +372,7 @@
# Parse tool help
self.parse_help( root )
# Description of outputs produced by an invocation of the tool
- self.outputs = {}
+ self.outputs = odict()
out_elem = root.find("outputs")
if out_elem:
for data_elem in out_elem.findall("data"):
@@ -790,10 +790,10 @@
elif state.page == self.last_page:
out_data = self.execute( trans, incoming=params )
try:
- assert type( out_data ) is types.DictType
+ assert isinstance( out_data, odict )
return 'tool_executed.mako', dict( out_data=out_data )
except:
- return 'message.mako', dict( message_type='error', message=out_data, refresh_frames=[] )
+ return 'message.mako', dict( message_type='error', message='odict not returned from tool execution', refresh_frames=[] )
# Otherwise move on to the next page
else:
state.page += 1
diff -r 892199a8078e -r 6741f6000e03 lib/galaxy/tools/actions/__init__.py
--- a/lib/galaxy/tools/actions/__init__.py Tue Jan 12 11:42:22 2010 -0500
+++ b/lib/galaxy/tools/actions/__init__.py Tue Jan 12 14:08:17 2010 -0500
@@ -1,4 +1,5 @@
from galaxy.util.bunch import Bunch
+from galaxy.util.odict import odict
from galaxy.tools.parameters import *
from galaxy.tools.parameters.grouping import *
from galaxy.util.template import fill_template
@@ -107,7 +108,7 @@
input_values[ input.name ] = galaxy.tools.SelectToolParameterWrapper( input, input_values[ input.name ], tool.app, other_values = incoming )
else:
input_values[ input.name ] = galaxy.tools.InputValueWrapper( input, input_values[ input.name ], incoming )
- out_data = {}
+ out_data = odict()
# Collect any input datasets from the incoming parameters
inp_data = self.collect_input_datasets( tool, incoming, trans )
diff -r 892199a8078e -r 6741f6000e03 lib/galaxy/tools/actions/metadata.py
--- a/lib/galaxy/tools/actions/metadata.py Tue Jan 12 11:42:22 2010 -0500
+++ b/lib/galaxy/tools/actions/metadata.py Tue Jan 12 14:08:17 2010 -0500
@@ -1,5 +1,6 @@
from __init__ import ToolAction
from galaxy.datatypes.metadata import JobExternalOutputMetadataWrapper
+from galaxy.util.odict import odict
import logging
log = logging.getLogger( __name__ )
@@ -59,4 +60,4 @@
# Queue the job for execution
trans.app.job_queue.put( job.id, tool )
trans.log_event( "Added set external metadata job to the job queue, id: %s" % str(job.id), tool_id=job.tool_id )
- return []
+ return odict()
diff -r 892199a8078e -r 6741f6000e03 lib/galaxy/tools/actions/upload_common.py
--- a/lib/galaxy/tools/actions/upload_common.py Tue Jan 12 11:42:22 2010 -0500
+++ b/lib/galaxy/tools/actions/upload_common.py Tue Jan 12 14:08:17 2010 -0500
@@ -1,6 +1,7 @@
import os, tempfile, StringIO
from cgi import FieldStorage
from galaxy import datatypes, util
+from galaxy.util.odict import odict
from galaxy.datatypes import sniff
from galaxy.util.json import to_json_string
from galaxy.model.orm import eagerload_all
@@ -321,7 +322,10 @@
# Queue the job for execution
trans.app.job_queue.put( job.id, tool )
trans.log_event( "Added job to the job queue, id: %s" % str(job.id), tool_id=job.tool_id )
- return dict( [ ( 'output%i' % i, v ) for i, v in enumerate( data_list ) ] )
+ output = odict()
+ for i, v in enumerate( data_list ):
+ output[ 'output%i' % i ] = v
+ return output
def active_folders( trans, folder ):
# Stolen from galaxy.web.controllers.library_common (importing from which causes a circular issues).
# Much faster way of retrieving all active sub-folders within a given folder than the
diff -r 892199a8078e -r 6741f6000e03 test/base/twilltestcase.py
--- a/test/base/twilltestcase.py Tue Jan 12 11:42:22 2010 -0500
+++ b/test/base/twilltestcase.py Tue Jan 12 14:08:17 2010 -0500
@@ -81,8 +81,7 @@
def upload_file( self, filename, ftype='auto', dbkey='unspecified (?)' ):
"""Uploads a file"""
filename = self.get_filename(filename)
- self.home()
- self.visit_page( "tool_runner/index?tool_id=upload1" )
+ self.visit_url( "%s/tool_runner?tool_id=upload1" % self.url )
try:
tc.fv("1","file_type", ftype)
tc.fv("1","dbkey", dbkey)
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/892199a8078e
changeset: 3227:892199a8078e
user: James Taylor <james(a)jamestaylor.org>
date: Tue Jan 12 11:42:22 2010 -0500
description:
Tweaking style of panel header buttons
diffstat:
static/june_2007_style/blue/panel_layout.css | 4 ++--
static/june_2007_style/panel_layout.css.tmpl | 5 +++--
2 files changed, 5 insertions(+), 4 deletions(-)
diffs (42 lines):
diff -r a7deb5c197ad -r 892199a8078e static/june_2007_style/blue/panel_layout.css
--- a/static/june_2007_style/blue/panel_layout.css Tue Jan 12 11:37:45 2010 -0500
+++ b/static/june_2007_style/blue/panel_layout.css Tue Jan 12 11:42:22 2010 -0500
@@ -24,9 +24,9 @@
.unified-panel-header-inner{padding-top:0.45em;}
.menu-bg{background:#C1C9E5 url(menu_bg.png) top repeat-x;}
div.unified-panel-body{position:absolute;top:2em;bottom:0;width:100%;margin-top:1px;}
-.panel-header-button{color:#333;text-decoration:none;display:inline-block;cursor:pointer;margin:-1px;padding:1px;padding-right:0.5em;padding-left:0.5em;-moz-border-radius:0.5em;-webkit-border-radius:0.5em;border-radius:0.5em;background:#bbb;}
+.panel-header-button{color:#333;text-decoration:none;display:inline-block;cursor:pointer;margin:-1px;padding:1px;margin-top:-0.2em;border:solid #999 1px;padding-right:0.5em;padding-left:0.5em;-moz-border-radius:0.5em;-webkit-border-radius:0.5em;border-radius:0.5em;}
.panel-header-button.popup{padding-right:1.75em;background:url(../images/dropdownarrow.png) no-repeat right 7px;}
-.panel-header-button:hover{color:black;background-color:#aaaaaa;}
+.panel-header-button:hover{color:black;background-color:#ccc;}
.panel-header-button:active{color:white;background-color:#aaaaaa;}
#overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:20000;}
.dialog-box-container{position:relative;margin-top:80px;margin-right:auto;margin-left:auto;}
diff -r a7deb5c197ad -r 892199a8078e static/june_2007_style/panel_layout.css.tmpl
--- a/static/june_2007_style/panel_layout.css.tmpl Tue Jan 12 11:37:45 2010 -0500
+++ b/static/june_2007_style/panel_layout.css.tmpl Tue Jan 12 11:42:22 2010 -0500
@@ -144,12 +144,13 @@
display: inline-block;
cursor: pointer;
margin: -1px; padding: 1px;
+ margin-top: -0.2em;
+ border: solid #999 1px;
padding-right: 0.5em;
padding-left: 0.5em;
-moz-border-radius: 0.5em;
-webkit-border-radius: 0.5em;
border-radius: 0.5em;
- background: #bbb;
}
.panel-header-button.popup {
@@ -159,7 +160,7 @@
.panel-header-button:hover {
color: black;
- background-color: #aaaaaa;
+ background-color: #ccc;
}
.panel-header-button:active {
1
0
22 Jan '10
details: http://www.bx.psu.edu/hg/galaxy/rev/a7deb5c197ad
changeset: 3226:a7deb5c197ad
user: jeremy goecks <jeremy.goecks(a)emory.edu>
date: Tue Jan 12 11:37:45 2010 -0500
description:
Enhancements to personal and public grids for pages, published histories, and workflows. Specific improvements: (a) added community tags to grids for published pages and published histories; (b) bug fixes for grids for published pages and published histories; © added individual tags for pages and workflows; (d) added user grid for stored/saved workflows (not yet included in default workflow view); (e) added grid for publicly available workflows; (f) added pretty URLs for public workflows and ability to view a public workflow. Fixes #232
diffstat:
lib/galaxy/model/__init__.py | 1 +
lib/galaxy/model/mapping.py | 1 +
lib/galaxy/model/migrate/versions/0032_stored_workflow_slug_column.py | 38 +
lib/galaxy/tags/tag_handler.py | 23 +-
lib/galaxy/web/base/controller.py | 18 +-
lib/galaxy/web/buildapp.py | 1 +
lib/galaxy/web/controllers/history.py | 46 +-
lib/galaxy/web/controllers/page.py | 24 +-
lib/galaxy/web/controllers/tag.py | 18 +-
lib/galaxy/web/controllers/workflow.py | 138 ++++++-
lib/galaxy/web/framework/__init__.py | 6 +
static/june_2007_style/autocomplete_tagging.css.tmpl | 6 +-
static/june_2007_style/blue/autocomplete_tagging.css | 3 +-
templates/history/list_public.mako | 2 +-
templates/history/view.mako | 136 +++---
templates/page/display.mako | 2 -
templates/page/editor.mako | 7 +-
templates/root/history.mako | 21 +-
templates/tagging_common.mako | 12 +-
templates/workflow/display.mako | 195 ++++++++++
templates/workflow/list_public.mako | 23 +
templates/workflow/sharing.mako | 7 +
22 files changed, 566 insertions(+), 162 deletions(-)
diffs (1192 lines):
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/model/__init__.py
--- a/lib/galaxy/model/__init__.py Mon Jan 11 17:04:45 2010 -0500
+++ b/lib/galaxy/model/__init__.py Tue Jan 12 11:37:45 2010 -0500
@@ -1114,6 +1114,7 @@
self.id = None
self.user = None
self.name = None
+ self.slug = None
self.latest_workflow_id = None
self.workflows = []
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/model/mapping.py
--- a/lib/galaxy/model/mapping.py Mon Jan 11 17:04:45 2010 -0500
+++ b/lib/galaxy/model/mapping.py Tue Jan 12 11:37:45 2010 -0500
@@ -513,6 +513,7 @@
Column( "name", TEXT ),
Column( "deleted", Boolean, default=False ),
Column( "importable", Boolean, default=False ),
+ Column( "slug", TEXT, index=True )
)
Workflow.table = Table( "workflow", metadata,
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/model/migrate/versions/0032_stored_workflow_slug_column.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/galaxy/model/migrate/versions/0032_stored_workflow_slug_column.py Tue Jan 12 11:37:45 2010 -0500
@@ -0,0 +1,38 @@
+"""
+Migration script to add slug column for stored workflow.
+"""
+
+from sqlalchemy import *
+from migrate import *
+from migrate.changeset import *
+
+import logging
+log = logging.getLogger( __name__ )
+
+metadata = MetaData( migrate_engine )
+
+def upgrade():
+
+ print __doc__
+ metadata.reflect()
+
+ StoredWorkflow_table = Table( "stored_workflow", metadata, autoload=True )
+
+ # Create slug column.
+ c = Column( "slug", TEXT, index=True )
+ c.create( StoredWorkflow_table )
+ assert c is StoredWorkflow_table.c.slug
+
+ # Create slug index.
+ try:
+ i = Index( "ix_stored_workflow_slug", StoredWorkflow_table.c.slug )
+ i.create()
+ except:
+ # Mysql doesn't have a named index, but alter should work
+ StoredWorkflow_table.c.slug.alter( unique=False )
+
+def downgrade():
+ metadata.reflect()
+
+ StoredWorkflow_table = Table( "stored_workflow", metadata, autoload=True )
+ StoredWorkflow_table.c.slug.drop()
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/tags/tag_handler.py
--- a/lib/galaxy/tags/tag_handler.py Mon Jan 11 17:04:45 2010 -0500
+++ b/lib/galaxy/tags/tag_handler.py Tue Jan 12 11:37:45 2010 -0500
@@ -1,9 +1,7 @@
-from galaxy.model import Tag
+from galaxy import model
import re
from sqlalchemy.sql.expression import func, and_
from sqlalchemy.sql import select
-from galaxy.model import History, HistoryTagAssociation, Dataset, DatasetTagAssociation, \
- HistoryDatasetAssociation, HistoryDatasetAssociationTagAssociation, Page, PageTagAssociation
class TagHandler( object ):
@@ -31,10 +29,11 @@
# Initialize with known classes.
item_tag_assoc_info = {}
- item_tag_assoc_info["History"] = ItemTagAssocInfo( History, HistoryTagAssociation, HistoryTagAssociation.table.c.history_id )
+ item_tag_assoc_info["History"] = ItemTagAssocInfo( model.History, model.HistoryTagAssociation, model.HistoryTagAssociation.table.c.history_id )
item_tag_assoc_info["HistoryDatasetAssociation"] = \
- ItemTagAssocInfo( HistoryDatasetAssociation, HistoryDatasetAssociationTagAssociation, HistoryDatasetAssociationTagAssociation.table.c.history_dataset_association_id )
- item_tag_assoc_info["Page"] = ItemTagAssocInfo( Page, PageTagAssociation, PageTagAssociation.table.c.page_id )
+ ItemTagAssocInfo( model.HistoryDatasetAssociation, model.HistoryDatasetAssociationTagAssociation, model.HistoryDatasetAssociationTagAssociation.table.c.history_dataset_association_id )
+ item_tag_assoc_info["Page"] = ItemTagAssocInfo( model.Page, model.PageTagAssociation, model.PageTagAssociation.table.c.page_id )
+ item_tag_assoc_info["StoredWorkflow"] = ItemTagAssocInfo( model.StoredWorkflow, model.StoredWorkflowTagAssociation, model.StoredWorkflowTagAssociation.table.c.stored_workflow_id )
def get_tag_assoc_class(self, item_class):
""" Returns tag association class for item class. """
@@ -55,7 +54,7 @@
# Build select statement.
cols_to_select = [ item_tag_assoc_class.table.c.tag_id, func.count('*') ]
- from_obj = item_tag_assoc_class.table.join(item_class.table).join(Tag.table)
+ from_obj = item_tag_assoc_class.table.join( item_class.table ).join( model.Tag.table )
where_clause = ( self.get_id_col_in_item_tag_assoc_table(item_class) == item.id )
order_by = [ func.count("*").desc() ]
group_by = item_tag_assoc_class.table.c.tag_id
@@ -101,7 +100,7 @@
# Get tag name.
if isinstance(tag, basestring):
tag_name = tag
- elif isinstance(tag, Tag):
+ elif isinstance(tag, model.Tag):
tag_name = tag.name
# Check for an item-tag association to see if item has a given tag.
@@ -168,12 +167,12 @@
def get_tag_by_id(self, db_session, tag_id):
"""Get a Tag object from a tag id."""
- return db_session.query(Tag).filter(Tag.id==tag_id).first()
+ return db_session.query( model.Tag ).filter_by( id=tag_id) .first()
def get_tag_by_name(self, db_session, tag_name):
"""Get a Tag object from a tag name (string)."""
if tag_name:
- return db_session.query( Tag ).filter( Tag.name==tag_name.lower() ).first()
+ return db_session.query( model.Tag ).filter_by( name=tag_name.lower() ).first()
return None
def _create_tag(self, db_session, tag_str):
@@ -184,9 +183,9 @@
for sub_tag in tag_hierarchy:
# Get or create subtag.
tag_name = tag_prefix + self._scrub_tag_name(sub_tag)
- tag = db_session.query(Tag).filter(Tag.name==tag_name).first()
+ tag = db_session.query( model.Tag ).filter_by( name=tag_name).first()
if not tag:
- tag = Tag(type=0, name=tag_name)
+ tag = model.Tag(type=0, name=tag_name)
# Set tag parent.
tag.parent = parent_tag
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/web/base/controller.py
--- a/lib/galaxy/web/base/controller.py Mon Jan 11 17:04:45 2010 -0500
+++ b/lib/galaxy/web/base/controller.py Tue Jan 12 11:37:45 2010 -0500
@@ -2,7 +2,7 @@
Contains functionality needed in every web interface
"""
-import os, time, logging
+import os, time, logging, re
# Pieces of Galaxy to make global in every controller
from galaxy import config, tools, web, model, util
@@ -28,7 +28,7 @@
return dict( action='display_by_username_and_slug', username=item.user.username, slug=item.slug )
else:
return None
-
+
class BaseController( object ):
"""
Base class for Galaxy web application controllers.
@@ -57,6 +57,20 @@
if history.user != user:
error( "History is not owned by current user" )
return history
+
+ def make_item_importable( self, sa_session, item ):
+ """ Makes item importable and sets item's slug. Does not flush/commit changes, however. Item must have name, user, importable, and slug attributes. """
+ item.importable = True
+
+ # Set history slug. Slug must be unique among user's importable pages.
+ slug_base = re.sub( "\s+", "-", item.name.lower() )
+ slug = slug_base
+ count = 1
+ while sa_session.query( item.__class__ ).filter_by( user=item.user, slug=slug, importable=True ).count() != 0:
+ # Slug taken; choose a new slug based on count. This approach can handle numerous histories with the same name gracefully.
+ slug = '%s-%i' % ( slug_base, count )
+ count += 1
+ item.slug = slug
Root = BaseController
"""
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/web/buildapp.py
--- a/lib/galaxy/web/buildapp.py Mon Jan 11 17:04:45 2010 -0500
+++ b/lib/galaxy/web/buildapp.py Tue Jan 12 11:37:45 2010 -0500
@@ -81,6 +81,7 @@
webapp.add_route( '/datasets/:dataset_id/:action/:filename', controller='dataset', action='index', dataset_id=None, filename=None)
webapp.add_route( '/u/:username/p/:slug', controller='page', action='display_by_username_and_slug' )
webapp.add_route( '/u/:username/h/:slug', controller='history', action='display_by_username_and_slug' )
+ webapp.add_route( '/u/:username/w/:slug', controller='workflow', action='display_by_username_and_slug' )
webapp.finalize_config()
# Wrap the webapp in some useful middleware
if kwargs.get( 'middleware', True ):
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/web/controllers/history.py
--- a/lib/galaxy/web/controllers/history.py Mon Jan 11 17:04:45 2010 -0500
+++ b/lib/galaxy/web/controllers/history.py Tue Jan 12 11:37:45 2010 -0500
@@ -10,19 +10,18 @@
import webhelpers, logging, operator
from datetime import datetime
from cgi import escape
-import re
log = logging.getLogger( __name__ )
# States for passing messages
SUCCESS, INFO, WARNING, ERROR = "done", "info", "warning", "error"
+class NameColumn( grids.TextColumn ):
+ def get_value( self, trans, grid, history ):
+ return history.get_display_name()
+
class HistoryListGrid( grids.Grid ):
# Custom column types
- class NameColumn( grids.TextColumn ):
- def get_value(self, trans, grid, history):
- return history.get_display_name()
-
class DatasetsByStateColumn( grids.GridColumn ):
def get_value( self, trans, grid, history ):
rval = []
@@ -174,21 +173,24 @@
return query.filter( model.HistoryUserShareAssociation.user == trans.user )
class PublicHistoryListGrid( grids.Grid ):
+ class NameURLColumn( PublicURLColumn, NameColumn ):
+ pass
+
title = "Public Histories"
model_class = model.History
default_sort_key = "-update_time"
default_filter = dict( public_url="All", username="All", tags="All" )
use_async = True
columns = [
- PublicURLColumn( "Name", key="name", model_class=model.History, filterable="advanced"),
+ NameURLColumn( "Name", key="name", model_class=model.History, filterable="advanced" ),
OwnerColumn( "Owner", key="username", model_class=model.User, filterable="advanced", sortable=False ),
- grids.GridColumn( "Created", key="create_time", format=time_ago ),
+ grids.CommunityTagsColumn( "Community Tags", "tags", model.History, model.HistoryTagAssociation, filterable="advanced", grid_name="PublicHistoryListGrid" ),
grids.GridColumn( "Last Updated", key="update_time", format=time_ago )
]
columns.append(
grids.MulticolFilterColumn(
"Search",
- cols_to_filter=[ columns[0], columns[1] ],
+ cols_to_filter=[ columns[0], columns[1], columns[2] ],
key="free-text-search", visible=False, filterable="standard" )
)
operations = []
@@ -213,7 +215,6 @@
public_list_grid = PublicHistoryListGrid()
@web.expose
- @web.require_login()
def list_public( self, trans, **kwargs ):
grid = self.public_list_grid( trans, **kwargs )
if 'async' in kwargs:
@@ -272,7 +273,7 @@
elif operation == "enable import via link":
for history in histories:
if not history.importable:
- self.make_history_importable( trans.sa_session, history )
+ self.make_item_importable( trans.sa_session, history )
elif operation == "disable import via link":
if history_ids:
histories = [ self.get_history( trans, history_id ) for history_id in history_ids ]
@@ -432,7 +433,7 @@
importable = importable in ['True', 'true', 't', 'T'];
if history and history.importable != importable:
if importable:
- self.make_history_importable( trans.sa_session, history )
+ self.make_item_importable( trans.sa_session, history )
else:
history.importable = importable
trans.sa_session.flush()
@@ -536,8 +537,9 @@
user_owns_history = user_owns_history,
show_deleted = False )
- @web.expose
+ @web.expose
def display_by_username_and_slug( self, trans, username, slug ):
+ """ Display history based on a username and slug. """
session = trans.sa_session
user = session.query( model.User ).filter_by( username=username ).first()
if user is None:
@@ -545,7 +547,7 @@
history = trans.sa_session.query( model.History ).filter_by( user=user, slug=slug, deleted=False, importable=True ).first()
if history is None:
raise web.httpexceptions.HTTPNotFound()
-
+
query = trans.sa_session.query( model.HistoryDatasetAssociation ) \
.filter( model.HistoryDatasetAssociation.history == history ) \
.options( eagerload( "children" ) ) \
@@ -848,7 +850,7 @@
for history in histories:
trans.sa_session.add( history )
if params.get( 'enable_import_via_link', False ):
- self.make_history_importable( trans.sa_session, history )
+ self.make_item_importable( trans.sa_session, history )
trans.sa_session.flush()
elif params.get( 'disable_import_via_link', False ):
history.importable = False
@@ -964,18 +966,4 @@
msg = 'Clone with name "%s" is now included in your previously stored histories.' % new_history.name
else:
msg = '%d cloned histories are now included in your previously stored histories.' % len( histories )
- return trans.show_ok_message( msg )
-
- def make_history_importable( self, sa_session, history ):
- """ Makes history importable and sets history's slug. Does not flush/commit changes, however. """
- history.importable = True
-
- # Set history slug. Slug must be unique among user's importable pages.
- slug_base = re.sub( "\s+", "-", history.name.lower() )
- slug = slug_base
- count = 1
- while sa_session.query( model.History ).filter_by( user=history.user, slug=slug, importable=True ).count() != 0:
- # Slug taken; choose a new slug based on count. This approach can handle numerous histories with the same name gracefully.
- slug = '%s-%i' % ( slug_base, count )
- count += 1
- history.slug = slug
\ No newline at end of file
+ return trans.show_ok_message( msg )
\ No newline at end of file
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/web/controllers/page.py
--- a/lib/galaxy/web/controllers/page.py Mon Jan 11 17:04:45 2010 -0500
+++ b/lib/galaxy/web/controllers/page.py Tue Jan 12 11:37:45 2010 -0500
@@ -14,19 +14,31 @@
return ""
class PageListGrid( grids.Grid ):
+ # Custom column.
+ class URLColumn( PublicURLColumn ):
+ def get_value( self, trans, grid, item ):
+ return url_for( action='display_by_username_and_slug', username=item.user.username, slug=item.slug )
+
# Grid definition
use_panels = True
title = "Pages"
model_class = model.Page
- default_filter = { "published" : "All"}
+ default_filter = { "published" : "All", "tags" : "All", "title" : "All"}
default_sort_key = "-create_time"
columns = [
- grids.TextColumn( "Title", key="title", model_class=model.Page, attach_popup=True, filterable="standard" ),
- PublicURLColumn( "Public URL" ),
- grids.GridColumn( "Published", key="published", format=format_bool, filterable="standard" ),
+ grids.TextColumn( "Title", key="title", model_class=model.Page, attach_popup=True, filterable="advanced" ),
+ URLColumn( "Public URL" ),
+ grids.IndividualTagsColumn( "Tags", "tags", model.Page, model.PageTagAssociation, filterable="advanced", grid_name="PageListGrid" ),
+ grids.GridColumn( "Published", key="published", format=format_bool, filterable="advanced" ),
grids.GridColumn( "Created", key="create_time", format=time_ago ),
grids.GridColumn( "Last Updated", key="update_time", format=time_ago ),
]
+ columns.append(
+ grids.MulticolFilterColumn(
+ "Search",
+ cols_to_filter=[ columns[0], columns[2] ],
+ key="free-text-search", visible=False, filterable="standard" )
+ )
global_actions = [
grids.GridAction( "Add new page", dict( action='create' ) )
]
@@ -52,13 +64,13 @@
columns = [
PublicURLColumn( "Title", key="title", model_class=model.Page, filterable="advanced"),
OwnerColumn( "Owner", key="username", model_class=model.User, filterable="advanced", sortable=False ),
- grids.GridColumn( "Created", key="create_time", format=time_ago ),
+ grids.CommunityTagsColumn( "Community Tags", "tags", model.Page, model.PageTagAssociation, filterable="advanced", grid_name="PageAllPublishedGrid" ),
grids.GridColumn( "Last Updated", key="update_time", format=time_ago )
]
columns.append(
grids.MulticolFilterColumn(
"Search",
- cols_to_filter=[ columns[0], columns[1] ],
+ cols_to_filter=[ columns[0], columns[1], columns[2] ],
key="free-text-search", visible=False, filterable="standard" )
)
def build_initial_query( self, session ):
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/web/controllers/tag.py
--- a/lib/galaxy/web/controllers/tag.py Mon Jan 11 17:04:45 2010 -0500
+++ b/lib/galaxy/web/controllers/tag.py Tue Jan 12 11:37:45 2010 -0500
@@ -2,8 +2,6 @@
Tags Controller: handles tagging/untagging of entities and provides autocomplete support.
"""
-from galaxy.model import History, HistoryTagAssociation, Dataset, DatasetTagAssociation, \
- HistoryDatasetAssociation, HistoryDatasetAssociationTagAssociation, Page, PageTagAssociation
from galaxy.web.base.controller import *
from galaxy.tags.tag_handler import *
from sqlalchemy.sql.expression import func, and_
@@ -75,11 +73,13 @@
# Get item class. TODO: we should have a mapper that goes from class_name to class object.
if item_class == 'History':
- item_class = History
+ item_class = model.History
elif item_class == 'HistoryDatasetAssociation':
- item_class = HistoryDatasetAssociation
+ item_class = model.HistoryDatasetAssociation
elif item_class == 'Page':
- item_class = Page
+ item_class = model.Page
+ elif item_class == 'StoredWorkflow':
+ item_class = model.StoredWorkflow
q = q.encode('utf-8')
if q.find(":") == -1:
@@ -104,9 +104,9 @@
# Build select statement.
cols_to_select = [ item_tag_assoc_class.table.c.tag_id, func.count('*') ]
- from_obj = item_tag_assoc_class.table.join(item_class.table).join(Tag.table)
+ from_obj = item_tag_assoc_class.table.join( item_class.table ).join( model.Tag.table )
where_clause = and_(
- Tag.table.c.name.like(q + "%"),
+ model.Tag.table.c.name.like(q + "%"),
item_tag_assoc_class.table.c.user_id == user.id
)
order_by = [ func.count("*").desc() ]
@@ -155,9 +155,9 @@
# Build select statement.
cols_to_select = [ item_tag_assoc_class.table.c.value, func.count('*') ]
- from_obj = item_tag_assoc_class.table.join(item_class.table).join(Tag.table)
+ from_obj = item_tag_assoc_class.table.join( item_class.table ).join( model.Tag.table )
where_clause = and_( item_tag_assoc_class.table.c.user_id == user.id,
- Tag.table.c.id==tag.id,
+ model.Tag.table.c.id==tag.id,
item_tag_assoc_class.table.c.value.like(tag_value + "%") )
order_by = [ func.count("*").desc(), item_tag_assoc_class.table.c.value ]
group_by = item_tag_assoc_class.table.c.value
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/web/controllers/workflow.py
--- a/lib/galaxy/web/controllers/workflow.py Mon Jan 11 17:04:45 2010 -0500
+++ b/lib/galaxy/web/controllers/workflow.py Tue Jan 12 11:37:45 2010 -0500
@@ -4,6 +4,7 @@
pkg_resources.require( "simplejson" )
import simplejson
+from galaxy.web.framework.helpers import time_ago, iff, grids
from galaxy.tools.parameters import *
from galaxy.tools import DefaultToolState
from galaxy.tools.parameters.grouping import Repeat, Conditional
@@ -15,11 +16,89 @@
from galaxy.model.mapping import desc
from galaxy.model.orm import *
+class StoredWorkflowListGrid( grids.Grid ):
+ class StepsColumn( grids.GridColumn ):
+ def get_value(self, trans, grid, workflow):
+ return len( workflow.latest_workflow.steps )
+
+ # Grid definition
+ use_panels = True
+ title = "Saved Workflows"
+ model_class = model.StoredWorkflow
+ default_filter = { "name" : "All", "tags": "All" }
+ default_sort_key = "-update_time"
+ columns = [
+ grids.TextColumn( "Name", key="name", model_class=model.StoredWorkflow, attach_popup=True, filterable="advanced" ),
+ grids.IndividualTagsColumn( "Tags", "tags", model.StoredWorkflow, model.StoredWorkflowTagAssociation, filterable="advanced", grid_name="StoredWorkflowListGrid" ),
+ StepsColumn( "Steps" ),
+ grids.GridColumn( "Created", key="create_time", format=time_ago ),
+ grids.GridColumn( "Last Updated", key="update_time", format=time_ago ),
+ ]
+ columns.append(
+ grids.MulticolFilterColumn(
+ "Search",
+ cols_to_filter=[ columns[0], columns[1] ],
+ key="free-text-search", visible=False, filterable="standard" )
+ )
+ operations = [
+ grids.GridOperation( "Edit", allow_multiple=False, condition=( lambda item: not item.deleted ), async_compatible=False ),
+ grids.GridOperation( "Run", condition=( lambda item: not item.deleted ), async_compatible=False ),
+ grids.GridOperation( "Clone", condition=( lambda item: not item.deleted ), async_compatible=False ),
+ grids.GridOperation( "Rename", condition=( lambda item: not item.deleted ), async_compatible=False ),
+ grids.GridOperation( "Sharing", condition=( lambda item: not item.deleted ), async_compatible=False ),
+ grids.GridOperation( "Delete", condition=( lambda item: item.deleted ), async_compatible=True ),
+ ]
+ def apply_default_filter( self, trans, query, **kwargs ):
+ return query.filter_by( user=trans.user, deleted=False )
+
+class PublicStoredWorkflowListGrid( grids.Grid ):
+ title = "Public Workflows"
+ model_class = model.StoredWorkflow
+ default_sort_key = "-update_time"
+ default_filter = dict( public_url="All", username="All", tags="All" )
+ use_async = True
+ columns = [
+ PublicURLColumn( "Name", key="name", model_class=model.StoredWorkflow, filterable="advanced" ),
+ OwnerColumn( "Owner", key="username", model_class=model.User, filterable="advanced", sortable=False ),
+ grids.CommunityTagsColumn( "Community Tags", "tags", model.StoredWorkflow, model.StoredWorkflowTagAssociation, filterable="advanced", grid_name="PublicWorkflowListGrid" ),
+ grids.GridColumn( "Last Updated", key="update_time", format=time_ago )
+ ]
+ columns.append(
+ grids.MulticolFilterColumn(
+ "Search",
+ cols_to_filter=[ columns[0], columns[1], columns[2] ],
+ key="free-text-search", visible=False, filterable="standard" )
+ )
+ operations = []
+ def build_initial_query( self, session ):
+ # Join so that searching stored_workflow.user makes sense.
+ return session.query( self.model_class ).join( model.User.table )
+ def apply_default_filter( self, trans, query, **kwargs ):
+ # A public workflow is importable, has a slug, and is not deleted.
+ return query.filter( self.model_class.importable==True ).filter( self.model_class.slug != None ).filter( self.model_class.deleted == False )
+
class WorkflowController( BaseController ):
+ stored_list_grid = StoredWorkflowListGrid()
+ public_list_grid = PublicStoredWorkflowListGrid()
@web.expose
def index( self, trans ):
return trans.fill_template( "workflow/index.mako" )
+
+ @web.expose
+ @web.require_login( "use Galaxy workflows" )
+ def list_grid( self, trans, **kwargs ):
+ """ List user's stored workflows. """
+ status = message = None
+ if 'operation' in kwargs:
+ operation = kwargs['operation'].lower()
+ print operation
+ if operation == "rename":
+ return self.rename( trans, **kwargs )
+ history_ids = util.listify( kwargs.get( 'id', [] ) )
+ if operation == "sharing":
+ return self.sharing( trans, id=history_ids )
+ return self.stored_list_grid( trans, **kwargs )
@web.expose
@web.require_login( "use Galaxy workflows" )
@@ -64,7 +143,52 @@
return trans.fill_template( "workflow/list_for_run.mako",
workflows = workflows,
shared_by_others = shared_by_others )
-
+
+ @web.expose
+ def list_public( self, trans, **kwargs ):
+ grid = self.public_list_grid( trans, **kwargs )
+ if 'async' in kwargs:
+ return grid
+ else:
+ # Render grid wrapped in panels
+ return trans.fill_template( "workflow/list_public.mako", grid=grid )
+
+ @web.expose
+ def display_by_username_and_slug( self, trans, username, slug ):
+ """ View workflow based on a username and slug. """
+ session = trans.sa_session
+
+ # Get and verify user and stored workflow.
+ user = session.query( model.User ).filter_by( username=username ).first()
+ if user is None:
+ raise web.httpexceptions.HTTPNotFound()
+ stored_workflow = trans.sa_session.query( model.StoredWorkflow ).filter_by( user=user, slug=slug, deleted=False, importable=True ).first()
+ if stored_workflow is None:
+ raise web.httpexceptions.HTTPNotFound()
+
+ # Get data for workflow's steps.
+ for step in stored_workflow.latest_workflow.steps:
+ if step.type == 'tool' or step.type is None:
+ # Restore the tool state for the step
+ module = module_factory.from_workflow_step( trans, step )
+ # Any connected input needs to have value DummyDataset (these
+ # are not persisted so we need to do it every time)
+ module.add_dummy_datasets( connections=step.input_connections )
+ # Store state with the step
+ step.module = module
+ step.state = module.state
+ # Error dict
+ if step.tool_errors:
+ errors[step.id] = step.tool_errors
+ else:
+ ## Non-tool specific stuff?
+ step.module = module_factory.from_workflow_step( trans, step )
+ step.state = step.module.get_runtime_state()
+ # Connections by input name
+ step.input_connections_by_name = dict( ( conn.input_name, conn ) for conn in step.input_connections )
+
+ return trans.fill_template_mako( "workflow/display.mako", workflow = stored_workflow, steps = stored_workflow.latest_workflow.steps )
+
@web.expose
@web.require_login( "use Galaxy workflows" )
def share( self, trans, id, email="" ):
@@ -108,7 +232,7 @@
stored = get_stored_workflow( trans, id )
session.add( stored )
if 'enable_import_via_link' in kwargs:
- stored.importable = True
+ self.make_item_importable( trans.sa_session, stored )
session.flush()
elif 'disable_import_via_link' in kwargs:
stored.importable = False
@@ -150,15 +274,19 @@
@web.expose
@web.require_login( "use Galaxy workflows" )
- def rename( self, trans, id, new_name=None ):
+ def rename( self, trans, id, new_name=None, **kwargs ):
stored = get_stored_workflow( trans, id )
if new_name is not None:
stored.name = new_name
trans.sa_session.flush()
- trans.set_message( "Workflow renamed to '%s'." % new_name )
+ # For current workflows grid:
+ trans.set_message ( "Workflow renamed to '%s'." % new_name )
return self.list( trans )
+ # For new workflows grid:
+ #message = "Workflow renamed to '%s'." % new_name
+ #return self.list_grid( trans, message=message, status='done' )
else:
- return form( url_for( id=trans.security.encode_id(stored.id) ), "Rename workflow", submit_text="Rename" ) \
+ return form( url_for( action='rename', id=trans.security.encode_id(stored.id) ), "Rename workflow", submit_text="Rename" ) \
.add_text( "new_name", "Workflow Name", value=stored.name )
@web.expose
diff -r 56efe838b9af -r a7deb5c197ad lib/galaxy/web/framework/__init__.py
--- a/lib/galaxy/web/framework/__init__.py Mon Jan 11 17:04:45 2010 -0500
+++ b/lib/galaxy/web/framework/__init__.py Tue Jan 12 11:37:45 2010 -0500
@@ -553,6 +553,12 @@
context.
"""
self.template_context['message'] = message
+ def get_message( self ):
+ """
+ Convenience method for getting the 'message' element of the template
+ context.
+ """
+ return self.template_context['message']
def show_message( self, message, type='info', refresh_frames=[], cont=None ):
"""
Convenience method for displaying a simple page with a single message.
diff -r 56efe838b9af -r a7deb5c197ad static/june_2007_style/autocomplete_tagging.css.tmpl
--- a/static/june_2007_style/autocomplete_tagging.css.tmpl Mon Jan 11 17:04:45 2010 -0500
+++ b/static/june_2007_style/autocomplete_tagging.css.tmpl Tue Jan 12 11:37:45 2010 -0500
@@ -67,7 +67,11 @@
.tag-area {
width: 100%;
cursor: pointer;
- border: solid 1px #eee;
+}
+
+.individual-tags
+{
+ border:solid 1px #eee;
}
.active-tag-area {
diff -r 56efe838b9af -r a7deb5c197ad static/june_2007_style/blue/autocomplete_tagging.css
--- a/static/june_2007_style/blue/autocomplete_tagging.css Mon Jan 11 17:04:45 2010 -0500
+++ b/static/june_2007_style/blue/autocomplete_tagging.css Tue Jan 12 11:37:45 2010 -0500
@@ -6,7 +6,8 @@
.ac_even{margin-left:0.3em;}
.ac_over{background-color:#0A246A;color:white;}
.ac_header{font-style:normal;color:gray;border-bottom:0.1em solid gray;}
-.tag-area{width:100%;cursor:pointer;border:solid 1px #eee;}
+.tag-area{width:100%;cursor:pointer;}
+.individual-tags{border:solid 1px #eee;}
.active-tag-area{background-color:white;}
.toggle-link{font-weight:normal;padding:0.3em;margin-bottom:1em;width:100%;padding:0.2em 0em 0.2em 0em;}
.tag-button{width:auto;color:#444;text-decoration:none;display:inline-block;cursor:pointer;margin:0.2em;border:0;padding:0.1em 0.5em 0.1em 0.5em;-moz-border-radius:.5em;-webkit-border-radius:.5em;border-radius:.5em;background:#bbb;}
diff -r 56efe838b9af -r a7deb5c197ad templates/history/list_public.mako
--- a/templates/history/list_public.mako Mon Jan 11 17:04:45 2010 -0500
+++ b/templates/history/list_public.mako Tue Jan 12 11:37:45 2010 -0500
@@ -15,7 +15,7 @@
<div style="overflow: auto; height: 100%;">
<div class="page-container" style="padding: 10px;">
- ${grid}
+ ${unicode( grid, 'utf-8' )}
</div>
</div>
diff -r 56efe838b9af -r a7deb5c197ad templates/history/view.mako
--- a/templates/history/view.mako Mon Jan 11 17:04:45 2010 -0500
+++ b/templates/history/view.mako Tue Jan 12 11:37:45 2010 -0500
@@ -256,14 +256,11 @@
//
function community_tag_click(tag_name, tag_value)
{
- // Do nothing until community tags are implemented in public histories grid.
- /*
var href = '${h.url_for( controller='/history', action='list_public')}';
href = href + "?f-tags=" + tag_name;
if (tag_value != null && tag_value != "")
href = href + ":" + tag_value;
self.location = href;
- */
}
</script>
</%def>
@@ -339,78 +336,79 @@
</div>
<div class="unified-panel-body">
- <div class="page-body">
- ## Render view of history.
- <div id="top-links" class="historyLinks" style="padding: 0px 0px 5px 0px">
- %if not user_owns_history:
- <a href="${h.url_for( controller='history', action='imp', id=trans.security.encode_id(history.id) )}">import and start using history</a> |
+ <div style="overflow: auto; height: 100%;">
+ <div class="page-body">
+ ## Render view of history.
+ <div id="top-links" class="historyLinks" style="padding: 0px 0px 5px 0px">
+ %if not user_owns_history:
+ <a href="${h.url_for( controller='history', action='imp', id=trans.security.encode_id(history.id) )}">import and start using history</a> |
+ %endif
+ <a href="${get_history_link( history )}">${_('refresh')}</a>
+ %if show_deleted:
+ | <a href="${h.url_for('history', show_deleted=False)}">${_('hide deleted')}</a>
+ %endif
+ </div>
+
+ <div id="history-name-area" class="historyLinks" style="color: gray; font-weight: bold; padding: 0px 0px 5px 0px">
+ %if user_owns_history:
+ <div style="float: right"><a id="history-rename" title="Rename" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='history', action='rename' )}"></a></div>
+ %endif
+ <div id="history-name">${history.get_display_name()}</div>
+ </div>
+
+ %if history.deleted:
+ <div class="warningmessagesmall">
+ ${_('You are currently viewing a deleted history!')}
+ </div>
+ <p></p>
%endif
- <a href="${get_history_link( history )}">${_('refresh')}</a>
- %if show_deleted:
- | <a href="${h.url_for('history', show_deleted=False)}">${_('hide deleted')}</a>
+
+ %if not datasets:
+
+ <div class="infomessagesmall" id="emptyHistoryMessage">
+
+ %else:
+
+ ## Render requested datasets, ordered from newest to oldest
+ %for data in datasets:
+ %if data.visible:
+ <div class="historyItemContainer visible-right-border" id="historyItemContainer-${data.id}">
+ ${render_dataset( data, data.hid, show_deleted_on_refresh = show_deleted, user_owns_dataset=user_owns_history )}
+ </div>
+ %endif
+ %endfor
+
+ <div class="infomessagesmall" id="emptyHistoryMessage" style="display:none;">
%endif
+ ${_("Your history is empty. Click 'Get Data' on the left pane to start")}
+ </div>
</div>
-
- <div id="history-name-area" class="historyLinks" style="color: gray; font-weight: bold; padding: 0px 0px 5px 0px">
- %if user_owns_history:
- <div style="float: right"><a id="history-rename" title="Rename" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='history', action='rename' )}"></a></div>
- %endif
- <div id="history-name">${history.get_display_name()}</div>
- </div>
-
- %if history.deleted:
- <div class="warningmessagesmall">
- ${_('You are currently viewing a deleted history!')}
+
+ <div class="page-meta">
+ ## Histories.
+ <div><strong>Related Histories</strong></div>
+ <p>
+ <a href="${h.url_for ( controller='/history', action='list_public' )}">All public histories</a><br>
+ <a href="${href_to_user_histories}">Histories owned by ${history.user.username}</a>
+
+ ## Tags.
+ <div><strong>Tags</strong></div>
+ <p>
+ ## Community tags.
+ <div>
+ Community:
+ ${render_community_tagging_element( tagged_item=history, tag_click_fn='community_tag_click', use_toggle_link=False )}
+ %if len ( history.tags ) == 0:
+ none
+ %endif
</div>
- <p></p>
- %endif
-
- %if not datasets:
-
- <div class="infomessagesmall" id="emptyHistoryMessage">
-
- %else:
-
- ## Render requested datasets, ordered from newest to oldest
- %for data in datasets:
- %if data.visible:
- <div class="historyItemContainer visible-right-border" id="historyItemContainer-${data.id}">
- ${render_dataset( data, data.hid, show_deleted_on_refresh = show_deleted, user_owns_dataset=user_owns_history )}
- </div>
- %endif
- %endfor
-
- <div class="infomessagesmall" id="emptyHistoryMessage" style="display:none;">
- %endif
- ${_("Your history is empty. Click 'Get Data' on the left pane to start")}
+ ## Individual tags.
+ <p>
+ <div>
+ Yours:
+ ${render_individual_tagging_element( user=trans.get_user(), tagged_item=history, elt_context='view.mako', use_toggle_link=False )}
</div>
- </div>
-
- <div class="page-meta">
- ## Histories.
- <div><strong>Related Histories</strong></div>
- <p>
- <a href="${h.url_for ( controller='/history', action='list_public' )}">All public histories</a><br>
- <a href="${href_to_user_histories}">Histories owned by ${history.user.username}</a>
-
- ## Tags.
- <div><strong>Tags</strong></div>
- <p>
- ## Community tags.
- <div>
- Community:
- ${render_community_tagging_element( tagged_item=history, tag_click_fn='community_tag_click', use_toggle_link=False )}
- %if len ( history.tags ) == 0:
- none
- %endif
- </div>
- ## Individual tags.
- <p>
- <div>
- Yours:
- ${render_individual_tagging_element( user=trans.get_user(), tagged_item=history, elt_context='view.mako', use_toggle_link=False )}
</div>
</div>
-
</div>
</%def>
diff -r 56efe838b9af -r a7deb5c197ad templates/page/display.mako
--- a/templates/page/display.mako Mon Jan 11 17:04:45 2010 -0500
+++ b/templates/page/display.mako Tue Jan 12 11:37:45 2010 -0500
@@ -151,13 +151,11 @@
function community_tag_click(tag_name, tag_value)
{
// Do nothing until community tags implemented in published pages grid.
- /*
var href = '${h.url_for( controller='/page', action='list_published')}';
href = href + "?f-tags=" + tag_name;
if (tag_value != null && tag_value != "")
href = href + ":" + tag_value;
self.location = href;
- */
}
</script>
</%def>
diff -r 56efe838b9af -r a7deb5c197ad templates/page/editor.mako
--- a/templates/page/editor.mako Mon Jan 11 17:04:45 2010 -0500
+++ b/templates/page/editor.mako Tue Jan 12 11:37:45 2010 -0500
@@ -260,7 +260,12 @@
// Build href from history info.
var href;
if (history_slug != "" && history_user_username != "")
- var href = "/u/" + history_user_username + "/h/" + history_slug;
+ {
+ var href =
+ '${h.url_for( controller='/history', action='display_by_username_and_slug', username='USERNAME', slug='SLUG' )}';
+ href = href.replace('USERNAME', history_user_username);
+ href = href.replace('SLUG', history_slug);
+ }
else
var href = '${h.url_for( controller='/history', action='view' )}?id=' + item_id;
wym.insert("<a href='" + href + "'>History '" + history_name + "'</a>");
diff -r 56efe838b9af -r a7deb5c197ad templates/root/history.mako
--- a/templates/root/history.mako Mon Jan 11 17:04:45 2010 -0500
+++ b/templates/root/history.mako Tue Jan 12 11:37:45 2010 -0500
@@ -260,25 +260,6 @@
count++;
return count;
};
-
- //
- // Function provides text for tagging toggle link.
- //
- var get_toggle_link_text = function(tags)
- {
- var text = "";
- var num_tags = array_length(tags);
- if (num_tags != 0)
- {
- text = num_tags + (num_tags != 1 ? " Tags" : " Tag");
- }
- else
- {
- // No tags.
- text = "Add tags to history";
- }
- return text;
- };
</script>
<style>
@@ -327,7 +308,7 @@
margin-bottom: 0.5em;
}
</style>
- ${render_individual_tagging_element( user=trans.get_user(), tagged_item=history, elt_context='history.mako', get_toggle_link_text_fn='get_toggle_link_text' )}
+ ${render_individual_tagging_element( user=trans.get_user(), tagged_item=history, elt_context='history.mako' )}
%endif
%if not datasets:
diff -r 56efe838b9af -r a7deb5c197ad templates/tagging_common.mako
--- a/templates/tagging_common.mako Mon Jan 11 17:04:45 2010 -0500
+++ b/templates/tagging_common.mako Tue Jan 12 11:37:45 2010 -0500
@@ -20,7 +20,7 @@
%endif
## Render HTML for a list of tags.
-<%def name="render_tagging_element_html(elt_id=None, tags=None, editable=True, use_toggle_link=True, input_size='15', in_form=False)">
+<%def name="render_tagging_element_html(elt_id=None, tags=None, editable=True, use_toggle_link=True, input_size='15', in_form=False, tag_type='individual')">
## Useful attributes.
<%
num_tags = len( tags )
@@ -35,9 +35,13 @@
%endif
>
%if use_toggle_link:
- <a class="toggle-link" href="#">${num_tags} Tags</a>
+ <a class="toggle-link" href="#">${num_tags} Tag${iff( num_tags == 1, "", "s")}</a>
%endif
- <div class="tag-area">
+ <div class="tag-area
+ %if tag_type == 'individual':
+ individual-tags
+ %endif
+ ">
## Build buttons for current tags.
%for tag in tags:
@@ -88,7 +92,7 @@
elt_id = int ( floor ( random()*maxint ) )
community_tags = tag_handler.get_community_tags(trans.sa_session, tagged_item, 10)
%>
- ${self.render_tagging_element_html(elt_id=elt_id, tags=community_tags, use_toggle_link=use_toggle_link, editable=False)}
+ ${self.render_tagging_element_html(elt_id=elt_id, tags=community_tags, use_toggle_link=use_toggle_link, editable=False, tag_type="community")}
## Set up tag click function.
<script type="text/javascript">
diff -r 56efe838b9af -r a7deb5c197ad templates/workflow/display.mako
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/workflow/display.mako Tue Jan 12 11:37:45 2010 -0500
@@ -0,0 +1,195 @@
+<%inherit file="/base_panels.mako"/>
+<%namespace file="/display_common.mako" import="get_history_link" />
+<%namespace file="../tagging_common.mako" import="render_individual_tagging_element, render_community_tagging_element" />
+
+<%! from galaxy.tools.parameters import DataToolParameter %>
+
+<%def name="javascripts()">
+ ${parent.javascripts()}
+ ${h.js( "galaxy.base", "jquery", "json2", "jquery.autocomplete", "autocomplete_tagging" )}
+
+ <script type="text/javascript">
+ //
+ // Handle click on community tag.
+ //
+ function community_tag_click(tag_name, tag_value)
+ {
+ var href = '${h.url_for( controller='/workflow', action='list_public')}';
+ href = href + "?f-tags=" + tag_name;
+ if (tag_value != null && tag_value != "")
+ href = href + ":" + tag_value;
+ self.location = href;
+ }
+ </script>
+</%def>
+
+<%def name="stylesheets()">
+ ${parent.stylesheets()}
+ ${h.css( "workflow", "autocomplete_tagging" )}
+ <style type="text/css">
+ .page-body
+ {
+ padding: 10px;
+ float: left;
+ width: 65%;
+ }
+ .page-meta
+ {
+ float: right;
+ width: 27%;
+ padding: 0.5em;
+ margin: 0.25em;
+ vertical-align: text-top;
+ border: 2px solid #DDDDDD;
+ border-top: 4px solid #DDDDDD;
+ }
+ div.toolForm{
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+ </style>
+ <noscript>
+ <style>
+ .historyItemBody {
+ display: block;
+ }
+ </style>
+ </noscript>
+</%def>
+
+<%def name="init()">
+<%
+ self.has_left_panel=False
+ self.has_right_panel=False
+ self.message_box_visible=False
+%>
+</%def>
+
+<%def name="do_inputs( inputs, values, prefix, step, other_values=None )">
+ %for input_index, input in enumerate( inputs.itervalues() ):
+ %if input.type == "repeat":
+ <div class="repeat-group">
+ <div class="form-title-row"><b>${input.title_plural}</b></div>
+ <% repeat_values = values[input.name] %>
+ %for i in range( len( repeat_values ) ):
+ <div class="repeat-group-item">
+ <% index = repeat_values[i]['__index__'] %>
+ <div class="form-title-row"><b>${input.title} ${i + 1}</b></div>
+ ${do_inputs( input.inputs, repeat_values[ i ], prefix + input.name + "_" + str(index) + "|", step, other_values )}
+
+ </div>
+ %endfor
+ </div>
+ %elif input.type == "conditional":
+ <% group_values = values[input.name] %>
+ <% current_case = group_values['__current_case__'] %>
+ <% new_prefix = prefix + input.name + "|" %>
+ ${row_for_param( input.test_param, group_values[ input.test_param.name ], other_values, prefix, step )}
+ ${do_inputs( input.cases[ current_case ].inputs, group_values, new_prefix, step, other_values )}
+ %else:
+ ${row_for_param( input, values[ input.name ], other_values, prefix, step )}
+ %endif
+ %endfor
+</%def>
+
+<%def name="row_for_param( param, value, other_values, prefix, step )">
+ <% cls = "form-row" %>
+ <div class="${cls}">
+ <label>${param.get_label()}</label>
+ <div>
+ %if isinstance( param, DataToolParameter ):
+ %if ( prefix + param.name ) in step.input_connections_by_name:
+ <%
+ conn = step.input_connections_by_name[ prefix + param.name ]
+ %>
+ Output dataset '${conn.output_name}' from step ${int(conn.output_step.order_index)+1}
+ %else:
+ ## FIXME: Initialize in the controller
+ <%
+ if value is None:
+ value = other_values[ param.name ] = param.get_initial_value( t, other_values )
+ %>
+ ${param.get_html_field( t, value, other_values ).get_html( str(step.id) + "|" + prefix )}
+ %endif
+ %else:
+ ${param.value_to_display_text( value, app )}
+ %endif
+ </div>
+ </div>
+</%def>
+
+<%def name="center_panel()">
+ ## Get URL to other workflows owned by user that owns this workflow.
+ <%
+ ##TODO: is there a better way to create this URL? Can't use 'f-username' as a key b/c it's not a valid identifier.
+ href_to_user_workflows = h.url_for( action='list_public', xxx=workflow.user.username )
+ href_to_user_workflows = href_to_user_workflows.replace( 'xxx', 'f-username' )
+ %>
+
+ <div class="unified-panel-header" unselectable="on">
+ <div class="unified-panel-header-inner">
+ <a href="${h.url_for ( action='list_public' )}">Public Workflows</a> |
+ <a href="${href_to_user_workflows}">${workflow.user.username}</a> | ${workflow.name}
+ </div>
+ </div>
+
+ <div class="unified-panel-body">
+ <div style="overflow: auto; height: 100%;">
+ <div class="page-body">
+ ## Render top links.
+ <div id="top-links" style="padding: 0px 0px 5px 0px">
+ %if workflow.user != trans.get_user():
+ <a href="${h.url_for( action='imp', id=trans.security.encode_id(workflow.id) )}">import and start using workflow</a>
+ %endif
+ </div>
+
+ ## Render Workflow.
+ <h2>${workflow.name}</h2>
+ %for i, step in enumerate( steps ):
+ %if step.type == 'tool' or step.type is None:
+ <% tool = app.toolbox.tools_by_id[step.tool_id] %>
+ <div class="toolForm">
+ <div class="toolFormTitle">Step ${int(step.order_index)+1}: ${tool.name}</div>
+ <div class="toolFormBody">
+ ${do_inputs( tool.inputs, step.state.inputs, "", step )}
+ </div>
+ </div>
+ %else:
+ <% module = step.module %>
+ <div class="toolForm">
+ <div class="toolFormTitle">Step ${int(step.order_index)+1}: ${module.name}</div>
+ <div class="toolFormBody">
+ </div>
+ </div>
+ %endif
+ %endfor
+ </div>
+
+ <div class="page-meta">
+ ## Workflows.
+ <div><strong>Related Workflows</strong></div>
+ <p>
+ <a href="${h.url_for ( action='list_public' )}">All public workflows</a><br>
+ <a href="${href_to_user_workflows}">Workflows owned by ${workflow.user.username}</a>
+
+ ## Tags.
+ <div><strong>Tags</strong></div>
+ <p>
+ ## Community tags.
+ <div>
+ Community:
+ ${render_community_tagging_element( tagged_item=workflow, tag_click_fn='community_tag_click', use_toggle_link=False )}
+ %if len ( workflow.tags ) == 0:
+ none
+ %endif
+ </div>
+ ## Individual tags.
+ <p>
+ <div>
+ Yours:
+ ${render_individual_tagging_element( user=trans.get_user(), tagged_item=workflow, elt_context='view.mako', use_toggle_link=False )}
+ </div>
+ </div>
+ </div>
+ </div>
+</%def>
diff -r 56efe838b9af -r a7deb5c197ad templates/workflow/list_public.mako
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/workflow/list_public.mako Tue Jan 12 11:37:45 2010 -0500
@@ -0,0 +1,23 @@
+<%inherit file="/base_panels.mako"/>
+
+<%def name="init()">
+<%
+ self.has_left_panel=False
+ self.has_right_panel=False
+ self.active_view="page"
+ self.message_box_visible=False
+%>
+</%def>
+
+<%def name="center_panel()">
+
+ ## <iframe name="galaxy_main" id="galaxy_main" frameborder="0" style="position: absolute; width: 100%; height: 100%;" src="${h.url_for( controller="page", action="list" )}"> </iframe>
+
+ <div style="overflow: auto; height: 100%;">
+ <div class="page-container" style="padding: 10px;">
+ ${unicode( grid, 'utf-8' )}
+ </div>
+ </div>
+
+
+</%def>
diff -r 56efe838b9af -r a7deb5c197ad templates/workflow/sharing.mako
--- a/templates/workflow/sharing.mako Mon Jan 11 17:04:45 2010 -0500
+++ b/templates/workflow/sharing.mako Tue Jan 12 11:37:45 2010 -0500
@@ -4,7 +4,14 @@
<p>
%if stored.importable:
+ <p>
+ Anyone can view this workflow by visiting the following URL:
+ <% url = h.url_for( action='display_by_username_and_slug', username=trans.get_user().username, slug=stored.slug, qualified=True ) %>
+ <blockquote>
+ <a href="${url}">${url}</a>
+ </blockquote>
+ <p>
Anyone can import this workflow into their history via the following URL:
<% url = h.url_for( action='imp', id=trans.security.encode_id(stored.id), qualified=True ) %>
<blockquote>
1
0
Hello,
I have a question regarding the job queuing/scheduling in Galaxy,
because although I assured my users that the scheduling is fair (using the "round robin" scheduler), what I'm seeing is not exactly fair (and so users wait a long time for their jobs to run).
I'll try to explain the situation as best as I can, and I'll appreciate any feedback.
The attached diagram shows a situation similar to what I have.
At time "t0", user-A submits a workflow with many steps (the lines represent input-output connections, the numbers are job numbers).
After a while, jobs 1,2,3 are done (green). and jobs 4,5 are running (yellow) - assuming I can run only two jobs at a time.
If I understand correctly, jobs 6-12 are queued (i.e. their input dataset is "ready", so they are ready to run, and put on my local runner queue).
Job 13 is still "new" because its input datasets (11,12,13) are not ready.
At time "t1", (while jobs 4,5 are still running), user-B submits a single job (#14).
If I understand correctly, it will go from "new" to "queued" immediately, because it isn't dependent on any input dataset and is ready to run.
My question is:
Once jobs 4 or 5 are completed, which job will run next ?
If everything is "fair", I'd expect job #14 (from the second user) to run.
But what I think I'm seeing, is that the "queued jobs" queue is actually FIFO, and jobs 6-12 will be run before job 14.
(Job 14 however will run before job 13),
Is the "round-robin" queue refers only to the transition from "new" to "queued" ?
I could be completely wrong about this whole thing, but what I'm experiencing is that user-A submitted 5 workflows in parallel (all look very similar to the attached diagram),
I have 7 runnings jobs (of user-A), 35 queued job from user-A and 2 queued job from user-B, and galaxy consistently chooses to run queued job from user-A instead of user-B (presumably because they were queued before user-B submitted the jobs).
Is there a way to work around this issue ? a different configuration maybe ?
Or, an old request: is it possible to limit the number of jobs-per-user at any single time (i.e. a single user can run 3 jobs at any given time, even if no other users are running jobs and there are 7 workers ready) ?
Thanks for reading so far,
-gordon
3
3
Hello,
A minor UI bug when switching histories (in a long history list):
When clicking on one of the pages links (e.g. "7"), the history list grid is faded out - but only the upper part of it, not the entire list.
It looks like the height of the fadeout region is the region that would have been visible if I hadn't scrolled the screen all the way down (but I have to scroll down to reach the pages links).
See attached image for half faded / half not-faded history.
This happens if I have a long history list (longer than what fits on screen), then scroll all the way down, click on the page link (to switch to another history page) and quickly scroll up (before the page is updated).
Fade out by itself isn't critical, but the non-faded history items are still clickable.
-gordon
1
0
Hello,
Some of my galaxy users are seeing histories without being able to "expand" a dataset (see attached image).
It seems some of the javascript/html code is somehow missing or not executed.
The attached image is from Google Chrom on Windows XP.
The user tried Firefox (on windows) and everything worked fine.
I tried Google Chrom on Linux and it work fine,
So reproducing it is a bit hard - but it does happen more than once.
Any ideas on how to pin-point the problem ?
Is it network related (the connection dropped before completion) ?
thanks,
-gordon
2
1
Dear list,
I'm a employee for the The duch bioinformatics center (NBIC). We
decided to set up national Galaxy server with a focus on Next Generation
Sequences data. For this we need to acquire some hardware and services.
I would like have a idea what kind of hardware is necessary to operate
smoothly . We expect a the first month +- 30 (serious) users and will
grow to 100 user in 3 months.
I would like to get a rough estimate of:
-number of cpu
-memory
-hard drive space needed
-network usage
etc.
I known it it hard to predict what kind of hardware I need, because it
depends on the user input. However I would like to get a indication.
Kind Regards,
Maarten Kooyman
2
1
Goodday,
I am experimenting with the Galaxy tool and adding a module itself is no problem. Furthermore there are a lot of datatypes supported (FASTA etc.), but it seems NetCDF is not yet 'supported'. So I found out that you can add your own datatype ( http://bitbucket.org/galaxy/galaxy-central/wiki/AddingDatatypes ), but before doing that, I was wondering how to support reading the NetCDF datatype - especially for mass spectrometry data?
Or is there another datatype which I can use to read mass spectrometry NetCDF's in Galaxy?
Thanks in advance and with kind regards,
Tjeerd Abma
Scientific programmer/Bioinformatician
UMCU Metabolomics Centre
Dept. Metabolic and Endocrine Diseases
Wilhelmina Childrens Hospital, UMC Utrecht
T: 088-7554330
E: t.w.abma(a)umcutrecht.nl
http://www.metabolomics-utrecht.nl
------------------------------------------------------------------------------
De informatie opgenomen in dit bericht kan vertrouwelijk zijn en is
uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onterecht
ontvangt, wordt u verzocht de inhoud niet te gebruiken en de afzender direct
te informeren door het bericht te retourneren. Het Universitair Medisch
Centrum Utrecht is een publiekrechtelijke rechtspersoon in de zin van de W.H.W.
(Wet Hoger Onderwijs en Wetenschappelijk Onderzoek) en staat geregistreerd bij
de Kamer van Koophandel voor Midden-Nederland onder nr. 30244197.
Denk s.v.p aan het milieu voor u deze e-mail afdrukt.
------------------------------------------------------------------------------
This message may contain confidential information and is intended exclusively
for the addressee. If you receive this message unintentionally, please do not
use the contents but notify the sender immediately by return e-mail. University
Medical Center Utrecht is a legal person by public law and is registered at
the Chamber of Commerce for Midden-Nederland under no. 30244197.
Please consider the environment before printing this e-mail.
2
1