Repository 'msconvert'
hg clone https://toolshed.g2.bx.psu.edu/repos/galaxyp/msconvert

Changeset 0:10f4a0356342 (2012-12-19)
Next changeset 1:861e3f0c2bb6 (2013-02-14)
Commit message:
Uploaded
added:
LICENSE
README.md
README_GALAXYP.md
README_REPO.md
msconvert.xml.template
msconvert2.xml
msconvert2_raw.xml
msconvert3.xml
msconvert3_raw.xml
msconvert_raw_wrapper.py
msconvert_subset.xml
msconvert_wrapper.py
update.sh
update_repo.sh
version
b
diff -r 000000000000 -r 10f4a0356342 LICENSE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LICENSE Wed Dec 19 00:10:08 2012 -0500
[
b'@@ -0,0 +1,202 @@\n+\n+                                 Apache License\n+                           Version 2.0, January 2004\n+                        http://www.apache.org/licenses/\n+\n+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n+\n+   1. Definitions.\n+\n+      "License" shall mean the terms and conditions for use, reproduction,\n+      and distribution as defined by Sections 1 through 9 of this document.\n+\n+      "Licensor" shall mean the copyright owner or entity authorized by\n+      the copyright owner that is granting the License.\n+\n+      "Legal Entity" shall mean the union of the acting entity and all\n+      other entities that control, are controlled by, or are under common\n+      control with that entity. For the purposes of this definition,\n+      "control" means (i) the power, direct or indirect, to cause the\n+      direction or management of such entity, whether by contract or\n+      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n+      outstanding shares, or (iii) beneficial ownership of such entity.\n+\n+      "You" (or "Your") shall mean an individual or Legal Entity\n+      exercising permissions granted by this License.\n+\n+      "Source" form shall mean the preferred form for making modifications,\n+      including but not limited to software source code, documentation\n+      source, and configuration files.\n+\n+      "Object" form shall mean any form resulting from mechanical\n+      transformation or translation of a Source form, including but\n+      not limited to compiled object code, generated documentation,\n+      and conversions to other media types.\n+\n+      "Work" shall mean the work of authorship, whether in Source or\n+      Object form, made available under the License, as indicated by a\n+      copyright notice that is included in or attached to the work\n+      (an example is provided in the Appendix below).\n+\n+      "Derivative Works" shall mean any work, whether in Source or Object\n+      form, that is based on (or derived from) the Work and for which the\n+      editorial revisions, annotations, elaborations, or other modifications\n+      represent, as a whole, an original work of authorship. For the purposes\n+      of this License, Derivative Works shall not include works that remain\n+      separable from, or merely link (or bind by name) to the interfaces of,\n+      the Work and Derivative Works thereof.\n+\n+      "Contribution" shall mean any work of authorship, including\n+      the original version of the Work and any modifications or additions\n+      to that Work or Derivative Works thereof, that is intentionally\n+      submitted to Licensor for inclusion in the Work by the copyright owner\n+      or by an individual or Legal Entity authorized to submit on behalf of\n+      the copyright owner. For the purposes of this definition, "submitted"\n+      means any form of electronic, verbal, or written communication sent\n+      to the Licensor or its representatives, including but not limited to\n+      communication on electronic mailing lists, source code control systems,\n+      and issue tracking systems that are managed by, or on behalf of, the\n+      Licensor for the purpose of discussing and improving the Work, but\n+      excluding communication that is conspicuously marked or otherwise\n+      designated in writing by the copyright owner as "Not a Contribution."\n+\n+      "Contributor" shall mean Licensor and any individual or Legal Entity\n+      on behalf of whom a Contribution has been received by Licensor and\n+      subsequently incorporated within the Work.\n+\n+   2. Grant of Copyright License. Subject to the terms and conditions of\n+      this License, each Contributor hereby grants to You a perpetual,\n+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n+      copyright license to reproduce, prepare Derivative Works of,\n+      publicly display, publicly perform, sublicense, and distribute the\n+      Work and such Derivative Works in Source or Obj'..b'ensor shall be under the terms and conditions of\n+      this License, without any additional terms or conditions.\n+      Notwithstanding the above, nothing herein shall supersede or modify\n+      the terms of any separate license agreement you may have executed\n+      with Licensor regarding such Contributions.\n+\n+   6. Trademarks. This License does not grant permission to use the trade\n+      names, trademarks, service marks, or product names of the Licensor,\n+      except as required for reasonable and customary use in describing the\n+      origin of the Work and reproducing the content of the NOTICE file.\n+\n+   7. Disclaimer of Warranty. Unless required by applicable law or\n+      agreed to in writing, Licensor provides the Work (and each\n+      Contributor provides its Contributions) on an "AS IS" BASIS,\n+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n+      implied, including, without limitation, any warranties or conditions\n+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n+      PARTICULAR PURPOSE. You are solely responsible for determining the\n+      appropriateness of using or redistributing the Work and assume any\n+      risks associated with Your exercise of permissions under this License.\n+\n+   8. Limitation of Liability. In no event and under no legal theory,\n+      whether in tort (including negligence), contract, or otherwise,\n+      unless required by applicable law (such as deliberate and grossly\n+      negligent acts) or agreed to in writing, shall any Contributor be\n+      liable to You for damages, including any direct, indirect, special,\n+      incidental, or consequential damages of any character arising as a\n+      result of this License or out of the use or inability to use the\n+      Work (including but not limited to damages for loss of goodwill,\n+      work stoppage, computer failure or malfunction, or any and all\n+      other commercial damages or losses), even if such Contributor\n+      has been advised of the possibility of such damages.\n+\n+   9. Accepting Warranty or Additional Liability. While redistributing\n+      the Work or Derivative Works thereof, You may choose to offer,\n+      and charge a fee for, acceptance of support, warranty, indemnity,\n+      or other liability obligations and/or rights consistent with this\n+      License. However, in accepting such obligations, You may act only\n+      on Your own behalf and on Your sole responsibility, not on behalf\n+      of any other Contributor, and only if You agree to indemnify,\n+      defend, and hold each Contributor harmless for any liability\n+      incurred by, or claims asserted against, such Contributor by reason\n+      of your accepting any such warranty or additional liability.\n+\n+   END OF TERMS AND CONDITIONS\n+\n+   APPENDIX: How to apply the Apache License to your work.\n+\n+      To apply the Apache License to your work, attach the following\n+      boilerplate notice, with the fields enclosed by brackets "[]"\n+      replaced with your own identifying information. (Don\'t include\n+      the brackets!)  The text should be enclosed in the appropriate\n+      comment syntax for the file format. We also recommend that a\n+      file or class name and description of purpose be included on the\n+      same "printed page" as the copyright notice for easier\n+      identification within third-party archives.\n+\n+   Copyright 2012 University of Minnesota\n+\n+   Licensed under the Apache License, Version 2.0 (the "License");\n+   you may not use this file except in compliance with the License.\n+   You may obtain a copy of the License at\n+\n+       http://www.apache.org/licenses/LICENSE-2.0\n+\n+   Unless required by applicable law or agreed to in writing, software\n+   distributed under the License is distributed on an "AS IS" BASIS,\n+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+   See the License for the specific language governing permissions and\n+   limitations under the License.\n'
b
diff -r 000000000000 -r 10f4a0356342 README.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md Wed Dec 19 00:10:08 2012 -0500
b
@@ -0,0 +1,47 @@
+# msconvert
+
+This repository contains Galaxy tool wrappers for msconvert, part of
+the ProteoWizard (http://proteowizard.sourceforge.net/) package.
+
+# Installing
+
+Due to potential difficulties installing ProteoWizard with vendor
+library support, tools for interacting with vendor types are seperated
+out into their own wrappers. Galaxy is generally deployed under Linux,
+but vendor support in ProteoWizard requires .NET 4.0. There are at
+least two ways to get this to work:
+
+  * Galaxy jobs may be configured to submit to a Windows host with
+    ProteoWizard installed using the
+    LWR. http://wiki.g2.bx.psu.edu/Admin/Config/LWR
+
+  * ProteoWizard can be installed under Wine. Guidance on how to set
+    this up and package such environments for cloud deployments can be
+    found here: https://github.com/jmchilton/proteomics-wine-env
+
+Wrappers for both msconvert version 2 and version 3+ are provided
+because version 3+ of msconvert with vendor library support requires
+.NET 4.0 and this may difficult or impossible under Wine in Linux with
+all but the most recent versions of Wine (1.4+).
+# Obtaining Tools
+
+Repositories for all Galaxy-P tools can be found at
+https:/bitbucket.org/galaxyp/.
+
+# Contact
+
+Please send suggestions for improvements and bug reports to
+jmchilton@gmail.com.
+
+# License
+
+All Galaxy-P tools are licensed under the Apache License Version 2.0
+unless otherwise documented.
+
+# Tool Versioning
+
+Galaxy-P tools will have versions of the form X.Y.Z. Versions
+differing only after the second decimal should be completely
+compatible with each other. Breaking changes should result in an
+increment of the number before and/or after the first decimal. All
+tools of version less than 1.0.0 should be considered beta.
b
diff -r 000000000000 -r 10f4a0356342 README_GALAXYP.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README_GALAXYP.md Wed Dec 19 00:10:08 2012 -0500
b
@@ -0,0 +1,22 @@
+# Obtaining Tools
+
+Repositories for all Galaxy-P tools can be found at
+https:/bitbucket.org/galaxyp/.
+
+# Contact
+
+Please send suggestions for improvements and bug reports to
+jmchilton@gmail.com.
+
+# License
+
+All Galaxy-P tools are licensed under the Apache License Version 2.0
+unless otherwise documented.
+
+# Tool Versioning
+
+Galaxy-P tools will have versions of the form X.Y.Z. Versions
+differing only after the second decimal should be completely
+compatible with each other. Breaking changes should result in an
+increment of the number before and/or after the first decimal. All
+tools of version less than 1.0.0 should be considered beta.
b
diff -r 000000000000 -r 10f4a0356342 README_REPO.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README_REPO.md Wed Dec 19 00:10:08 2012 -0500
b
@@ -0,0 +1,25 @@
+# msconvert
+
+This repository contains Galaxy tool wrappers for msconvert, part of
+the ProteoWizard (http://proteowizard.sourceforge.net/) package.
+
+# Installing
+
+Due to potential difficulties installing ProteoWizard with vendor
+library support, tools for interacting with vendor types are seperated
+out into their own wrappers. Galaxy is generally deployed under Linux,
+but vendor support in ProteoWizard requires .NET 4.0. There are at
+least two ways to get this to work:
+
+  * Galaxy jobs may be configured to submit to a Windows host with
+    ProteoWizard installed using the
+    LWR. http://wiki.g2.bx.psu.edu/Admin/Config/LWR
+
+  * ProteoWizard can be installed under Wine. Guidance on how to set
+    this up and package such environments for cloud deployments can be
+    found here: https://github.com/jmchilton/proteomics-wine-env
+
+Wrappers for both msconvert version 2 and version 3+ are provided
+because version 3+ of msconvert with vendor library support requires
+.NET 4.0 and this may difficult or impossible under Wine in Linux with
+all but the most recent versions of Wine (1.4+).
b
diff -r 000000000000 -r 10f4a0356342 msconvert.xml.template
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert.xml.template Wed Dec 19 00:10:08 2012 -0500
[
b'@@ -0,0 +1,386 @@\n+<tool id="msconvert$VERSION$DESCRIPTION" name="msconvert$VERSION$DESCRIPTION" version="0.1.0">\n+  <!-- BEGIN_VERSION_RAW -->\n+  <description>Convert and filter a Thermo Finnigan RAW file</description>\n+  <!-- END_VERSION_RAW -->\n+  <!-- BEGIN_VERSION_DEFAULT -->\n+  <description>Convert and filter a mass spec peak list</description>\n+  <!-- END_VERSION_DEFAULT -->\n+\n+  <command interpreter="python">\n+    msconvert_wrapper.py \n+    --input=${input}\n+    #if hasattr($input, \'display_name\')\n+    --input_name=\'${input.display_name}\'\n+    #end if\n+    --output=${output} \n+    ## BEGIN_VERSION_DEFAULT    \n+    --fromextension=${input.ext} \n+    ## END_VERSION_DEFAULT\n+\n+    ## BEGIN_VERSION_RAW\n+    --fromextension=RAW\n+    ## END_VERSION_RAW\n+\n+    --toextension=${output_type} \n+\n+    #if $settings.settingsType == "full"\n+    --binaryencoding=${settings.binary_encoding} \n+    --mzencoding=${settings.mz_encoding} \n+    --intensityencoding=${settings.intensity_encoding}\n+    --zlib=${settings.zlib}\n+    #end if\n+\n+    #if $filtering.filtering_use\n+\n+    #if $filtering.precursor_recalculation.value\n+    --filter "precursorRecalculation"\n+    #end if\n+\n+    #if $filtering.peak_picking.pick_peaks\n+    --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels"\n+    #end if\n+\n+    #if str($filtering.activation) != "false"\n+    --filter "activation $filtering.activation"\n+    #end if\n+\n+    #if len($filtering.indices) > 0\n+    --filter "index\n+    #for $index in $filtering.indices\n+    [${index.from},${index.to}]\n+    #end for\n+    "\n+    #end if\n+\n+    #if len($filtering.scan_numbers) > 0\n+    --filter "scanNumber\n+    #for $scan_number in $filtering.scan_numbers\n+    [${scan_number.from},${scan_number.to}]\n+    #end for\n+    "\n+    #end if\n+\n+    #for threshold_entry in $filtering.threshold_repeat\n+    --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation"\n+    #end for\n+\n+\n+    #if $filtering.strip_it.value\n+    --filter "stripIT"\n+    #end if\n+\n+    #if $filtering.filter_mz_windows.do_filter\n+    --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]"\n+    #end if\n+\n+    \n+    #if $filtering.filter_ms_levels.do_filter\n+    --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]"\n+    #end if\n+\n+    #if str($filtering.etd_filtering.do_etd_filtering) == "default"\n+    --filter "ETDFilter"\n+    #end if\n+\n+    #if str($filtering.etd_filtering.do_etd_filtering) == "advanced"\n+    --filter "ETDFilter removePrecursor:$filtering.etd_filtering.remove_precursor removeChargeReduced:$filtering.etd_filtering.remove_charge_reduced  removeNeutralLoss:$filtering.etd_filtering.remove_neutral_loss  blanketRemoval:$filtering.etd_filtering.blanket_removal  MatchingTolerance:$filtering.etd_filtering.matching_tolerance $filtering.etd_filtering.matching_tolerance_units"\n+    #end if\n+\n+    ## BEGIN_VERSION_3\n+\n+    #if $filtering.precursor_refine.value\n+    --filter "precursorRefine"\n+    #end if\n+\n+    #if $filtering.ms2denoise.denoise\n+    --filter "MS2Denoise $filtering.ms2denoise.num_peaks $filtering.ms2denoise.window_width $filtering.ms2denoise.relax"\n+    #end if \n+\n+    #if str($filtering.ms2deisotope) == "true"\n+    --filter "MS2Deisotope"\n+    #end if\n+\n+    #if str($filtering.polarity) != "false"\n+    --filter "polarity $filtering.polarity"\n+    #end if\n+\n+    #if str($filtering.analyzer) != "false"\n+    --filter "analyzer $filtering.analyzer"\n+    #end if\n+\n+    ## END_VERSION_3\n+\n+    #end if\n+\n+  </command>\n+\n+  <inputs>\n+    <!-- BEGIN_VERSION_RAW -->\n+    <param format="RAW" name="input" type="data" label="Thermo Finnigan RAW Input"/>\n+    <!-- END_VERSION_RAW -->\n+\n+    <!-- BEGIN_VERSION_DEFAULT -->\n+    <conditional name="type">\n+      <param name="input_type" type="select" label="Input Type">\n+        <option value="mzml">mzML</option>\n+        <optio'..b'val">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>\n+          </when>\n+        </conditional>\n+\n+\n+        <!-- BEGIN_VERSION_3 -->\n+        <conditional name="ms2denoise">\n+          <param name="denoise" type="boolean" label="De-noise MS2 with moving window filter"  />\n+          <when value="true">\n+            <param name="num_peaks" label="De-noise: Number of peaks in window" value="6" type="integer" />\n+            <param name="window_width" type="float" label="De-noise: Window width (Daltons)" value="30" />\n+            <param name="relax" label="De-noise: Multicharge fragment relaxation" checked="true" type="boolean" truevalue="true" falsevalue="false" />\n+          </when>\n+          <when value="false" />\n+        </conditional>\n+        <param name="ms2deisotope" type="boolean" label="Deisotope MS2 using Markey method" help="" truevalue="true" falsevalue="false" />\n+\n+        <param name="polarity" type="select" label="Filter by Polarity">\n+          <option value="false" selected="true">no</option>\n+          <option value="positive">positive</option>\n+          <option value="negative">negative</option>\n+        </param>\n+\n+        <param name="analyzer" type="select" label="Filter by Analyzer">\n+          <option value="false" selected="true">no</option>\n+          <option value="quad">quad</option>\n+          <option value="orbi">orbi</option>\n+          <option value="FT">FT</option>\n+          <option value="IT">IT</option>\n+          <option value="TOF">TOF</option>\n+        </param>\n+        <!-- END_VERSION_3 -->\n+      </when>\n+    </conditional>\n+\n+    <conditional name="settings">\n+      <param name="settingsType" type="select" label="Advanced Settings" help="">\n+        <option value="default">Use Defaults</option>\n+        <option value="full">Full Parameter List</option>\n+      </param>\n+      <when value="default" />\n+      <when value="full">\n+        <param type="select" name="binary_encoding" label="Binary Encoding Precision">\n+          <option value="64" selected="true">64</option>\n+          <option value="32">32</option>\n+        </param>\n+        <param type="select" name="mz_encoding" label="m/z Encoding Precision">\n+          <option value="64" selected="true">64</option>\n+          <option value="32">32</option>\n+        </param>\n+        <param type="select" name="intensity_encoding" label="Intensity Encoding Precision" value="32">\n+          <option value="64">64</option>\n+          <option value="32" selected="true">32</option>\n+        </param>\n+        <param type="boolean" name="zlib" label="Use zlib">      \n+        </param>\n+      </when>\n+    </conditional>\n+\n+\n+  </inputs>\n+  <outputs>\n+    <data format="mzml" name="output">\n+      <change_format>\n+        <when input="output_type" value="mzXML" format="mzxml" />\n+        <when input="output_type" value="unindexed_mzXML" format="mzxml" />\n+        <when input="output_type" value="ms2" format="ms2" />\n+        <when input="output_type" value="mgf" format="mgf" />\n+      </change_format>\n+    </data>\n+  </outputs>\n+\n+  <requirements>\n+    <requirement type="package">proteowizard</requirement>    \n+  </requirements>\n+\n+  <help>\n+**What it does**\n+\n+Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available.\n+\n+You can view the original documentation here_.\n+    \n+.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html\n+\n+------\n+\n+**Citation**\n+\n+For the underlying tool, please cite `ProteoWizard: Open Source Software for Rapid Proteomics Tools Development. Darren Kessner; Matt Chambers; Robert Burke; David Agus; Parag Mallick. Bioinformatics 2008; doi: 10.1093/bioinformatics/btn323.`\n+\n+If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/galaxyp-toolshed-msconvert\n+\n+  </help>\n+</tool>\n'
b
diff -r 000000000000 -r 10f4a0356342 msconvert2.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert2.xml Wed Dec 19 00:10:08 2012 -0500
[
b'@@ -0,0 +1,314 @@\n+<tool id="msconvert2" name="msconvert2" version="0.1.0">\n+  <!-- BEGIN_VERSION_DEFAULT -->\n+  <description>Convert and filter a mass spec peak list</description>\n+  <!-- END_VERSION_DEFAULT -->\n+\n+  <command interpreter="python">\n+    msconvert_wrapper.py \n+    --input=${input}\n+    #if hasattr($input, \'display_name\')\n+    --input_name=\'${input.display_name}\'\n+    #end if\n+    --output=${output} \n+    ## BEGIN_VERSION_DEFAULT    \n+    --fromextension=${input.ext} \n+    ## END_VERSION_DEFAULT\n+\n+\n+    --toextension=${output_type} \n+\n+    #if $settings.settingsType == "full"\n+    --binaryencoding=${settings.binary_encoding} \n+    --mzencoding=${settings.mz_encoding} \n+    --intensityencoding=${settings.intensity_encoding}\n+    --zlib=${settings.zlib}\n+    #end if\n+\n+    #if $filtering.filtering_use\n+\n+    #if $filtering.precursor_recalculation.value\n+    --filter "precursorRecalculation"\n+    #end if\n+\n+    #if $filtering.peak_picking.pick_peaks\n+    --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels"\n+    #end if\n+\n+    #if str($filtering.activation) != "false"\n+    --filter "activation $filtering.activation"\n+    #end if\n+\n+    #if len($filtering.indices) > 0\n+    --filter "index\n+    #for $index in $filtering.indices\n+    [${index.from},${index.to}]\n+    #end for\n+    "\n+    #end if\n+\n+    #if len($filtering.scan_numbers) > 0\n+    --filter "scanNumber\n+    #for $scan_number in $filtering.scan_numbers\n+    [${scan_number.from},${scan_number.to}]\n+    #end for\n+    "\n+    #end if\n+\n+    #for threshold_entry in $filtering.threshold_repeat\n+    --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation"\n+    #end for\n+\n+\n+    #if $filtering.strip_it.value\n+    --filter "stripIT"\n+    #end if\n+\n+    #if $filtering.filter_mz_windows.do_filter\n+    --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]"\n+    #end if\n+\n+    \n+    #if $filtering.filter_ms_levels.do_filter\n+    --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]"\n+    #end if\n+\n+    #if str($filtering.etd_filtering.do_etd_filtering) == "default"\n+    --filter "ETDFilter"\n+    #end if\n+\n+    #if str($filtering.etd_filtering.do_etd_filtering) == "advanced"\n+    --filter "ETDFilter removePrecursor:$filtering.etd_filtering.remove_precursor removeChargeReduced:$filtering.etd_filtering.remove_charge_reduced  removeNeutralLoss:$filtering.etd_filtering.remove_neutral_loss  blanketRemoval:$filtering.etd_filtering.blanket_removal  MatchingTolerance:$filtering.etd_filtering.matching_tolerance $filtering.etd_filtering.matching_tolerance_units"\n+    #end if\n+\n+\n+    #end if\n+\n+  </command>\n+\n+  <inputs>\n+\n+    <!-- BEGIN_VERSION_DEFAULT -->\n+    <conditional name="type">\n+      <param name="input_type" type="select" label="Input Type">\n+        <option value="mzml">mzML</option>\n+        <option value="mzxml">mzXML</option>\n+        <option value="mgf">mgf</option>\n+        <option value="ms2">ms2</option>\n+      </param>\n+      <when value="mzml">\n+        <param format="mzml" name="input" type="data" label="Input mzML"/>\n+      </when>\n+      <when value="mzxml">\n+        <param format="mzxml" name="input" type="data" label="Input mzXML"/>\n+      </when>\n+      <when value="mgf">\n+        <param format="mgf" name="input" type="data" label="Input mgf"/>\n+      </when>\n+      <when value="ms2">\n+        <param format="ms2" name="input" type="data" label="Input ms2"/>\n+      </when>\n+    </conditional>\n+    <!-- END_VERSION_DEFAULT -->    \n+    <param name="output_type" type="select" label="Output Type">\n+      <option value="mzML">mzML (indexed)</option>\n+      <option value="unindexed_mzML">mzML (unindexed)</option>\n+      <option value="mzXML">mzXML (indexed)</option>      \n+      <option value="unindexed_mzXML">mzXML (unindexed)</option>\n+      <option value="mgf">mgf</option>\n+     '..b'<option value="default">yes (with default options)</option>\n+            <option value="advanced">yes (show advanced options) </option>\n+          </param>\n+          <when value="none" />\n+          <when value="default" />\n+          <when value="advanced">\n+            <param name="matching_tolerance" type="float" label="ETD Matching Tolernace" value="3.1">\n+            </param>\n+            <param name="matching_tolerance_units" type="select" label="Units for ETD Matching Tolerance">\n+              <option value="MZ" selected="true">mz</option>              \n+              <option value="PPM">ppm</option>\n+            </param>\n+            <param name="remove_precursor" type="select" label="ETD Remove Precursor">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>\n+            <param name="remove_charge_reduced" type="select" label="ETD Remove Charge Reduced">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>            \n+            <param name="remove_neutral_loss" type="select" label="ETD Remove Neutral Loss">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>\n+            <param name="blanket_removal" type="select" label="ETD Blanket Removal">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>\n+          </when>\n+        </conditional>\n+\n+\n+      </when>\n+    </conditional>\n+\n+    <conditional name="settings">\n+      <param name="settingsType" type="select" label="Advanced Settings" help="">\n+        <option value="default">Use Defaults</option>\n+        <option value="full">Full Parameter List</option>\n+      </param>\n+      <when value="default" />\n+      <when value="full">\n+        <param type="select" name="binary_encoding" label="Binary Encoding Precision">\n+          <option value="64" selected="true">64</option>\n+          <option value="32">32</option>\n+        </param>\n+        <param type="select" name="mz_encoding" label="m/z Encoding Precision">\n+          <option value="64" selected="true">64</option>\n+          <option value="32">32</option>\n+        </param>\n+        <param type="select" name="intensity_encoding" label="Intensity Encoding Precision" value="32">\n+          <option value="64">64</option>\n+          <option value="32" selected="true">32</option>\n+        </param>\n+        <param type="boolean" name="zlib" label="Use zlib">      \n+        </param>\n+      </when>\n+    </conditional>\n+\n+\n+  </inputs>\n+  <outputs>\n+    <data format="mzml" name="output">\n+      <change_format>\n+        <when input="output_type" value="mzXML" format="mzxml" />\n+        <when input="output_type" value="unindexed_mzXML" format="mzxml" />\n+        <when input="output_type" value="ms2" format="ms2" />\n+        <when input="output_type" value="mgf" format="mgf" />\n+      </change_format>\n+    </data>\n+  </outputs>\n+\n+  <requirements>\n+    <requirement type="package">proteowizard</requirement>    \n+  </requirements>\n+\n+  <help>\n+**What it does**\n+\n+Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available.\n+\n+You can view the original documentation here_.\n+    \n+.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html\n+\n+------\n+\n+**Citation**\n+\n+For the underlying tool, please cite `ProteoWizard: Open Source Software for Rapid Proteomics Tools Development. Darren Kessner; Matt Chambers; Robert Burke; David Agus; Parag Mallick. Bioinformatics 2008; doi: 10.1093/bioinformatics/btn323.`\n+\n+If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/galaxyp-toolshed-msconvert\n+\n+  </help>\n+</tool>\n'
b
diff -r 000000000000 -r 10f4a0356342 msconvert2_raw.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert2_raw.xml Wed Dec 19 00:10:08 2012 -0500
[
b'@@ -0,0 +1,295 @@\n+<tool id="msconvert2_raw" name="msconvert2_raw" version="0.1.0">\n+  <!-- BEGIN_VERSION_RAW -->\n+  <description>Convert and filter a Thermo Finnigan RAW file</description>\n+  <!-- END_VERSION_RAW -->\n+\n+  <command interpreter="python">\n+    msconvert_wrapper.py \n+    --input=${input}\n+    #if hasattr($input, \'display_name\')\n+    --input_name=\'${input.display_name}\'\n+    #end if\n+    --output=${output} \n+\n+    ## BEGIN_VERSION_RAW\n+    --fromextension=RAW\n+    ## END_VERSION_RAW\n+\n+    --toextension=${output_type} \n+\n+    #if $settings.settingsType == "full"\n+    --binaryencoding=${settings.binary_encoding} \n+    --mzencoding=${settings.mz_encoding} \n+    --intensityencoding=${settings.intensity_encoding}\n+    --zlib=${settings.zlib}\n+    #end if\n+\n+    #if $filtering.filtering_use\n+\n+    #if $filtering.precursor_recalculation.value\n+    --filter "precursorRecalculation"\n+    #end if\n+\n+    #if $filtering.peak_picking.pick_peaks\n+    --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels"\n+    #end if\n+\n+    #if str($filtering.activation) != "false"\n+    --filter "activation $filtering.activation"\n+    #end if\n+\n+    #if len($filtering.indices) > 0\n+    --filter "index\n+    #for $index in $filtering.indices\n+    [${index.from},${index.to}]\n+    #end for\n+    "\n+    #end if\n+\n+    #if len($filtering.scan_numbers) > 0\n+    --filter "scanNumber\n+    #for $scan_number in $filtering.scan_numbers\n+    [${scan_number.from},${scan_number.to}]\n+    #end for\n+    "\n+    #end if\n+\n+    #for threshold_entry in $filtering.threshold_repeat\n+    --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation"\n+    #end for\n+\n+\n+    #if $filtering.strip_it.value\n+    --filter "stripIT"\n+    #end if\n+\n+    #if $filtering.filter_mz_windows.do_filter\n+    --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]"\n+    #end if\n+\n+    \n+    #if $filtering.filter_ms_levels.do_filter\n+    --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]"\n+    #end if\n+\n+    #if str($filtering.etd_filtering.do_etd_filtering) == "default"\n+    --filter "ETDFilter"\n+    #end if\n+\n+    #if str($filtering.etd_filtering.do_etd_filtering) == "advanced"\n+    --filter "ETDFilter removePrecursor:$filtering.etd_filtering.remove_precursor removeChargeReduced:$filtering.etd_filtering.remove_charge_reduced  removeNeutralLoss:$filtering.etd_filtering.remove_neutral_loss  blanketRemoval:$filtering.etd_filtering.blanket_removal  MatchingTolerance:$filtering.etd_filtering.matching_tolerance $filtering.etd_filtering.matching_tolerance_units"\n+    #end if\n+\n+\n+    #end if\n+\n+  </command>\n+\n+  <inputs>\n+    <!-- BEGIN_VERSION_RAW -->\n+    <param format="RAW" name="input" type="data" label="Thermo Finnigan RAW Input"/>\n+    <!-- END_VERSION_RAW -->\n+\n+    <param name="output_type" type="select" label="Output Type">\n+      <option value="mzML">mzML (indexed)</option>\n+      <option value="unindexed_mzML">mzML (unindexed)</option>\n+      <option value="mzXML">mzXML (indexed)</option>      \n+      <option value="unindexed_mzXML">mzXML (unindexed)</option>\n+      <option value="mgf">mgf</option>\n+      <option value="ms2">ms2</option>  \n+    </param>    \n+    <conditional name="filtering">\n+      <param name="filtering_use" type="boolean" label="Use Filtering?" help="" truevalue="true" falsevalue="false" />\n+      <when value="false" />\n+      <when value="true">\n+        <param type="boolean" name="precursor_recalculation" label="Recalculate Precursor?" />\n+\n+\n+        <conditional name="peak_picking">\n+          <param type="boolean" name="pick_peaks" label="Use Peak Picking?" truevalue="true" falsevalue="false" />\n+          <when value="false" />\n+          <when value="true">\n+            <param name="ms_levels" type="select" label="Peak Peaking - Apply to MS Levels">\n+              <option value="1">M'..b'<option value="default">yes (with default options)</option>\n+            <option value="advanced">yes (show advanced options) </option>\n+          </param>\n+          <when value="none" />\n+          <when value="default" />\n+          <when value="advanced">\n+            <param name="matching_tolerance" type="float" label="ETD Matching Tolernace" value="3.1">\n+            </param>\n+            <param name="matching_tolerance_units" type="select" label="Units for ETD Matching Tolerance">\n+              <option value="MZ" selected="true">mz</option>              \n+              <option value="PPM">ppm</option>\n+            </param>\n+            <param name="remove_precursor" type="select" label="ETD Remove Precursor">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>\n+            <param name="remove_charge_reduced" type="select" label="ETD Remove Charge Reduced">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>            \n+            <param name="remove_neutral_loss" type="select" label="ETD Remove Neutral Loss">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>\n+            <param name="blanket_removal" type="select" label="ETD Blanket Removal">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>\n+          </when>\n+        </conditional>\n+\n+\n+      </when>\n+    </conditional>\n+\n+    <conditional name="settings">\n+      <param name="settingsType" type="select" label="Advanced Settings" help="">\n+        <option value="default">Use Defaults</option>\n+        <option value="full">Full Parameter List</option>\n+      </param>\n+      <when value="default" />\n+      <when value="full">\n+        <param type="select" name="binary_encoding" label="Binary Encoding Precision">\n+          <option value="64" selected="true">64</option>\n+          <option value="32">32</option>\n+        </param>\n+        <param type="select" name="mz_encoding" label="m/z Encoding Precision">\n+          <option value="64" selected="true">64</option>\n+          <option value="32">32</option>\n+        </param>\n+        <param type="select" name="intensity_encoding" label="Intensity Encoding Precision" value="32">\n+          <option value="64">64</option>\n+          <option value="32" selected="true">32</option>\n+        </param>\n+        <param type="boolean" name="zlib" label="Use zlib">      \n+        </param>\n+      </when>\n+    </conditional>\n+\n+\n+  </inputs>\n+  <outputs>\n+    <data format="mzml" name="output">\n+      <change_format>\n+        <when input="output_type" value="mzXML" format="mzxml" />\n+        <when input="output_type" value="unindexed_mzXML" format="mzxml" />\n+        <when input="output_type" value="ms2" format="ms2" />\n+        <when input="output_type" value="mgf" format="mgf" />\n+      </change_format>\n+    </data>\n+  </outputs>\n+\n+  <requirements>\n+    <requirement type="package">proteowizard</requirement>    \n+  </requirements>\n+\n+  <help>\n+**What it does**\n+\n+Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available.\n+\n+You can view the original documentation here_.\n+    \n+.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html\n+\n+------\n+\n+**Citation**\n+\n+For the underlying tool, please cite `ProteoWizard: Open Source Software for Rapid Proteomics Tools Development. Darren Kessner; Matt Chambers; Robert Burke; David Agus; Parag Mallick. Bioinformatics 2008; doi: 10.1093/bioinformatics/btn323.`\n+\n+If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/galaxyp-toolshed-msconvert\n+\n+  </help>\n+</tool>\n'
b
diff -r 000000000000 -r 10f4a0356342 msconvert3.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert3.xml Wed Dec 19 00:10:08 2012 -0500
[
b'@@ -0,0 +1,377 @@\n+<tool id="msconvert3" name="msconvert3" version="0.1.0">\n+  <!-- BEGIN_VERSION_DEFAULT -->\n+  <description>Convert and filter a mass spec peak list</description>\n+  <!-- END_VERSION_DEFAULT -->\n+\n+  <command interpreter="python">\n+    msconvert_wrapper.py \n+    --input=${input}\n+    #if hasattr($input, \'display_name\')\n+    --input_name=\'${input.display_name}\'\n+    #end if\n+    --output=${output} \n+    ## BEGIN_VERSION_DEFAULT    \n+    --fromextension=${input.ext} \n+    ## END_VERSION_DEFAULT\n+\n+\n+    --toextension=${output_type} \n+\n+    #if $settings.settingsType == "full"\n+    --binaryencoding=${settings.binary_encoding} \n+    --mzencoding=${settings.mz_encoding} \n+    --intensityencoding=${settings.intensity_encoding}\n+    --zlib=${settings.zlib}\n+    #end if\n+\n+    #if $filtering.filtering_use\n+\n+    #if $filtering.precursor_recalculation.value\n+    --filter "precursorRecalculation"\n+    #end if\n+\n+    #if $filtering.peak_picking.pick_peaks\n+    --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels"\n+    #end if\n+\n+    #if str($filtering.activation) != "false"\n+    --filter "activation $filtering.activation"\n+    #end if\n+\n+    #if len($filtering.indices) > 0\n+    --filter "index\n+    #for $index in $filtering.indices\n+    [${index.from},${index.to}]\n+    #end for\n+    "\n+    #end if\n+\n+    #if len($filtering.scan_numbers) > 0\n+    --filter "scanNumber\n+    #for $scan_number in $filtering.scan_numbers\n+    [${scan_number.from},${scan_number.to}]\n+    #end for\n+    "\n+    #end if\n+\n+    #for threshold_entry in $filtering.threshold_repeat\n+    --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation"\n+    #end for\n+\n+\n+    #if $filtering.strip_it.value\n+    --filter "stripIT"\n+    #end if\n+\n+    #if $filtering.filter_mz_windows.do_filter\n+    --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]"\n+    #end if\n+\n+    \n+    #if $filtering.filter_ms_levels.do_filter\n+    --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]"\n+    #end if\n+\n+    #if str($filtering.etd_filtering.do_etd_filtering) == "default"\n+    --filter "ETDFilter"\n+    #end if\n+\n+    #if str($filtering.etd_filtering.do_etd_filtering) == "advanced"\n+    --filter "ETDFilter removePrecursor:$filtering.etd_filtering.remove_precursor removeChargeReduced:$filtering.etd_filtering.remove_charge_reduced  removeNeutralLoss:$filtering.etd_filtering.remove_neutral_loss  blanketRemoval:$filtering.etd_filtering.blanket_removal  MatchingTolerance:$filtering.etd_filtering.matching_tolerance $filtering.etd_filtering.matching_tolerance_units"\n+    #end if\n+\n+    ## BEGIN_VERSION_3\n+\n+    #if $filtering.precursor_refine.value\n+    --filter "precursorRefine"\n+    #end if\n+\n+    #if $filtering.ms2denoise.denoise\n+    --filter "MS2Denoise $filtering.ms2denoise.num_peaks $filtering.ms2denoise.window_width $filtering.ms2denoise.relax"\n+    #end if \n+\n+    #if str($filtering.ms2deisotope) == "true"\n+    --filter "MS2Deisotope"\n+    #end if\n+\n+    #if str($filtering.polarity) != "false"\n+    --filter "polarity $filtering.polarity"\n+    #end if\n+\n+    #if str($filtering.analyzer) != "false"\n+    --filter "analyzer $filtering.analyzer"\n+    #end if\n+\n+    ## END_VERSION_3\n+\n+    #end if\n+\n+  </command>\n+\n+  <inputs>\n+\n+    <!-- BEGIN_VERSION_DEFAULT -->\n+    <conditional name="type">\n+      <param name="input_type" type="select" label="Input Type">\n+        <option value="mzml">mzML</option>\n+        <option value="mzxml">mzXML</option>\n+        <option value="mgf">mgf</option>\n+        <option value="ms2">ms2</option>\n+      </param>\n+      <when value="mzml">\n+        <param format="mzml" name="input" type="data" label="Input mzML"/>\n+      </when>\n+      <when value="mzxml">\n+        <param format="mzxml" name="input" type="data" label="Input mzXML"/>\n+      </when>\n+      <when value="mgf">'..b'val">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>\n+          </when>\n+        </conditional>\n+\n+\n+        <!-- BEGIN_VERSION_3 -->\n+        <conditional name="ms2denoise">\n+          <param name="denoise" type="boolean" label="De-noise MS2 with moving window filter"  />\n+          <when value="true">\n+            <param name="num_peaks" label="De-noise: Number of peaks in window" value="6" type="integer" />\n+            <param name="window_width" type="float" label="De-noise: Window width (Daltons)" value="30" />\n+            <param name="relax" label="De-noise: Multicharge fragment relaxation" checked="true" type="boolean" truevalue="true" falsevalue="false" />\n+          </when>\n+          <when value="false" />\n+        </conditional>\n+        <param name="ms2deisotope" type="boolean" label="Deisotope MS2 using Markey method" help="" truevalue="true" falsevalue="false" />\n+\n+        <param name="polarity" type="select" label="Filter by Polarity">\n+          <option value="false" selected="true">no</option>\n+          <option value="positive">positive</option>\n+          <option value="negative">negative</option>\n+        </param>\n+\n+        <param name="analyzer" type="select" label="Filter by Analyzer">\n+          <option value="false" selected="true">no</option>\n+          <option value="quad">quad</option>\n+          <option value="orbi">orbi</option>\n+          <option value="FT">FT</option>\n+          <option value="IT">IT</option>\n+          <option value="TOF">TOF</option>\n+        </param>\n+        <!-- END_VERSION_3 -->\n+      </when>\n+    </conditional>\n+\n+    <conditional name="settings">\n+      <param name="settingsType" type="select" label="Advanced Settings" help="">\n+        <option value="default">Use Defaults</option>\n+        <option value="full">Full Parameter List</option>\n+      </param>\n+      <when value="default" />\n+      <when value="full">\n+        <param type="select" name="binary_encoding" label="Binary Encoding Precision">\n+          <option value="64" selected="true">64</option>\n+          <option value="32">32</option>\n+        </param>\n+        <param type="select" name="mz_encoding" label="m/z Encoding Precision">\n+          <option value="64" selected="true">64</option>\n+          <option value="32">32</option>\n+        </param>\n+        <param type="select" name="intensity_encoding" label="Intensity Encoding Precision" value="32">\n+          <option value="64">64</option>\n+          <option value="32" selected="true">32</option>\n+        </param>\n+        <param type="boolean" name="zlib" label="Use zlib">      \n+        </param>\n+      </when>\n+    </conditional>\n+\n+\n+  </inputs>\n+  <outputs>\n+    <data format="mzml" name="output">\n+      <change_format>\n+        <when input="output_type" value="mzXML" format="mzxml" />\n+        <when input="output_type" value="unindexed_mzXML" format="mzxml" />\n+        <when input="output_type" value="ms2" format="ms2" />\n+        <when input="output_type" value="mgf" format="mgf" />\n+      </change_format>\n+    </data>\n+  </outputs>\n+\n+  <requirements>\n+    <requirement type="package">proteowizard</requirement>    \n+  </requirements>\n+\n+  <help>\n+**What it does**\n+\n+Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available.\n+\n+You can view the original documentation here_.\n+    \n+.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html\n+\n+------\n+\n+**Citation**\n+\n+For the underlying tool, please cite `ProteoWizard: Open Source Software for Rapid Proteomics Tools Development. Darren Kessner; Matt Chambers; Robert Burke; David Agus; Parag Mallick. Bioinformatics 2008; doi: 10.1093/bioinformatics/btn323.`\n+\n+If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/galaxyp-toolshed-msconvert\n+\n+  </help>\n+</tool>\n'
b
diff -r 000000000000 -r 10f4a0356342 msconvert3_raw.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert3_raw.xml Wed Dec 19 00:10:08 2012 -0500
[
b'@@ -0,0 +1,358 @@\n+<tool id="msconvert3_raw" name="msconvert3_raw" version="0.1.0">\n+  <!-- BEGIN_VERSION_RAW -->\n+  <description>Convert and filter a Thermo Finnigan RAW file</description>\n+  <!-- END_VERSION_RAW -->\n+\n+  <command interpreter="python">\n+    msconvert_wrapper.py \n+    --input=${input}\n+    #if hasattr($input, \'display_name\')\n+    --input_name=\'${input.display_name}\'\n+    #end if\n+    --output=${output} \n+\n+    ## BEGIN_VERSION_RAW\n+    --fromextension=RAW\n+    ## END_VERSION_RAW\n+\n+    --toextension=${output_type} \n+\n+    #if $settings.settingsType == "full"\n+    --binaryencoding=${settings.binary_encoding} \n+    --mzencoding=${settings.mz_encoding} \n+    --intensityencoding=${settings.intensity_encoding}\n+    --zlib=${settings.zlib}\n+    #end if\n+\n+    #if $filtering.filtering_use\n+\n+    #if $filtering.precursor_recalculation.value\n+    --filter "precursorRecalculation"\n+    #end if\n+\n+    #if $filtering.peak_picking.pick_peaks\n+    --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels"\n+    #end if\n+\n+    #if str($filtering.activation) != "false"\n+    --filter "activation $filtering.activation"\n+    #end if\n+\n+    #if len($filtering.indices) > 0\n+    --filter "index\n+    #for $index in $filtering.indices\n+    [${index.from},${index.to}]\n+    #end for\n+    "\n+    #end if\n+\n+    #if len($filtering.scan_numbers) > 0\n+    --filter "scanNumber\n+    #for $scan_number in $filtering.scan_numbers\n+    [${scan_number.from},${scan_number.to}]\n+    #end for\n+    "\n+    #end if\n+\n+    #for threshold_entry in $filtering.threshold_repeat\n+    --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation"\n+    #end for\n+\n+\n+    #if $filtering.strip_it.value\n+    --filter "stripIT"\n+    #end if\n+\n+    #if $filtering.filter_mz_windows.do_filter\n+    --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]"\n+    #end if\n+\n+    \n+    #if $filtering.filter_ms_levels.do_filter\n+    --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]"\n+    #end if\n+\n+    #if str($filtering.etd_filtering.do_etd_filtering) == "default"\n+    --filter "ETDFilter"\n+    #end if\n+\n+    #if str($filtering.etd_filtering.do_etd_filtering) == "advanced"\n+    --filter "ETDFilter removePrecursor:$filtering.etd_filtering.remove_precursor removeChargeReduced:$filtering.etd_filtering.remove_charge_reduced  removeNeutralLoss:$filtering.etd_filtering.remove_neutral_loss  blanketRemoval:$filtering.etd_filtering.blanket_removal  MatchingTolerance:$filtering.etd_filtering.matching_tolerance $filtering.etd_filtering.matching_tolerance_units"\n+    #end if\n+\n+    ## BEGIN_VERSION_3\n+\n+    #if $filtering.precursor_refine.value\n+    --filter "precursorRefine"\n+    #end if\n+\n+    #if $filtering.ms2denoise.denoise\n+    --filter "MS2Denoise $filtering.ms2denoise.num_peaks $filtering.ms2denoise.window_width $filtering.ms2denoise.relax"\n+    #end if \n+\n+    #if str($filtering.ms2deisotope) == "true"\n+    --filter "MS2Deisotope"\n+    #end if\n+\n+    #if str($filtering.polarity) != "false"\n+    --filter "polarity $filtering.polarity"\n+    #end if\n+\n+    #if str($filtering.analyzer) != "false"\n+    --filter "analyzer $filtering.analyzer"\n+    #end if\n+\n+    ## END_VERSION_3\n+\n+    #end if\n+\n+  </command>\n+\n+  <inputs>\n+    <!-- BEGIN_VERSION_RAW -->\n+    <param format="RAW" name="input" type="data" label="Thermo Finnigan RAW Input"/>\n+    <!-- END_VERSION_RAW -->\n+\n+    <param name="output_type" type="select" label="Output Type">\n+      <option value="mzML">mzML (indexed)</option>\n+      <option value="unindexed_mzML">mzML (unindexed)</option>\n+      <option value="mzXML">mzXML (indexed)</option>      \n+      <option value="unindexed_mzXML">mzXML (unindexed)</option>\n+      <option value="mgf">mgf</option>\n+      <option value="ms2">ms2</option>  \n+    </param>    \n+    <conditional name="filtering">\n+      <para'..b'val">\n+              <option value="true" selected="true">yes</option>              \n+              <option value="false">no</option>\n+            </param>\n+          </when>\n+        </conditional>\n+\n+\n+        <!-- BEGIN_VERSION_3 -->\n+        <conditional name="ms2denoise">\n+          <param name="denoise" type="boolean" label="De-noise MS2 with moving window filter"  />\n+          <when value="true">\n+            <param name="num_peaks" label="De-noise: Number of peaks in window" value="6" type="integer" />\n+            <param name="window_width" type="float" label="De-noise: Window width (Daltons)" value="30" />\n+            <param name="relax" label="De-noise: Multicharge fragment relaxation" checked="true" type="boolean" truevalue="true" falsevalue="false" />\n+          </when>\n+          <when value="false" />\n+        </conditional>\n+        <param name="ms2deisotope" type="boolean" label="Deisotope MS2 using Markey method" help="" truevalue="true" falsevalue="false" />\n+\n+        <param name="polarity" type="select" label="Filter by Polarity">\n+          <option value="false" selected="true">no</option>\n+          <option value="positive">positive</option>\n+          <option value="negative">negative</option>\n+        </param>\n+\n+        <param name="analyzer" type="select" label="Filter by Analyzer">\n+          <option value="false" selected="true">no</option>\n+          <option value="quad">quad</option>\n+          <option value="orbi">orbi</option>\n+          <option value="FT">FT</option>\n+          <option value="IT">IT</option>\n+          <option value="TOF">TOF</option>\n+        </param>\n+        <!-- END_VERSION_3 -->\n+      </when>\n+    </conditional>\n+\n+    <conditional name="settings">\n+      <param name="settingsType" type="select" label="Advanced Settings" help="">\n+        <option value="default">Use Defaults</option>\n+        <option value="full">Full Parameter List</option>\n+      </param>\n+      <when value="default" />\n+      <when value="full">\n+        <param type="select" name="binary_encoding" label="Binary Encoding Precision">\n+          <option value="64" selected="true">64</option>\n+          <option value="32">32</option>\n+        </param>\n+        <param type="select" name="mz_encoding" label="m/z Encoding Precision">\n+          <option value="64" selected="true">64</option>\n+          <option value="32">32</option>\n+        </param>\n+        <param type="select" name="intensity_encoding" label="Intensity Encoding Precision" value="32">\n+          <option value="64">64</option>\n+          <option value="32" selected="true">32</option>\n+        </param>\n+        <param type="boolean" name="zlib" label="Use zlib">      \n+        </param>\n+      </when>\n+    </conditional>\n+\n+\n+  </inputs>\n+  <outputs>\n+    <data format="mzml" name="output">\n+      <change_format>\n+        <when input="output_type" value="mzXML" format="mzxml" />\n+        <when input="output_type" value="unindexed_mzXML" format="mzxml" />\n+        <when input="output_type" value="ms2" format="ms2" />\n+        <when input="output_type" value="mgf" format="mgf" />\n+      </change_format>\n+    </data>\n+  </outputs>\n+\n+  <requirements>\n+    <requirement type="package">proteowizard</requirement>    \n+  </requirements>\n+\n+  <help>\n+**What it does**\n+\n+Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available.\n+\n+You can view the original documentation here_.\n+    \n+.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html\n+\n+------\n+\n+**Citation**\n+\n+For the underlying tool, please cite `ProteoWizard: Open Source Software for Rapid Proteomics Tools Development. Darren Kessner; Matt Chambers; Robert Burke; David Agus; Parag Mallick. Bioinformatics 2008; doi: 10.1093/bioinformatics/btn323.`\n+\n+If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/galaxyp-toolshed-msconvert\n+\n+  </help>\n+</tool>\n'
b
diff -r 000000000000 -r 10f4a0356342 msconvert_raw_wrapper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert_raw_wrapper.py Wed Dec 19 00:10:08 2012 -0500
[
@@ -0,0 +1,124 @@
+#!/usr/bin/env python
+import optparse
+import os
+import sys
+import tempfile
+import shutil 
+import subprocess
+import re
+from os.path import basename
+import logging
+
+assert sys.version_info[:2] >= ( 2, 6 )
+
+log = logging.getLogger(__name__)
+working_directory = os.getcwd()
+tmp_stderr_name = tempfile.NamedTemporaryFile(dir = working_directory, suffix = '.stderr').name
+tmp_stdout_name = tempfile.NamedTemporaryFile(dir = working_directory, suffix = '.stdout').name
+
+def stop_err( msg ):
+    sys.stderr.write( "%s\n" % msg )
+    sys.exit()
+
+def read_stderr():
+    stderr = ''
+    if(os.path.exists(tmp_stderr_name)):
+        with open(tmp_stderr_name, 'rb') as tmp_stderr:
+            buffsize = 1048576
+            try:
+                while True:
+                    stderr += tmp_stderr.read(buffsize)
+                    if not stderr or len(stderr) % buffsize != 0:
+                        break
+            except OverflowError:
+                pass
+    return stderr
+    
+def execute(command, stdin=None):
+    with open(tmp_stderr_name, 'wb') as tmp_stderr:
+        with open(tmp_stdout_name, 'wb') as tmp_stdout:
+            proc = subprocess.Popen(args=command, shell=True, stderr=tmp_stderr.fileno(), stdout=tmp_stdout.fileno(), stdin=stdin, env=os.environ)
+            returncode = proc.wait()
+            if returncode != 0:
+                raise Exception, "Program returned with non-zero exit code %d. stderr: %s" % (returncode, read_stderr())
+
+def delete_file(path):
+    if os.path.exists(path):
+        try:
+            os.remove(path)
+        except:
+            pass
+
+def delete_directory(directory):
+    if os.path.exists(directory):
+        try:
+            shutil.rmtree(directory)
+        except:
+            pass
+
+def symlink(source, link_name):
+    import platform
+    if platform.system() == 'Windows':
+        import win32file
+        win32file.CreateSymbolicLink(source, link_name, 1)
+    else:
+        os.symlink(source, link_name)
+
+
+def copy_to_working_directory(data_file, relative_path):
+    if os.path.abspath(data_file) != os.path.abspath(relative_path):
+        shutil.copy(data_file, relative_path)
+    return relative_path
+
+def __main__():
+    run_script()
+
+#ENDTEMPLATE
+
+to_extensions = ['mzML', 'mzXML', 'mgf', 'txt', 'ms2', 'cms2']
+
+def str_to_bool(v):
+    """ From http://stackoverflow.com/questions/715417/converting-from-a-string-to-boolean-in-python """
+    return v.lower() in ["yes", "true", "t", "1"]
+
+
+def run_script():
+    parser = optparse.OptionParser()
+    parser.add_option('--input', dest='input')
+    parser.add_option('--output', dest='output')
+    parser.add_option('--fromextension', dest='fromextension')
+    parser.add_option('--toextension', dest='toextension', default='mzML', choices=to_extensions)
+    parser.add_option('--binaryencoding', dest='binaryencoding', choices=['32', '64'])
+    parser.add_option('--mzencoding', dest='mzencoding', choices=['32', '64'])
+    parser.add_option('--intensityencoding', dest='intensityencoding', choices=['32', '64'])
+    parser.add_option('--noindex', dest='noindex')
+    parser.add_option('--zlib', dest='zlib')
+    parser.add_option('--filter', dest='filter', action='append', default=[])
+
+    (options, args) = parser.parse_args()
+
+    filter_commands = ''
+    for filter in options.filter:
+        filter_commands = "%s --filter \"%s\"" % (filter_commands, filter)
+
+    input_file = 'input.%s' % options.fromextension
+    copy_to_working_directory(options.input, input_file)
+    os.mkdir('output')
+    cmd = "msconvert --%s -o output" % (options.toextension)
+    if str_to_bool(options.noindex):
+        cmd = "%s %s" % (cmd, "--noindex")
+    if str_to_bool(options.zlib):
+        cmd = "%s %s" % (cmd, "--zlib")
+    cmd = "%s --%s" % (cmd, options.binaryencoding)
+    cmd = "%s --mz%s" % (cmd, options.mzencoding)
+    cmd = "%s --inten%s" % (cmd, options.intensityencoding)
+    cmd = "%s %s" % (cmd, input_file)
+    cmd = "%s %s" % (cmd, filter_commands)
+    print cmd
+    execute(cmd)
+    output_files = os.listdir('output')
+    assert len(output_files) == 1
+    output_file = output_files[0]
+    shutil.copy(os.path.join('output', output_file), options.output)
+
+if __name__ == '__main__': __main__()
b
diff -r 000000000000 -r 10f4a0356342 msconvert_subset.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert_subset.xml Wed Dec 19 00:10:08 2012 -0500
b
@@ -0,0 +1,105 @@
+<tool id="msconvert_subset" name="Subset Peak List" version="0.1.0">
+  <description>against list of scan numbers or indices.</description>
+  <command interpreter="python">
+    msconvert_wrapper.py 
+    --input=${input} 
+    --output=${output} 
+    --fromextension=${input.ext} 
+    --toextension=${output_type} 
+    #if $settings.settingsType == "full"
+    --binaryencoding=${settings.binary_encoding} 
+    --mzencoding=${settings.mz_encoding} 
+    --intensityencoding=${settings.intensity_encoding}
+    --zlib=${settings.zlib}
+    #end if
+    --filter_table="$filter.filterList"
+    #if $filter.filterType == "scan_number"
+    --filter_table_type="number"
+    #else
+    --filter_table_type="index"
+    #end if
+  </command>
+
+  <inputs>
+    <conditional name="type">
+      <param name="input_type" type="select" label="Input Type">
+        <option value="mzml">mzML</option>
+        <option value="mzxml">mzXML</option>
+        <option value="mgf">mgf</option>
+        <option value="ms2">ms2</option>
+      </param>
+      <when value="mzml">
+        <param format="mzml" name="input" type="data" label="Input mzML"/>
+      </when>
+      <when value="mzxml">
+        <param format="mzxml" name="input" type="data" label="Input mzXML"/>
+      </when>
+      <when value="mgf">
+        <param format="mgf" name="input" type="data" label="Input mgf"/>
+      </when>
+      <when value="ms2">
+        <param format="ms2" name="input" type="data" label="Input ms2"/>
+      </when>
+    </conditional>
+    <param name="output_type" type="select" label="Output Type">
+      <option value="mzML">mzML (indexed)</option>
+      <option value="unindexed_mzML">mzML (unindexed)</option>
+      <option value="mzXML">mzXML (indexed)</option>      
+      <option value="unindexed_mzXML">mzXML (unindexed)</option>
+      <option value="mgf">mgf</option>
+      <option value="ms2">ms2</option>  
+    </param>
+    <conditional name="filter">
+      <param name="filterType" type="select" label="Filter by" help="">
+        <option value="scan_number" selected="true">Scan Number</option>
+        <option value="scan_index">Scan Index</option>
+      </param>    
+      <when value="scan_number">
+        <param format="text" name="filterList" type="data" label="Scan Numbers"/>
+      </when>
+      <when value="scan_index">
+        <param format="text" name="filterList" type="data" label="Scan Indices"/>
+      </when>
+    </conditional>
+    <conditional name="settings">
+      <param name="settingsType" type="select" label="Advanced msconvert Settings" help="">
+        <option value="default">Use Defaults</option>
+        <option value="full">Full Parameter List</option>
+      </param>
+      <when value="default" />
+      <when value="full">
+        <param type="select" name="binary_encoding" label="Binary Encoding Precision">
+          <option value="64" selected="true">64</option>
+          <option value="32">32</option>
+        </param>
+        <param type="select" name="mz_encoding" label="m/z Encoding Precision">
+          <option value="64" selected="true">64</option>
+          <option value="32">32</option>
+        </param>
+        <param type="select" name="intensity_encoding" label="Intensity Encoding Precision" value="32">
+          <option value="64">64</option>
+          <option value="32" selected="true">32</option>
+        </param>
+        <param type="boolean" name="zlib" label="Use zlib">      
+        </param>
+      </when>
+    </conditional>
+  </inputs>
+  <outputs>
+    <data format="mzml" name="output">
+      <change_format>
+        <when input="output_type" value="mzXML" format="mzxml" />
+        <when input="output_type" value="unindexed_mzXML" format="mzxml" />
+        <when input="output_type" value="ms2" format="ms2" />
+        <when input="output_type" value="mgf" format="mgf" />
+      </change_format>
+    </data>
+  </outputs>
+
+  <requirements>
+    <requirement type="package">proteowizard</requirement>    
+  </requirements>
+
+  <help>
+  </help>
+</tool>
b
diff -r 000000000000 -r 10f4a0356342 msconvert_wrapper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert_wrapper.py Wed Dec 19 00:10:08 2012 -0500
[
b'@@ -0,0 +1,272 @@\n+#!/usr/bin/env python\n+import optparse\n+import os\n+import sys\n+import tempfile\n+import shutil\n+import subprocess\n+import re\n+import logging\n+\n+assert sys.version_info[:2] >= (2, 6)\n+\n+log = logging.getLogger(__name__)\n+working_directory = os.getcwd()\n+tmp_stderr_name = tempfile.NamedTemporaryFile(dir=working_directory, suffix=\'.stderr\').name\n+tmp_stdout_name = tempfile.NamedTemporaryFile(dir=working_directory, suffix=\'.stdout\').name\n+\n+\n+def stop_err(msg):\n+    sys.stderr.write("%s\\n" % msg)\n+    sys.exit()\n+\n+\n+def read_stderr():\n+    stderr = \'\'\n+    if(os.path.exists(tmp_stderr_name)):\n+        with open(tmp_stderr_name, \'rb\') as tmp_stderr:\n+            buffsize = 1048576\n+            try:\n+                while True:\n+                    stderr += tmp_stderr.read(buffsize)\n+                    if not stderr or len(stderr) % buffsize != 0:\n+                        break\n+            except OverflowError:\n+                pass\n+    return stderr\n+\n+\n+def execute(command, stdin=None):\n+    try:\n+        with open(tmp_stderr_name, \'wb\') as tmp_stderr:\n+            with open(tmp_stdout_name, \'wb\') as tmp_stdout:\n+                proc = subprocess.Popen(args=command, shell=True, stderr=tmp_stderr.fileno(), stdout=tmp_stdout.fileno(), stdin=stdin, env=os.environ)\n+                returncode = proc.wait()\n+                if returncode != 0:\n+                    raise Exception("Program returned with non-zero exit code %d. stderr: %s" % (returncode, read_stderr()))\n+    finally:\n+        print open(tmp_stderr_name, "r").read()\n+        print open(tmp_stdout_name, "r").read()\n+\n+\n+def delete_file(path):\n+    if os.path.exists(path):\n+        try:\n+            os.remove(path)\n+        except:\n+            pass\n+\n+\n+def delete_directory(directory):\n+    if os.path.exists(directory):\n+        try:\n+            shutil.rmtree(directory)\n+        except:\n+            pass\n+\n+\n+def symlink(source, link_name):\n+    import platform\n+    if platform.system() == \'Windows\':\n+        try:\n+            import win32file\n+            win32file.CreateSymbolicLink(source, link_name, 1)\n+        except:\n+            shutil.copy(source, link_name)\n+    else:\n+        os.symlink(source, link_name)\n+\n+\n+def copy_to_working_directory(data_file, relative_path):\n+    if os.path.abspath(data_file) != os.path.abspath(relative_path):\n+        symlink(data_file, relative_path)\n+    return relative_path\n+\n+\n+def __main__():\n+    run_script()\n+\n+#ENDTEMPLATE\n+\n+to_extensions = [\'mzML\', \'mzXML\', \'unindexed_mzML\', \'unindexed_mzXML\', \'mgf\', \'txt\', \'ms2\', \'cms2\']\n+\n+\n+def str_to_bool(v):\n+    """ From http://stackoverflow.com/questions/715417/converting-from-a-string-to-boolean-in-python """\n+    return v.lower() in ["yes", "true", "t", "1"]\n+\n+\n+def _add_filter(filters_file, contents):\n+    filters_file.write("filter=%s\\n" % contents)\n+\n+\n+def _skip_line(options, file_num, line_parts):\n+    file_num_column = options.filter_table_file_column\n+    if not file_num_column:\n+        return False\n+    else:\n+        target_file_num_val = str(file_num).strip()\n+        query_file_num_val = line_parts[int(file_num_column) - 1].strip()\n+        #print "target %s, query %s" % (target_file_num_val, query_file_num_val)\n+        return target_file_num_val != query_file_num_val\n+\n+\n+def _read_table_numbers(path, options, file_num=None):\n+    unique_numbers = set([])\n+    column_num = options.filter_table_column\n+    input = open(path, "r")\n+    first_line = True\n+    for line in input:\n+        if not line:\n+            continue\n+        line = line.strip()\n+        if line.startswith("#"):\n+            first_line = False\n+            continue\n+        if column_num == None:\n+            column = line\n+        else:\n+            line_parts = line.split("\\t")\n+            if _skip_line(options, file_num, line_parts):\n+                continue\n+            column = line_parts[int(column_num) - 1]\n+        match = re.match("\\d+", column)\n+        if match:\n+   '..b'ns.intensityencoding)\n+    return cmd\n+\n+\n+def _run(base_cmd, output_dir=\'output\', inputs=[], debug=False):\n+    inputs_as_str = " ".join([\'%s\' % shellquote(input) for input in inputs])\n+    os.mkdir(output_dir)\n+    cmd = "%s -o %s %s" % (base_cmd, shellquote(output_dir), inputs_as_str)\n+    if debug:\n+        print cmd\n+    execute(cmd)\n+    output_files = os.listdir(output_dir)\n+    assert len(output_files) == 1\n+    output_file = output_files[0]\n+    return os.path.join(output_dir, output_file)\n+\n+\n+def run_script():\n+    parser = optparse.OptionParser()\n+    parser.add_option(\'--input\', dest=\'inputs\', action=\'append\', default=[])\n+    parser.add_option(\'--input_name\', dest=\'input_names\', action=\'append\', default=[])\n+    parser.add_option(\'--output\', dest=\'output\')\n+    parser.add_option(\'--fromextension\', dest=\'fromextension\')\n+    parser.add_option(\'--toextension\', dest=\'toextension\', default=\'mzML\', choices=to_extensions)\n+    parser.add_option(\'--binaryencoding\', dest=\'binaryencoding\', choices=[\'32\', \'64\'])\n+    parser.add_option(\'--mzencoding\', dest=\'mzencoding\', choices=[\'32\', \'64\'])\n+    parser.add_option(\'--intensityencoding\', dest=\'intensityencoding\', choices=[\'32\', \'64\'])\n+    parser.add_option(\'--zlib\', dest=\'zlib\', default="false")\n+    parser.add_option(\'--filter\', dest=\'filter\', action=\'append\', default=[])\n+    parser.add_option(\'--filters_file\', dest=\'filters_file\', default=None)\n+    parser.add_option(\'--filter_table\', default=None)\n+    parser.add_option(\'--filter_table_type\', default=\'index\', choices=[\'index\', \'number\'])\n+    parser.add_option(\'--filter_table_column\', default=None)\n+    parser.add_option(\'--filter_table_file_column\', default=None)\n+    parser.add_option(\'--debug\', dest=\'debug\', action=\'store_true\', default=False)\n+\n+    (options, args) = parser.parse_args()\n+    if len(options.inputs) < 1:\n+        stop_err("No input files to msconvert specified")\n+    if len(options.input_names) > 0 and len(options.input_names) != len(options.inputs):\n+        stop_err("Number(s) of supplied input names and input files do not match")\n+    if not options.output:\n+        stop_err("Must specify output location")\n+    input_files = []\n+    for i, input in enumerate(options.inputs):\n+        input_base = None\n+        if len(options.input_names) > i:\n+            input_base = options.input_names[i]\n+        if not input_base:\n+            input_base = \'input%s\' % i\n+        if not input_base.lower().endswith(options.fromextension.lower()):\n+            input_file = \'%s.%s\' % (input_base, options.fromextension)\n+        else:\n+            input_file = input_base\n+        input_file = input_file\n+        copy_to_working_directory(input, input_file)\n+        input_files.append(input_file)\n+\n+    cmd = _build_base_cmd(options)\n+    file_column = options.filter_table_file_column\n+    if not file_column:\n+        # Apply same filters to all files, just create a unviersal filter files\n+        # and run msconvert once.\n+        filters_file_path = _create_filters_file(options, debug=options.debug)\n+        cmd = "%s -c %s" % (cmd, filters_file_path)\n+    else:\n+        # Dispatching on a column to filter different files differently, need to filter\n+        # each input once with msconvert and then merge once.\n+        filtered_files = []\n+        for index, input_file in enumerate(input_files):\n+            filters_file_path = _create_filters_file(options, index + 1, debug=options.debug)\n+            filter_cmd = "%s -c %s" % (cmd, filters_file_path)\n+            filtered_output_file = _run(filter_cmd, output_dir=\'output%d\' % index, inputs=[input_file], debug=options.debug)\n+            filtered_files.append(filtered_output_file)\n+        input_files = filtered_files\n+    if len(input_files) > 1:\n+        cmd = "%s --merge" % cmd\n+    output_file = _run(cmd, output_dir=\'output\', inputs=input_files, debug=options.debug)\n+    shutil.copy(output_file, options.output)\n+\n+\n+if __name__ == \'__main__\':\n+    __main__()\n'
b
diff -r 000000000000 -r 10f4a0356342 update.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/update.sh Wed Dec 19 00:10:08 2012 -0500
[
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+LICENSE_FILE=LICENSE
+# Ensure repository contains license file.
+if [ ! -e "$LICENSE_FILE" ];
+then
+    wget http://www.apache.org/licenses/LICENSE-2.0.txt -O "$LICENSE_FILE"
+fi
+
+# Run repository specific update actions.
+if [ -f update_repo.sh ];
+then
+    ./update_repo.sh
+fi
+
+wget https://raw.github.com/gist/3749747/README_GALAXYP.md -O README_GALAXYP.md
+
+# Create repository README
+if [ ! -e README_REPO.md ];
+then
+    echo "TODO: Document this tool repository." > README_REPO.md
+fi
+cat README_REPO.md README_GALAXYP.md > README.md
+
+
+# If version file exists, update all tools to this version
+VERSION_FILE=version
+if [ -e "$VERSION_FILE" ];
+then
+    VERSION=`cat $VERSION_FILE`
+    
+    # Replace tool version in each tool XML file   `
+    find -iname "*xml" -exec sed -i'' -e '0,/version="\(.\+\)"/s/version="\(.\+\)"/version="'$VERSION'"/1g' {} \;
+
+fi
b
diff -r 000000000000 -r 10f4a0356342 update_repo.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/update_repo.sh Wed Dec 19 00:10:08 2012 -0500
b
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+sed -e '/BEGIN_VERSION_RAW/,/END_VERSION_RAW/d'  -e '/BEGIN_VERSION_3/,/END_VERSION_3/d'  -e 's/\$VERSION/2/g' -e 's/\$DESCRIPTION//g' msconvert.xml.template > msconvert2.xml
+sed -e '/BEGIN_VERSION_DEFAULT/,/END_VERSION_DEFAULT/d' -e '/BEGIN_VERSION_3/,/END_VERSION_3/d'  -e 's/\$VERSION/2/g' -e 's/\$DESCRIPTION/_raw/g' msconvert.xml.template > msconvert2_raw.xml
+
+
+sed -e '/BEGIN_VERSION_RAW/,/END_VERSION_RAW/d' -e 's/\$VERSION/3/g' -e 's/\$DESCRIPTION//g' msconvert.xml.template > msconvert3.xml
+sed -e '/BEGIN_VERSION_DEFAULT/,/END_VERSION_DEFAULT/d' -e 's/\$VERSION/3/g' -e 's/\$DESCRIPTION/_raw/g' msconvert.xml.template > msconvert3_raw.xml
+
b
diff -r 000000000000 -r 10f4a0356342 version
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/version Wed Dec 19 00:10:08 2012 -0500
b
@@ -0,0 +1,1 @@
+0.1.0
\ No newline at end of file