changeset 7:8accf8976cf7

Uploaded
author eduardo
date Mon, 03 Aug 2015 05:36:36 -0400
parents 18b04f0fb939
children a6bcb0f8f38e
files url2bowtie/download_align.xml url2bowtie/tool-data/bowtie2_indices.loc.sample url2bowtie/tool-data/test-data2 url2bowtie/tool_data_table_conf.xml.sample
diffstat 4 files changed, 1067 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/url2bowtie/download_align.xml	Mon Aug 03 05:36:36 2015 -0400
@@ -0,0 +1,53 @@
+<tool id="download_align" name="Download and align" version="0.0.1">
+  <description> Downloads fastq.gz, unzips, trims with cutadapt and alignes to reference</description>
+  <requirements>
+      <requirement type="package" version="1.6">cutadapt</requirement>
+      <requirement type="package" version="2.2.4">bowtie2</requirement>
+      <requirement type="package" version="0.1.19">samtools</requirement>
+  </requirements>
+  <command>
+  #set index_path = ''
+  #if str($reference_genome.source) == "history":
+    echo \${PATH} &amp;&amp; bowtie2-build "$reference_genome.own_file" genome &amp;&amp;
+    ln -s "$reference_genome.own_file" genome.fa &amp;&amp;
+    #set index_path = 'genome'
+  #else:
+    #set index_path = $reference_genome.index.fields.path
+  #end if
+  wget -O - $file | gunzip -c | cutadapt   -q 20 - | bowtie2  -q 
+  ## index file path
+  -x $index_path 
+  -U - | samtools view -b - > $output
+  </command>
+  <stdio>
+    <exit_code range="1:" level="fatal" description="Tool exception" />
+  </stdio>
+  <inputs>
+    <param format="text" name="file" type="text" label="URL for fastq.gz"/>
+    <conditional name="reference_genome">
+          <param name="source" 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. See `Indexes` section of help below">
+            <option value="indexed">Use a built-in genome index</option>
+            <option value="history">Use a genome from the history and build index</option>
+          </param>
+          <when value="indexed">
+            <param name="index" type="select" label="Select reference genome" help="If your genome of interest is not listed, contact the Galaxy team">
+              <options from_data_table="bowtie2_indexes">
+                <filter type="sort_by" column="2"/>
+                <validator type="no_options" message="No indexes are available for the selected input dataset"/>
+              </options>
+            </param>
+          </when>
+          <when value="history">
+            <param name="own_file" type="data" format="fasta" metadata_name="dbkey" label="Select reference genome" />
+          </when>
+    </conditional>
+  </inputs> 
+  <outputs> 
+      <data format="bam" name="output" label="${tool.name} on ${on_string}: aligned reads (sorted BAM)" />
+  </outputs>
+  <help>
+    This tool extracts reads from sra, runs cutdapt and bowtie and outputs a bam file. 
+
+    Contact Eduardo Alves at eduardoalves@abdn.ac.uk for support and bug reports.
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/url2bowtie/tool-data/bowtie2_indices.loc.sample	Mon Aug 03 05:36:36 2015 -0400
@@ -0,0 +1,37 @@
+# bowtie2_indices.loc.sample
+# This is a *.loc.sample file distributed with Galaxy that enables tools
+# to use a directory of indexed data files. This one is for Bowtie2 and Tophat2.
+# See the wiki: http://wiki.galaxyproject.org/Admin/NGS%20Local%20Setup
+# First create these data files and save them in your own data directory structure.
+# Then, create a bowtie_indices.loc file to use those indexes with tools.
+# Copy this file, save it with the same name (minus the .sample), 
+# follow the format examples, and store the result in this directory.
+# The file should include an one line entry for each index set.
+# The path points to the "basename" for the set, not a specific file.
+# It has four text columns seperated by TABS.
+#
+# <unique_build_id>	<dbkey>	<display_name>	<file_base_path>
+#
+# So, for example, if you had hg18 indexes stored in:
+#
+#    /depot/data2/galaxy/hg19/bowtie2/
+#
+# containing hg19 genome and hg19.*.bt2 files, such as:
+#    -rw-rw-r-- 1 james   james   914M Feb 10 18:56 hg19canon.fa
+#    -rw-rw-r-- 1 james   james   914M Feb 10 18:56 hg19canon.1.bt2
+#    -rw-rw-r-- 1 james   james   683M Feb 10 18:56 hg19canon.2.bt2
+#    -rw-rw-r-- 1 james   james   3.3K Feb 10 16:54 hg19canon.3.bt2
+#    -rw-rw-r-- 1 james   james   683M Feb 10 16:54 hg19canon.4.bt2
+#    -rw-rw-r-- 1 james   james   914M Feb 10 20:45 hg19canon.rev.1.bt2
+#    -rw-rw-r-- 1 james   james   683M Feb 10 20:45 hg19canon.rev.2.bt2
+#
+# then the bowtie2_indices.loc entry could look like this:
+#
+#hg19	hg19	Human (hg19)	/depot/data2/galaxy/hg19/bowtie2/hg19canon
+#
+#More examples:
+#
+#mm10	mm10	Mouse (mm10)	/depot/data2/galaxy/mm10/bowtie2/mm10
+#dm3	dm3		D. melanogaster (dm3)	/depot/data2/galaxy/mm10/bowtie2/dm3
+#
+#
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/url2bowtie/tool-data/test-data2	Mon Aug 03 05:36:36 2015 -0400
@@ -0,0 +1,969 @@
+
+
+
+<!DOCTYPE html>
+<html lang="en" class="">
+  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile#">
+    <meta charset='utf-8'>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta http-equiv="Content-Language" content="en">
+    <meta name="viewport" content="width=1020">
+    
+    
+    <title>tools-devteam/tools/bowtie2/test-data at master · galaxyproject/tools-devteam</title>
+    <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
+    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
+    <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png">
+    <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png">
+    <meta property="fb:app_id" content="1401488693436528">
+
+      <meta content="@github" name="twitter:site" /><meta content="summary" name="twitter:card" /><meta content="galaxyproject/tools-devteam" name="twitter:title" /><meta content="tools-devteam - Contains a set of Galaxy Tools mostly written by the Galaxy Team." name="twitter:description" /><meta content="https://avatars2.githubusercontent.com/u/7937847?v=3&amp;s=400" name="twitter:image:src" />
+      <meta content="GitHub" property="og:site_name" /><meta content="object" property="og:type" /><meta content="https://avatars2.githubusercontent.com/u/7937847?v=3&amp;s=400" property="og:image" /><meta content="galaxyproject/tools-devteam" property="og:title" /><meta content="https://github.com/galaxyproject/tools-devteam" property="og:url" /><meta content="tools-devteam - Contains a set of Galaxy Tools mostly written by the Galaxy Team." property="og:description" />
+      <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
+    <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
+    <link rel="assets" href="https://assets-cdn.github.com/">
+    <link rel="web-socket" href="wss://live.github.com/_sockets/OTc3Njk3Nzo0M2VmMGIwODU0ZjU3ZWUxZThhZWIwMzY1MjMxOTE1ODo4ZTQ0Y2E0ODgwZDM3MTJiNWRhNWVlOTUyOGM5ODNlNTZhZjQxMDQ5MDYwYzU0ZGY5NTY5Mzc1YTJkOTNkNjYw--f73b909c7c1527a9b16c59ffb4ec09a14213234b">
+    <meta name="pjax-timeout" content="1000">
+    <link rel="sudo-modal" href="/sessions/sudo_modal">
+
+    <meta name="msapplication-TileImage" content="/windows-tile.png">
+    <meta name="msapplication-TileColor" content="#ffffff">
+    <meta name="selected-link" value="repo_source" data-pjax-transient>
+
+        <meta name="google-analytics" content="UA-3769691-2">
+
+    <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="8B854312:44D5:94885B4:55BF2BA5" name="octolytics-dimension-request_id" /><meta content="9776977" name="octolytics-actor-id" /><meta content="Eduardo-Alves" name="octolytics-actor-login" /><meta content="b1558c41543f659c70990998ad85b957c250a8165ce75605b88cc78511c02670" name="octolytics-actor-hash" />
+    
+    <meta content="Rails, view, files#disambiguate" data-pjax-transient="true" name="analytics-event" />
+    <meta class="js-ga-set" name="dimension1" content="Logged In">
+      <meta class="js-ga-set" name="dimension4" content="Current repo nav">
+    <meta name="is-dotcom" content="true">
+        <meta name="hostname" content="github.com">
+    <meta name="user-login" content="Eduardo-Alves">
+
+      <link rel="icon" sizes="any" mask href="https://assets-cdn.github.com/pinned-octocat.svg">
+      <meta name="theme-color" content="#4078c0">
+      <link rel="icon" type="image/x-icon" href="https://assets-cdn.github.com/favicon.ico">
+
+    <!-- </textarea> --><!-- '"` --><meta content="authenticity_token" name="csrf-param" />
+<meta content="sIPcOPJvZdTd08u39MkUQ/PUyKwsCvX894Dnj44snbI93uW0BUf/KxzFCKGGP95A7rkJXNTeIYkid/7aVVwPVA==" name="csrf-token" />
+    
+
+    <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/github/index-c7126cd67871e693a9f863b7a0e99879ca39079b15a8784f8b543c03bf14ad72.css" media="all" rel="stylesheet" />
+    <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/github2/index-87247f16e6450ef54cb0eda3f8f1484e33a3f18c7a7d3df1f76f67cba36a8d6d.css" media="all" rel="stylesheet" />
+    
+    
+
+
+    <meta http-equiv="x-pjax-version" content="f8fdf7d6713452aadb5c847c2e94f51b">
+
+      
+  <meta name="description" content="tools-devteam - Contains a set of Galaxy Tools mostly written by the Galaxy Team.">
+  <meta name="go-import" content="github.com/galaxyproject/tools-devteam git https://github.com/galaxyproject/tools-devteam.git">
+
+  <meta content="7937847" name="octolytics-dimension-user_id" /><meta content="galaxyproject" name="octolytics-dimension-user_login" /><meta content="24609401" name="octolytics-dimension-repository_id" /><meta content="galaxyproject/tools-devteam" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="24609401" name="octolytics-dimension-repository_network_root_id" /><meta content="galaxyproject/tools-devteam" name="octolytics-dimension-repository_network_root_nwo" />
+  <link href="https://github.com/galaxyproject/tools-devteam/commits/master.atom" rel="alternate" title="Recent Commits to tools-devteam:master" type="application/atom+xml">
+
+  </head>
+
+
+  <body class="logged_in  env-production linux vis-public">
+    <a href="#start-of-content" tabindex="1" class="accessibility-aid js-skip-to-content">Skip to content</a>
+    <div class="wrapper">
+      
+      
+      
+
+
+
+        <div class="header header-logged-in true" role="banner">
+  <div class="container clearfix">
+
+    <a class="header-logo-invertocat" href="https://github.com/" data-hotkey="g d" aria-label="Homepage" data-ga-click="Header, go to dashboard, icon:logo">
+  <span class="mega-octicon octicon-mark-github"></span>
+</a>
+
+
+      <div class="site-search repo-scope js-site-search" role="search">
+          <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/galaxyproject/tools-devteam/search" class="js-site-search-form" data-global-search-url="/search" data-repo-search-url="/galaxyproject/tools-devteam/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
+  <label class="js-chromeless-input-container form-control">
+    <div class="scope-badge">This repository</div>
+    <input type="text"
+      class="js-site-search-focus js-site-search-field is-clearable chromeless-input"
+      data-hotkey="s"
+      name="q"
+      placeholder="Search"
+      aria-label="Search this repository"
+      data-global-scope-placeholder="Search GitHub"
+      data-repo-scope-placeholder="Search"
+      tabindex="1"
+      autocapitalize="off">
+  </label>
+</form>
+      </div>
+
+      <ul class="header-nav left" role="navigation">
+        <li class="header-nav-item">
+          <a href="/pulls" class="js-selected-navigation-item header-nav-link" data-ga-click="Header, click, Nav menu - item:pulls context:user" data-hotkey="g p" data-selected-links="/pulls /pulls/assigned /pulls/mentioned /pulls">
+            Pull requests
+</a>        </li>
+        <li class="header-nav-item">
+          <a href="/issues" class="js-selected-navigation-item header-nav-link" data-ga-click="Header, click, Nav menu - item:issues context:user" data-hotkey="g i" data-selected-links="/issues /issues/assigned /issues/mentioned /issues">
+            Issues
+</a>        </li>
+          <li class="header-nav-item">
+            <a class="header-nav-link" href="https://gist.github.com/" data-ga-click="Header, go to gist, text:gist">Gist</a>
+          </li>
+      </ul>
+
+    
+<ul class="header-nav user-nav right" id="user-links">
+  <li class="header-nav-item">
+      <span class="js-socket-channel js-updatable-content"
+        data-channel="notification-changed:Eduardo-Alves"
+        data-url="/notifications/header">
+      <a href="/notifications" aria-label="You have no unread notifications" class="header-nav-link notification-indicator tooltipped tooltipped-s" data-ga-click="Header, go to notifications, icon:read" data-hotkey="g n">
+          <span class="mail-status all-read"></span>
+          <span class="octicon octicon-inbox"></span>
+</a>  </span>
+
+  </li>
+
+  <li class="header-nav-item dropdown js-menu-container">
+    <a class="header-nav-link tooltipped tooltipped-s js-menu-target" href="/new"
+       aria-label="Create new…"
+       data-ga-click="Header, create new, icon:add">
+      <span class="octicon octicon-plus left"></span>
+      <span class="dropdown-caret"></span>
+    </a>
+
+    <div class="dropdown-menu-content js-menu-content">
+      <ul class="dropdown-menu dropdown-menu-sw">
+        
+<a class="dropdown-item" href="/new" data-ga-click="Header, create new repository">
+  New repository
+</a>
+
+
+  <a class="dropdown-item" href="/organizations/new" data-ga-click="Header, create new organization">
+    New organization
+  </a>
+
+
+
+  <div class="dropdown-divider"></div>
+  <div class="dropdown-header">
+    <span title="galaxyproject/tools-devteam">This repository</span>
+  </div>
+    <a class="dropdown-item" href="/galaxyproject/tools-devteam/issues/new" data-ga-click="Header, create new issue">
+      New issue
+    </a>
+
+      </ul>
+    </div>
+  </li>
+
+  <li class="header-nav-item dropdown js-menu-container">
+    <a class="header-nav-link name tooltipped tooltipped-s js-menu-target" href="/Eduardo-Alves"
+       aria-label="View profile and more"
+       data-ga-click="Header, show menu, icon:avatar">
+      <img alt="@Eduardo-Alves" class="avatar" height="20" src="https://avatars1.githubusercontent.com/u/9776977?v=3&amp;s=40" width="20" />
+      <span class="dropdown-caret"></span>
+    </a>
+
+    <div class="dropdown-menu-content js-menu-content">
+      <div class="dropdown-menu dropdown-menu-sw">
+        <div class="dropdown-header header-nav-current-user css-truncate">
+          Signed in as <strong class="css-truncate-target">Eduardo-Alves</strong>
+        </div>
+        <div class="dropdown-divider"></div>
+
+        <a class="dropdown-item" href="/Eduardo-Alves" data-ga-click="Header, go to profile, text:your profile">
+          Your profile
+        </a>
+        <a class="dropdown-item" href="/stars" data-ga-click="Header, go to starred repos, text:your stars">
+          Your stars
+        </a>
+        <a class="dropdown-item" href="/explore" data-ga-click="Header, go to explore, text:explore">
+          Explore
+        </a>
+        <a class="dropdown-item" href="https://help.github.com" data-ga-click="Header, go to help, text:help">
+          Help
+        </a>
+        <div class="dropdown-divider"></div>
+
+        <a class="dropdown-item" href="/settings/profile" data-ga-click="Header, go to settings, icon:settings">
+          Settings
+        </a>
+
+        <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/logout" class="logout-form" data-form-nonce="1a2e7c5c235fe6fddd1652a8fbf52781a0304796" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="fMiuMnZEhOyhrkDmQMsMGi4+rgqhqa/5AyAG+2bEQj/sNUfzQZ3FUFyIjO15HQuxl0IIXgOxpQ+/rGZ4GamDuA==" /></div>
+          <button class="dropdown-item dropdown-signout" data-ga-click="Header, sign out, icon:logout">
+            Sign out
+          </button>
+</form>      </div>
+    </div>
+  </li>
+</ul>
+
+
+    
+  </div>
+</div>
+
+        
+
+        
+
+
+      <div id="start-of-content" class="accessibility-aid"></div>
+          <div class="site" itemscope itemtype="http://schema.org/WebPage">
+    <div id="js-flash-container">
+      
+    </div>
+    <div class="pagehead repohead instapaper_ignore readability-menu ">
+      <div class="container">
+
+        <div class="clearfix">
+          
+<ul class="pagehead-actions">
+
+  <li>
+      <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/notifications/subscribe" class="js-social-container" data-autosubmit="true" data-form-nonce="1a2e7c5c235fe6fddd1652a8fbf52781a0304796" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="DGdw+xCuQFxtIYNwCNm6pBV1JG27b3WKuUifr1dYxp0y2kRvMyTGOVGs0z/mJP2iVSvhaoCMK/7UQID8gHh2Bg==" /></div>    <input id="repository_id" name="repository_id" type="hidden" value="24609401" />
+
+      <div class="select-menu js-menu-container js-select-menu">
+        <a href="/galaxyproject/tools-devteam/subscription"
+          class="btn btn-sm btn-with-count select-menu-button js-menu-target" role="button" tabindex="0" aria-haspopup="true"
+          data-ga-click="Repository, click Watch settings, action:files#disambiguate">
+          <span class="js-select-button">
+            <span class="octicon octicon-eye"></span>
+            Watch
+          </span>
+        </a>
+        <a class="social-count js-social-count" href="/galaxyproject/tools-devteam/watchers">
+          24
+        </a>
+
+        <div class="select-menu-modal-holder">
+          <div class="select-menu-modal subscription-menu-modal js-menu-content" aria-hidden="true">
+            <div class="select-menu-header">
+              <span class="select-menu-title">Notifications</span>
+              <span class="octicon octicon-x js-menu-close" role="button" aria-label="Close"></span>
+            </div>
+
+            <div class="select-menu-list js-navigation-container" role="menu">
+
+              <div class="select-menu-item js-navigation-item selected" role="menuitem" tabindex="0">
+                <span class="select-menu-item-icon octicon octicon-check"></span>
+                <div class="select-menu-item-text">
+                  <input checked="checked" id="do_included" name="do" type="radio" value="included" />
+                  <span class="select-menu-item-heading">Not watching</span>
+                  <span class="description">Be notified when participating or @mentioned.</span>
+                  <span class="js-select-button-text hidden-select-button-text">
+                    <span class="octicon octicon-eye"></span>
+                    Watch
+                  </span>
+                </div>
+              </div>
+
+              <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0">
+                <span class="select-menu-item-icon octicon octicon octicon-check"></span>
+                <div class="select-menu-item-text">
+                  <input id="do_subscribed" name="do" type="radio" value="subscribed" />
+                  <span class="select-menu-item-heading">Watching</span>
+                  <span class="description">Be notified of all conversations.</span>
+                  <span class="js-select-button-text hidden-select-button-text">
+                    <span class="octicon octicon-eye"></span>
+                    Unwatch
+                  </span>
+                </div>
+              </div>
+
+              <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0">
+                <span class="select-menu-item-icon octicon octicon-check"></span>
+                <div class="select-menu-item-text">
+                  <input id="do_ignore" name="do" type="radio" value="ignore" />
+                  <span class="select-menu-item-heading">Ignoring</span>
+                  <span class="description">Never be notified.</span>
+                  <span class="js-select-button-text hidden-select-button-text">
+                    <span class="octicon octicon-mute"></span>
+                    Stop ignoring
+                  </span>
+                </div>
+              </div>
+
+            </div>
+
+          </div>
+        </div>
+      </div>
+</form>
+  </li>
+
+  <li>
+    
+  <div class="js-toggler-container js-social-container starring-container ">
+
+    <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/galaxyproject/tools-devteam/unstar" class="js-toggler-form starred js-unstar-button" data-form-nonce="1a2e7c5c235fe6fddd1652a8fbf52781a0304796" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="Ht42QwygpPl/X73KcFLmQCxxcdx/1y0l14CZTEHW2Vq26NXTPZeJzB75rLW1E8MCfjNx8kM/gtL7Bj++i42Hqw==" /></div>
+      <button
+        class="btn btn-sm btn-with-count js-toggler-target"
+        aria-label="Unstar this repository" title="Unstar galaxyproject/tools-devteam"
+        data-ga-click="Repository, click unstar button, action:files#disambiguate; text:Unstar">
+        <span class="octicon octicon-star"></span>
+        Unstar
+      </button>
+        <a class="social-count js-social-count" href="/galaxyproject/tools-devteam/stargazers">
+          19
+        </a>
+</form>
+    <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/galaxyproject/tools-devteam/star" class="js-toggler-form unstarred js-star-button" data-form-nonce="1a2e7c5c235fe6fddd1652a8fbf52781a0304796" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="6+bTm7HvK1uJumzv5UnNLmaxSsU8iay+YbSTHv1POclPVy0/pZ8dGEFa6KSydr5IODuKFDPDUWfT1CVZohJWbg==" /></div>
+      <button
+        class="btn btn-sm btn-with-count js-toggler-target"
+        aria-label="Star this repository" title="Star galaxyproject/tools-devteam"
+        data-ga-click="Repository, click star button, action:files#disambiguate; text:Star">
+        <span class="octicon octicon-star"></span>
+        Star
+      </button>
+        <a class="social-count js-social-count" href="/galaxyproject/tools-devteam/stargazers">
+          19
+        </a>
+</form>  </div>
+
+  </li>
+
+        <li>
+          <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/galaxyproject/tools-devteam/fork" data-form-nonce="1a2e7c5c235fe6fddd1652a8fbf52781a0304796" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="H1FuVDtgFQPJa4u54gOwTwCDWCBI04EQxSKX0K0kKthHk+HCt7jO65YZ06gha5KaohunsXkE+Fi0GqqEXx3ruA==" /></div>
+            <button
+                type="submit"
+                class="btn btn-sm btn-with-count"
+                data-ga-click="Repository, show fork modal, action:files#disambiguate; text:Fork"
+                title="Fork your own copy of galaxyproject/tools-devteam to your account"
+                aria-label="Fork your own copy of galaxyproject/tools-devteam to your account">
+              <span class="octicon octicon-repo-forked"></span>
+              Fork
+            </button>
+            <a href="/galaxyproject/tools-devteam/network" class="social-count">32</a>
+</form>        </li>
+
+</ul>
+
+          <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public ">
+            <span class="mega-octicon octicon-repo"></span>
+            <span class="author"><a href="/galaxyproject" class="url fn" itemprop="url" rel="author"><span itemprop="title">galaxyproject</span></a></span><!--
+         --><span class="path-divider">/</span><!--
+         --><strong><a href="/galaxyproject/tools-devteam" data-pjax="#js-repo-pjax-container">tools-devteam</a></strong>
+
+            <span class="page-context-loader">
+              <img alt="" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+            </span>
+
+          </h1>
+        </div>
+
+      </div>
+    </div>
+
+      <div class="container">
+        <div class="repository-with-sidebar repo-container new-discussion-timeline ">
+          <div class="repository-sidebar clearfix">
+              
+
+<nav class="sunken-menu repo-nav js-repo-nav js-sidenav-container-pjax js-octicon-loaders"
+     role="navigation"
+     data-pjax="#js-repo-pjax-container"
+     data-issue-count-url="/galaxyproject/tools-devteam/issues/counts">
+  <ul class="sunken-menu-group">
+    <li class="tooltipped tooltipped-w" aria-label="Code">
+      <a href="/galaxyproject/tools-devteam" aria-label="Code" aria-selected="true" class="js-selected-navigation-item selected sunken-menu-item" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches /galaxyproject/tools-devteam">
+        <span class="octicon octicon-code"></span> <span class="full-word">Code</span>
+        <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a>    </li>
+
+      <li class="tooltipped tooltipped-w" aria-label="Issues">
+        <a href="/galaxyproject/tools-devteam/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item" data-hotkey="g i" data-selected-links="repo_issues repo_labels repo_milestones /galaxyproject/tools-devteam/issues">
+          <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span>
+          <span class="js-issue-replace-counter"></span>
+          <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a>      </li>
+
+    <li class="tooltipped tooltipped-w" aria-label="Pull requests">
+      <a href="/galaxyproject/tools-devteam/pulls" aria-label="Pull requests" class="js-selected-navigation-item sunken-menu-item" data-hotkey="g p" data-selected-links="repo_pulls /galaxyproject/tools-devteam/pulls">
+          <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull requests</span>
+          <span class="js-pull-replace-counter"></span>
+          <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a>    </li>
+
+      <li class="tooltipped tooltipped-w" aria-label="Wiki">
+        <a href="/galaxyproject/tools-devteam/wiki" aria-label="Wiki" class="js-selected-navigation-item sunken-menu-item" data-hotkey="g w" data-selected-links="repo_wiki /galaxyproject/tools-devteam/wiki">
+          <span class="octicon octicon-book"></span> <span class="full-word">Wiki</span>
+          <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a>      </li>
+  </ul>
+  <div class="sunken-menu-separator"></div>
+  <ul class="sunken-menu-group">
+
+    <li class="tooltipped tooltipped-w" aria-label="Pulse">
+      <a href="/galaxyproject/tools-devteam/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-selected-links="pulse /galaxyproject/tools-devteam/pulse">
+        <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span>
+        <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a>    </li>
+
+    <li class="tooltipped tooltipped-w" aria-label="Graphs">
+      <a href="/galaxyproject/tools-devteam/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-selected-links="repo_graphs repo_contributors /galaxyproject/tools-devteam/graphs">
+        <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span>
+        <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a>    </li>
+  </ul>
+
+
+</nav>
+
+                <div class="only-with-full-nav">
+                    
+<div class="js-clone-url clone-url open"
+  data-protocol-type="http">
+  <h3><span class="text-emphasized">HTTPS</span> clone URL</h3>
+  <div class="input-group js-zeroclipboard-container">
+    <input type="text" class="input-mini input-monospace js-url-field js-zeroclipboard-target"
+           value="https://github.com/galaxyproject/tools-devteam.git" readonly="readonly" aria-label="HTTPS clone URL">
+    <span class="input-group-button">
+      <button aria-label="Copy to clipboard" class="js-zeroclipboard btn btn-sm zeroclipboard-button tooltipped tooltipped-s" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button>
+    </span>
+  </div>
+</div>
+
+  
+<div class="js-clone-url clone-url "
+  data-protocol-type="ssh">
+  <h3><span class="text-emphasized">SSH</span> clone URL</h3>
+  <div class="input-group js-zeroclipboard-container">
+    <input type="text" class="input-mini input-monospace js-url-field js-zeroclipboard-target"
+           value="git@github.com:galaxyproject/tools-devteam.git" readonly="readonly" aria-label="SSH clone URL">
+    <span class="input-group-button">
+      <button aria-label="Copy to clipboard" class="js-zeroclipboard btn btn-sm zeroclipboard-button tooltipped tooltipped-s" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button>
+    </span>
+  </div>
+</div>
+
+  
+<div class="js-clone-url clone-url "
+  data-protocol-type="subversion">
+  <h3><span class="text-emphasized">Subversion</span> checkout URL</h3>
+  <div class="input-group js-zeroclipboard-container">
+    <input type="text" class="input-mini input-monospace js-url-field js-zeroclipboard-target"
+           value="https://github.com/galaxyproject/tools-devteam" readonly="readonly" aria-label="Subversion checkout URL">
+    <span class="input-group-button">
+      <button aria-label="Copy to clipboard" class="js-zeroclipboard btn btn-sm zeroclipboard-button tooltipped tooltipped-s" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button>
+    </span>
+  </div>
+</div>
+
+
+
+  <div class="clone-options">You can clone with
+    <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/users/set_protocol?protocol_selector=http&amp;protocol_type=clone" class="inline-form js-clone-selector-form is-enabled" data-form-nonce="1a2e7c5c235fe6fddd1652a8fbf52781a0304796" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="p0VQsIljGBrHndcjPpG9Dpq4dU5QLFyPkE10kEIE2Bktu6AqKJYq5czMBGsNq9+NATbCDeeRGSQunprJjDO//w==" /></div><button class="btn-link js-clone-selector" data-protocol="http" type="submit">HTTPS</button></form>, <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/users/set_protocol?protocol_selector=ssh&amp;protocol_type=clone" class="inline-form js-clone-selector-form is-enabled" data-form-nonce="1a2e7c5c235fe6fddd1652a8fbf52781a0304796" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="y1gtOi4F0/sEcx8I6AzpiNaNbqfOyhYdpAnwK8y0D1WSZtbyxL7EXbfpe/9ZrKzKr8StSTFzsivAM2dIgTpcfg==" /></div><button class="btn-link js-clone-selector" data-protocol="ssh" type="submit">SSH</button></form>, or <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/users/set_protocol?protocol_selector=subversion&amp;protocol_type=clone" class="inline-form js-clone-selector-form is-enabled" data-form-nonce="1a2e7c5c235fe6fddd1652a8fbf52781a0304796" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="5gZ3Tjopo59VHlYso40Bnv7gWAcX9rxMsdmVeuNVKJl+6c/ihs0Wa4/t4IjSYbaRGqAKez0tmMfsVleU3w95KA==" /></div><button class="btn-link js-clone-selector" data-protocol="subversion" type="submit">Subversion</button></form>.
+    <a href="https://help.github.com/articles/which-remote-url-should-i-use" class="help tooltipped tooltipped-n" aria-label="Get help on which URL is right for you.">
+      <span class="octicon octicon-question"></span>
+    </a>
+  </div>
+
+                  <a href="/galaxyproject/tools-devteam/archive/master.zip"
+                     class="btn btn-sm sidebar-button"
+                     aria-label="Download the contents of galaxyproject/tools-devteam as a zip file"
+                     title="Download the contents of galaxyproject/tools-devteam as a zip file"
+                     rel="nofollow">
+                    <span class="octicon octicon-cloud-download"></span>
+                    Download ZIP
+                  </a>
+                </div>
+          </div>
+          <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container>
+
+            
+  <div class="file-navigation">
+    
+<div class="select-menu js-menu-container js-select-menu left">
+  <span class="btn btn-sm select-menu-button js-menu-target css-truncate" data-hotkey="w"
+    data-ref="master"
+    title="master"
+    role="button" aria-label="Switch branches or tags" tabindex="0" aria-haspopup="true">
+    <i>Branch:</i>
+    <span class="js-select-button css-truncate-target">master</span>
+  </span>
+
+  <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax aria-hidden="true">
+
+    <div class="select-menu-modal">
+      <div class="select-menu-header">
+        <span class="select-menu-title">Switch branches/tags</span>
+        <span class="octicon octicon-x js-menu-close" role="button" aria-label="Close"></span>
+      </div>
+
+      <div class="select-menu-filters">
+        <div class="select-menu-text-filter">
+          <input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
+        </div>
+        <div class="select-menu-tabs">
+          <ul>
+            <li class="select-menu-tab">
+              <a href="#" data-tab-filter="branches" data-filter-placeholder="Filter branches/tags" class="js-select-menu-tab" role="tab">Branches</a>
+            </li>
+            <li class="select-menu-tab">
+              <a href="#" data-tab-filter="tags" data-filter-placeholder="Find a tag…" class="js-select-menu-tab" role="tab">Tags</a>
+            </li>
+          </ul>
+        </div>
+      </div>
+
+      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches" role="menu">
+
+        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
+
+
+            <a class="select-menu-item js-navigation-item js-navigation-open "
+               href="/galaxyproject/tools-devteam/tree/bamtools/tools/bowtie2/test-data"
+               data-name="bamtools"
+               data-skip-pjax="true"
+               rel="nofollow">
+              <span class="select-menu-item-icon octicon octicon-check"></span>
+              <span class="select-menu-item-text css-truncate-target" title="bamtools">
+                bamtools
+              </span>
+            </a>
+            <a class="select-menu-item js-navigation-item js-navigation-open "
+               href="/galaxyproject/tools-devteam/tree/bamtools_images/tools/bowtie2/test-data"
+               data-name="bamtools_images"
+               data-skip-pjax="true"
+               rel="nofollow">
+              <span class="select-menu-item-icon octicon octicon-check"></span>
+              <span class="select-menu-item-text css-truncate-target" title="bamtools_images">
+                bamtools_images
+              </span>
+            </a>
+            <a class="select-menu-item js-navigation-item js-navigation-open "
+               href="/galaxyproject/tools-devteam/tree/blankenberg-dm-samtools-fix-1/tools/bowtie2/test-data"
+               data-name="blankenberg-dm-samtools-fix-1"
+               data-skip-pjax="true"
+               rel="nofollow">
+              <span class="select-menu-item-icon octicon octicon-check"></span>
+              <span class="select-menu-item-text css-truncate-target" title="blankenberg-dm-samtools-fix-1">
+                blankenberg-dm-samtools-fix-1
+              </span>
+            </a>
+            <a class="select-menu-item js-navigation-item js-navigation-open "
+               href="/galaxyproject/tools-devteam/tree/hisat/tools/bowtie2/test-data"
+               data-name="hisat"
+               data-skip-pjax="true"
+               rel="nofollow">
+              <span class="select-menu-item-icon octicon octicon-check"></span>
+              <span class="select-menu-item-text css-truncate-target" title="hisat">
+                hisat
+              </span>
+            </a>
+            <a class="select-menu-item js-navigation-item js-navigation-open "
+               href="/galaxyproject/tools-devteam/tree/libgd-export/tools/bowtie2/test-data"
+               data-name="libgd-export"
+               data-skip-pjax="true"
+               rel="nofollow">
+              <span class="select-menu-item-icon octicon octicon-check"></span>
+              <span class="select-menu-item-text css-truncate-target" title="libgd-export">
+                libgd-export
+              </span>
+            </a>
+            <a class="select-menu-item js-navigation-item js-navigation-open selected"
+               href="/galaxyproject/tools-devteam/tree/master/tools/bowtie2/test-data"
+               data-name="master"
+               data-skip-pjax="true"
+               rel="nofollow">
+              <span class="select-menu-item-icon octicon octicon-check"></span>
+              <span class="select-menu-item-text css-truncate-target" title="master">
+                master
+              </span>
+            </a>
+            <a class="select-menu-item js-navigation-item js-navigation-open "
+               href="/galaxyproject/tools-devteam/tree/origin/hisat/tools/bowtie2/test-data"
+               data-name="origin/hisat"
+               data-skip-pjax="true"
+               rel="nofollow">
+              <span class="select-menu-item-icon octicon octicon-check"></span>
+              <span class="select-menu-item-text css-truncate-target" title="origin/hisat">
+                origin/hisat
+              </span>
+            </a>
+            <a class="select-menu-item js-navigation-item js-navigation-open "
+               href="/galaxyproject/tools-devteam/tree/osx_compat/tools/bowtie2/test-data"
+               data-name="osx_compat"
+               data-skip-pjax="true"
+               rel="nofollow">
+              <span class="select-menu-item-icon octicon octicon-check"></span>
+              <span class="select-menu-item-text css-truncate-target" title="osx_compat">
+                osx_compat
+              </span>
+            </a>
+            <a class="select-menu-item js-navigation-item js-navigation-open "
+               href="/galaxyproject/tools-devteam/tree/picard_sortsam/tools/bowtie2/test-data"
+               data-name="picard_sortsam"
+               data-skip-pjax="true"
+               rel="nofollow">
+              <span class="select-menu-item-icon octicon octicon-check"></span>
+              <span class="select-menu-item-text css-truncate-target" title="picard_sortsam">
+                picard_sortsam
+              </span>
+            </a>
+            <a class="select-menu-item js-navigation-item js-navigation-open "
+               href="/galaxyproject/tools-devteam/tree/weblogo-fix/tools/bowtie2/test-data"
+               data-name="weblogo-fix"
+               data-skip-pjax="true"
+               rel="nofollow">
+              <span class="select-menu-item-icon octicon octicon-check"></span>
+              <span class="select-menu-item-text css-truncate-target" title="weblogo-fix">
+                weblogo-fix
+              </span>
+            </a>
+        </div>
+
+          <div class="select-menu-no-results">Nothing to show</div>
+      </div>
+
+      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
+        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
+
+
+        </div>
+
+        <div class="select-menu-no-results">Nothing to show</div>
+      </div>
+
+    </div>
+  </div>
+</div>
+
+    <div class="btn-group right">
+      <a href="/galaxyproject/tools-devteam/find/master" data-pjax data-hotkey="t" class="js-show-file-finder btn btn-sm empty-icon tooltipped tooltipped-s" aria-label="Quickly jump between files">
+        <span class="octicon octicon-list-unordered"></span>
+      </a>
+      <a href="/galaxyproject/tools-devteam/commits/master/tools/bowtie2/test-data" class="btn btn-sm empty-icon tooltipped tooltipped-s" aria-label="Browse commits for this branch">
+        <span class="octicon octicon-history"></span>
+      </a>
+    </div>
+    <div class="breadcrumb">
+      <span class="repo-root js-repo-root"><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/galaxyproject/tools-devteam" class="" data-branch="master" data-pjax="true" itemscope="url"><span itemprop="title">tools-devteam</span></a></span></span><span class="separator">/</span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/galaxyproject/tools-devteam/tree/master/tools" class="" data-branch="master" data-pjax="true" itemscope="url"><span itemprop="title">tools</span></a></span><span class="separator">/</span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/galaxyproject/tools-devteam/tree/master/tools/bowtie2" class="" data-branch="master" data-pjax="true" itemscope="url"><span itemprop="title">bowtie2</span></a></span><span class="separator">/</span><strong class="final-path">test-data</strong><span class="separator">/</span>
+    <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/galaxyproject/tools-devteam/new/master/tools/bowtie2/test-data" class="js-new-blob-form inline-form" data-form-nonce="1a2e7c5c235fe6fddd1652a8fbf52781a0304796" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="oHnhBUKtIFc/i+gj1F8SdSSK6r2vwLo0csLvt6huBR6W4GyuyAl915tvYyDR2eLrs8hxzyu3b0Ooq8FsVZjYww==" /></div>
+      <button class="btn-link tooltipped tooltipped-e" type="submit" data-disable-with="working…" aria-label="Fork this project and create a new file">
+        <span class="js-new-blob-submit octicon octicon-plus"></span>
+      </button>
+</form>
+    </div>
+  </div>
+
+
+
+
+  <div class="commit commit-tease js-details-container" >
+    <p class="commit-title ">
+        <a href="/galaxyproject/tools-devteam/commit/d0e3412c58bd3bdc1a483a1e2f7f9c2aa5c87a1f" class="message" data-pjax="true" title="Unify and collectionify read group handling.
+
+The reusable macro file has:
+
+ - Defines widgets for common read group parameters.
+ - Widgets can be used at top-level (e.g. ``picard_AddOrReplaceReadGroups`` where handling is required) of inputs or within a conditional (e.g. in the mappers).
+ - The conditional (used by mappers) has fours modes:
+    - Set according the specification (only ID required - has all parameters). Current BWA approach.
+    - Set Picard-style (presumably useful for broad pipelines?) (``ID``, ``SM``, ``LB``, ``PU``, ``PL`` are all required and there are no params for ``KS``, ``PG``, or ``FO``). In terms of what is shown and what is required - this mirrors ``picard_AddOrReplaceReadGroups``.
+    - Just assign the ``ID`` and do so automatically (based either on collection or standalone dataset information). No extra form elements are shown to the user. (Should this be the new default?)
+    - Do not set read groups.
+ - Utilities for conditionally including parameters and formatting them (eliminates many explicit conditionals in the mappers for instance).
+ - An example &quot;mapper&quot; test tool which demonstrates optionally including read groups.
+ - An example read group assign test tool which demonstrates unconditionally specifying macros.
+
+In addition to unifying everything, the macro file defines enhanced ``ID``, ``SM``, and ``LB`` parameter inputs that are wrapped in a conditional. That conditional allows manual input but also allows the user to just say Galaxy should use collection information or dataset name (if input is not in a collection) to assign these parameters. This should simplify things and make simple workflows more robust, but is absolutely essential for collection-based workflows and newer tool form options that allow running a tool in parallel over many inputs.
+
+This may look at first glance like it is really complicated - but if you focus just on the mappers for instance and treat the macro file like a library - the client interface is actually a good deal easier than doing this stuff by hand for each tool.
+
+Updates from original version:
+
+ - Tests pass for ``picard_AddOrReplaceReadGroups`` as well as the BWA and Bowtie tools.
+ - Remove the changes from tophat - it will require more work (it is less free form and won&#39;t accept certain valid read groups arguments).
+ - Deleted empty lines I had previously introduced and idented the Cheetah code (hadn&#39;t realized I could do that).
+
+Smaller Notes:
+
+The new approach for BWA tools excludes empty read groups instead of adding them as empty - hopefully this is fine:
+
+```
+-@RG    ID:rg1  SM:     PL:CAPILLARY
+-@PG    ID:bwa  PN:bwa  VN:0.7.12-r1039 CL:bwa sampe -r @RG     ID:rg1  SM:     PL:CAPILLARY localref.fa first.sai second.sai /tmp/tmpn_I5mQ/files/000/dataset_9.dat /tmp/tmpn_I5mQ/files/000/dataset_10.dat
++@RG    ID:rg1  PL:CAPILLARY
++@PG    ID:bwa  PN:bwa  VN:0.7.12-r1039 CL:bwa sampe -r @RG     ID:rg1  PL:CAPILLARY localref.fa first.sai second.sai /tmp/tmpmN3j1j/files/000/dataset_9.dat /tmp/tmpmN3j1j/files/000/dataset_10.dat
+```">Unify and collectionify read group handling.</a>
+        <span class="hidden-text-expander inline"><a href="#" class="js-details-target">…</a></span>
+    </p>
+      <div class="commit-desc"><pre>The reusable macro file has:
+
+ - Defines widgets for common read group parameters.
+ - Widgets can be used at top-level (e.g. ``picard_AddOrReplaceReadGroups`` where handling is required) of inputs or within a conditional (e.g. in the mappers).
+ - The conditional (used by mappers) has fours modes:
+    - Set according the specification (only ID required - has all parameters). Current BWA approach.
+    - Set Picard-style (presumably useful for broad pipelines?) (``ID``, ``SM``, ``LB``, ``PU``, ``PL`` are all required and there are no params for ``KS``, ``PG``, or ``FO``). In terms of what is shown and what is required - this mirrors ``picard_AddOrReplaceReadGroups``.
+    - Just assign the ``ID`` and do so automatically (based either on collection or standalone dataset information). No extra form elements are shown to the user. (Should this be the new default?)
+    - Do not set read groups.
+ - Utilities for conditionally including parameters and formatting them (eliminates many explicit conditionals in the mappers for instance).
+ - An example "mapper" test tool which demonstrates optionally including read groups.
+ - An example read group assign test tool which demonstrates unconditionally specifying macros.
+
+In addition to unifying everything, the macro file defines enhanced ``ID``, ``SM``, and ``LB`` parameter inputs that are wrapped in a conditional. That conditional allows manual input but also allows the user to just say Galaxy should use collection information or dataset name (if input is not in a collection) to assign these parameters. This should simplify things and make simple workflows more robust, but is absolutely essential for collection-based workflows and newer tool form options that allow running a tool in parallel over many inputs.
+
+This may look at first glance like it is really complicated - but if you focus just on the mappers for instance and treat the macro file like a library - the client interface is actually a good deal easier than doing this stuff by hand for each tool.
+
+Updates from original version:
+
+ - Tests pass for ``picard_AddOrReplaceReadGroups`` as well as the BWA and Bowtie tools.
+ - Remove the changes from tophat - it will require more work (it is less free form and won't accept certain valid read groups arguments).
+ - Deleted empty lines I had previously introduced and idented the Cheetah code (hadn't realized I could do that).
+
+Smaller Notes:
+
+The new approach for BWA tools excludes empty read groups instead of adding them as empty - hopefully this is fine:
+
+```
+-<a href="https://github.com/RG" class="user-mention">@RG</a>    ID:rg1  SM:     PL:CAPILLARY
+-<a href="https://github.com/PG" class="user-mention">@PG</a>    ID:bwa  PN:bwa  VN:0.7.12-r1039 CL:bwa sampe -r <a href="https://github.com/RG" class="user-mention">@RG</a>     ID:rg1  SM:     PL:CAPILLARY localref.fa first.sai second.sai /tmp/tmpn_I5mQ/files/000/dataset_9.dat /tmp/tmpn_I5mQ/files/000/dataset_10.dat
++<a href="https://github.com/RG" class="user-mention">@RG</a>    ID:rg1  PL:CAPILLARY
++<a href="https://github.com/PG" class="user-mention">@PG</a>    ID:bwa  PN:bwa  VN:0.7.12-r1039 CL:bwa sampe -r <a href="https://github.com/RG" class="user-mention">@RG</a>     ID:rg1  PL:CAPILLARY localref.fa first.sai second.sai /tmp/tmpmN3j1j/files/000/dataset_9.dat /tmp/tmpmN3j1j/files/000/dataset_10.dat
+```</pre></div>
+    <div class="commit-meta">
+      <button aria-label="Copy SHA" class="js-zeroclipboard zeroclipboard-link tooltipped tooltipped-s" data-clipboard-text="d0e3412c58bd3bdc1a483a1e2f7f9c2aa5c87a1f" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button>
+      <a href="/galaxyproject/tools-devteam/commit/d0e3412c58bd3bdc1a483a1e2f7f9c2aa5c87a1f" class="sha-block" data-pjax>latest commit <span class="sha">d0e3412c58</span></a>
+
+      <div class="authorship">
+        <img alt="@jmchilton" class="avatar" height="20" src="https://avatars0.githubusercontent.com/u/216771?v=3&amp;s=40" width="20" />
+        <span class="author-name"><a href="/jmchilton" rel="contributor">jmchilton</a></span>
+        authored <time class="updated" datetime="2015-04-13T20:08:40Z" is="relative-time">Apr 13, 2015</time>
+
+      </div>
+    </div>
+  </div>
+
+
+<div class="file-wrap">
+  <a href="/galaxyproject/tools-devteam/tree/22227a626113448672603f832bdccba36dd3fdac/tools/bowtie2/test-data" class="hidden js-permalink-shortcut" data-hotkey="y">Permalink</a>
+
+  <table class="files" data-pjax>
+      <tr class="up-tree">
+        <td></td>
+        <td><a href="/galaxyproject/tools-devteam/tree/master/tools/bowtie2" rel="nofollow" title="Go to parent directory">..</a></td>
+        <td></td>
+        <td></td>
+      </tr>
+
+
+    <tbody>
+      <tr class="warning include-fragment-error">
+        <td class="icon"><span class="octicon octicon-alert"></span></td>
+        <td class="content" colspan="3">Failed to load latest commit information.</td>
+      </tr>
+
+        <tr>
+          <td class="icon">
+            <span class="octicon octicon-file-text"></span>
+            <img alt="" class="spinner" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+          </td>
+          <td class="content">
+            <span class="css-truncate css-truncate-target"><a href="/galaxyproject/tools-devteam/blob/master/tools/bowtie2/test-data/bowtie2-fq1.fq" class="js-directory-link" id="be347569b1fed463c3e111292bc2df9e-fa44b3385f96a1913c84e2a5b3f01d323195eb94" title="bowtie2-fq1.fq">bowtie2-fq1.fq</a></span>
+          </td>
+          <td class="message">
+            <span class="css-truncate css-truncate-target">
+              <a href="/galaxyproject/tools-devteam/commit/2035dc21f4c3d2a4a12b40b4cbe65714fe06f362" class="message" data-pjax="true" title="added test and test files">added test and test files</a>
+            </span>
+          </td>
+          <td class="age">
+            <span class="css-truncate css-truncate-target"><time datetime="2014-12-01T15:45:35Z" is="time-ago">Dec 1, 2014</time></span>
+          </td>
+        </tr>
+        <tr>
+          <td class="icon">
+            <span class="octicon octicon-file-text"></span>
+            <img alt="" class="spinner" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+          </td>
+          <td class="content">
+            <span class="css-truncate css-truncate-target"><a href="/galaxyproject/tools-devteam/blob/master/tools/bowtie2/test-data/bowtie2-fq2.fq" class="js-directory-link" id="a93db4f1ea9cdfa0f62c8f46bd3aed01-ff3c56bb5eeef08c79e0c5a774aa521d9ff23ac4" title="bowtie2-fq2.fq">bowtie2-fq2.fq</a></span>
+          </td>
+          <td class="message">
+            <span class="css-truncate css-truncate-target">
+              <a href="/galaxyproject/tools-devteam/commit/2035dc21f4c3d2a4a12b40b4cbe65714fe06f362" class="message" data-pjax="true" title="added test and test files">added test and test files</a>
+            </span>
+          </td>
+          <td class="age">
+            <span class="css-truncate css-truncate-target"><time datetime="2014-12-01T15:45:35Z" is="time-ago">Dec 1, 2014</time></span>
+          </td>
+        </tr>
+        <tr>
+          <td class="icon">
+            <span class="octicon octicon-file-text"></span>
+            <img alt="" class="spinner" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+          </td>
+          <td class="content">
+            <span class="css-truncate css-truncate-target"><a href="/galaxyproject/tools-devteam/blob/master/tools/bowtie2/test-data/bowtie2-ref.fasta" class="js-directory-link" id="fe1438a7ee4d5e5f4d293552666ee44a-a4b24136e8e93939311f3c345110ba6abe91d36c" title="bowtie2-ref.fasta">bowtie2-ref.fasta</a></span>
+          </td>
+          <td class="message">
+            <span class="css-truncate css-truncate-target">
+              <a href="/galaxyproject/tools-devteam/commit/2035dc21f4c3d2a4a12b40b4cbe65714fe06f362" class="message" data-pjax="true" title="added test and test files">added test and test files</a>
+            </span>
+          </td>
+          <td class="age">
+            <span class="css-truncate css-truncate-target"><time datetime="2014-12-01T15:45:35Z" is="time-ago">Dec 1, 2014</time></span>
+          </td>
+        </tr>
+        <tr>
+          <td class="icon">
+            <span class="octicon octicon-file-text"></span>
+            <img alt="" class="spinner" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+          </td>
+          <td class="content">
+            <span class="css-truncate css-truncate-target"><a href="/galaxyproject/tools-devteam/blob/master/tools/bowtie2/test-data/bowtie2-test1.bam" class="js-directory-link" id="ef319980eaff46c21c428e7b81e28236-e23d7aef9ed985714347793a92b674b449ec8fe3" title="bowtie2-test1.bam">bowtie2-test1.bam</a></span>
+          </td>
+          <td class="message">
+            <span class="css-truncate css-truncate-target">
+              <a href="/galaxyproject/tools-devteam/commit/2035dc21f4c3d2a4a12b40b4cbe65714fe06f362" class="message" data-pjax="true" title="added test and test files">added test and test files</a>
+            </span>
+          </td>
+          <td class="age">
+            <span class="css-truncate css-truncate-target"><time datetime="2014-12-01T15:45:35Z" is="time-ago">Dec 1, 2014</time></span>
+          </td>
+        </tr>
+        <tr>
+          <td class="icon">
+            <span class="octicon octicon-file-text"></span>
+            <img alt="" class="spinner" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+          </td>
+          <td class="content">
+            <span class="css-truncate css-truncate-target"><a href="/galaxyproject/tools-devteam/blob/master/tools/bowtie2/test-data/bowtie2-test2.bam" class="js-directory-link" id="fcef5de0c5311dd568ad01705dfbcf96-12df83659d247d24c2a6dbb51740559bc73643b9" title="bowtie2-test2.bam">bowtie2-test2.bam</a></span>
+          </td>
+          <td class="message">
+            <span class="css-truncate css-truncate-target">
+              <a href="/galaxyproject/tools-devteam/commit/d0e3412c58bd3bdc1a483a1e2f7f9c2aa5c87a1f" class="message" data-pjax="true" title="Unify and collectionify read group handling.
+
+The reusable macro file has:
+
+ - Defines widgets for common read group parameters.
+ - Widgets can be used at top-level (e.g. ``picard_AddOrReplaceReadGroups`` where handling is required) of inputs or within a conditional (e.g. in the mappers).
+ - The conditional (used by mappers) has fours modes:
+    - Set according the specification (only ID required - has all parameters). Current BWA approach.
+    - Set Picard-style (presumably useful for broad pipelines?) (``ID``, ``SM``, ``LB``, ``PU``, ``PL`` are all required and there are no params for ``KS``, ``PG``, or ``FO``). In terms of what is shown and what is required - this mirrors ``picard_AddOrReplaceReadGroups``.
+    - Just assign the ``ID`` and do so automatically (based either on collection or standalone dataset information). No extra form elements are shown to the user. (Should this be the new default?)
+    - Do not set read groups.
+ - Utilities for conditionally including parameters and formatting them (eliminates many explicit conditionals in the mappers for instance).
+ - An example &quot;mapper&quot; test tool which demonstrates optionally including read groups.
+ - An example read group assign test tool which demonstrates unconditionally specifying macros.
+
+In addition to unifying everything, the macro file defines enhanced ``ID``, ``SM``, and ``LB`` parameter inputs that are wrapped in a conditional. That conditional allows manual input but also allows the user to just say Galaxy should use collection information or dataset name (if input is not in a collection) to assign these parameters. This should simplify things and make simple workflows more robust, but is absolutely essential for collection-based workflows and newer tool form options that allow running a tool in parallel over many inputs.
+
+This may look at first glance like it is really complicated - but if you focus just on the mappers for instance and treat the macro file like a library - the client interface is actually a good deal easier than doing this stuff by hand for each tool.
+
+Updates from original version:
+
+ - Tests pass for ``picard_AddOrReplaceReadGroups`` as well as the BWA and Bowtie tools.
+ - Remove the changes from tophat - it will require more work (it is less free form and won&#39;t accept certain valid read groups arguments).
+ - Deleted empty lines I had previously introduced and idented the Cheetah code (hadn&#39;t realized I could do that).
+
+Smaller Notes:
+
+The new approach for BWA tools excludes empty read groups instead of adding them as empty - hopefully this is fine:
+
+```
+-@RG    ID:rg1  SM:     PL:CAPILLARY
+-@PG    ID:bwa  PN:bwa  VN:0.7.12-r1039 CL:bwa sampe -r @RG     ID:rg1  SM:     PL:CAPILLARY localref.fa first.sai second.sai /tmp/tmpn_I5mQ/files/000/dataset_9.dat /tmp/tmpn_I5mQ/files/000/dataset_10.dat
++@RG    ID:rg1  PL:CAPILLARY
++@PG    ID:bwa  PN:bwa  VN:0.7.12-r1039 CL:bwa sampe -r @RG     ID:rg1  PL:CAPILLARY localref.fa first.sai second.sai /tmp/tmpmN3j1j/files/000/dataset_9.dat /tmp/tmpmN3j1j/files/000/dataset_10.dat
+```">Unify and collectionify read group handling.</a>
+            </span>
+          </td>
+          <td class="age">
+            <span class="css-truncate css-truncate-target"><time datetime="2015-05-07T19:31:09Z" is="time-ago">May 7, 2015</time></span>
+          </td>
+        </tr>
+    </tbody>
+  </table>
+
+</div>
+
+
+  
+
+
+          </div>
+        </div>
+        <div class="modal-backdrop"></div>
+      </div>
+  </div>
+
+
+    </div><!-- /.wrapper -->
+
+      <div class="container">
+  <div class="site-footer" role="contentinfo">
+    <ul class="site-footer-links right">
+        <li><a href="https://status.github.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
+      <li><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
+      <li><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
+      <li><a href="https://shop.github.com" data-ga-click="Footer, go to shop, text:shop">Shop</a></li>
+        <li><a href="https://github.com/blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
+        <li><a href="https://github.com/about" data-ga-click="Footer, go to about, text:about">About</a></li>
+        <li><a href="https://help.github.com" data-ga-click="Footer, go to help, text:help">Help</a></li>
+
+    </ul>
+
+    <a href="https://github.com" aria-label="Homepage">
+      <span class="mega-octicon octicon-mark-github" title="GitHub"></span>
+</a>
+    <ul class="site-footer-links">
+      <li>&copy; 2015 <span title="0.06882s from github-fe127-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
+        <li><a href="https://github.com/site/terms" data-ga-click="Footer, go to terms, text:terms">Terms</a></li>
+        <li><a href="https://github.com/site/privacy" data-ga-click="Footer, go to privacy, text:privacy">Privacy</a></li>
+        <li><a href="https://github.com/security" data-ga-click="Footer, go to security, text:security">Security</a></li>
+        <li><a href="https://github.com/contact" data-ga-click="Footer, go to contact, text:contact">Contact</a></li>
+    </ul>
+  </div>
+</div>
+
+
+    <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
+  <div class="fullscreen-container js-suggester-container">
+    <div class="textarea-wrap">
+      <textarea name="fullscreen-contents" id="fullscreen-contents" class="fullscreen-contents js-fullscreen-contents" placeholder="" aria-label=""></textarea>
+      <div class="suggester-container">
+        <div class="suggester fullscreen-suggester js-suggester js-navigation-container"></div>
+      </div>
+    </div>
+  </div>
+  <div class="fullscreen-sidebar">
+    <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped tooltipped-w" aria-label="Exit Zen Mode">
+      <span class="mega-octicon octicon-screen-normal"></span>
+    </a>
+    <a href="#" class="theme-switcher js-theme-switcher tooltipped tooltipped-w"
+      aria-label="Switch themes">
+      <span class="octicon octicon-color-mode"></span>
+    </a>
+  </div>
+</div>
+
+
+
+    
+    
+
+    <div id="ajax-error-message" class="flash flash-error">
+      <span class="octicon octicon-alert"></span>
+      <a href="#" class="octicon octicon-x flash-close js-ajax-error-dismiss" aria-label="Dismiss error"></a>
+      Something went wrong with that request. Please try again.
+    </div>
+
+
+      <script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/frameworks-eedcd4970c51d77d26b12825fc1fb1fbd554a880c0a8649a9cac6b63f1ee7cff.js"></script>
+      <script async="async" crossorigin="anonymous" src="https://assets-cdn.github.com/assets/github/index-1af8eb3fd83c34afcee37eae4704e57d3bb35ccacee5574545665527ae02d731.js"></script>
+      
+      
+  </body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/url2bowtie/tool_data_table_conf.xml.sample	Mon Aug 03 05:36:36 2015 -0400
@@ -0,0 +1,8 @@
+<!-- Use the file tool_data_table_conf.xml.oldlocstyle if you don't want to update your loc files as changed in revision 4550:535d276c92bc-->
+<tables>
+    <!-- Locations of indexes in the Bowtie2 mapper format -->
+    <table name="bowtie2_indexes" comment_char="#">
+        <columns>value, dbkey, name, path</columns>
+        <file path="tool-data/bowtie2_indices.loc" />
+    </table>
+</tables>