# HG changeset patch # User galaxyp # Date 1355893808 18000 # Node ID 10f4a0356342f7f5f8336684a3adcc4108021cc8 Uploaded 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 @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2012 University of Minnesota + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. 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 @@ -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. 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 @@ -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. 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 @@ -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+). 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 @@ -0,0 +1,386 @@ + + + Convert and filter a Thermo Finnigan RAW file + + + Convert and filter a mass spec peak list + + + + msconvert_wrapper.py + --input=${input} + #if hasattr($input, 'display_name') + --input_name='${input.display_name}' + #end if + --output=${output} + ## BEGIN_VERSION_DEFAULT + --fromextension=${input.ext} + ## END_VERSION_DEFAULT + + ## BEGIN_VERSION_RAW + --fromextension=RAW + ## END_VERSION_RAW + + --toextension=${output_type} + + #if $settings.settingsType == "full" + --binaryencoding=${settings.binary_encoding} + --mzencoding=${settings.mz_encoding} + --intensityencoding=${settings.intensity_encoding} + --zlib=${settings.zlib} + #end if + + #if $filtering.filtering_use + + #if $filtering.precursor_recalculation.value + --filter "precursorRecalculation" + #end if + + #if $filtering.peak_picking.pick_peaks + --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels" + #end if + + #if str($filtering.activation) != "false" + --filter "activation $filtering.activation" + #end if + + #if len($filtering.indices) > 0 + --filter "index + #for $index in $filtering.indices + [${index.from},${index.to}] + #end for + " + #end if + + #if len($filtering.scan_numbers) > 0 + --filter "scanNumber + #for $scan_number in $filtering.scan_numbers + [${scan_number.from},${scan_number.to}] + #end for + " + #end if + + #for threshold_entry in $filtering.threshold_repeat + --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation" + #end for + + + #if $filtering.strip_it.value + --filter "stripIT" + #end if + + #if $filtering.filter_mz_windows.do_filter + --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]" + #end if + + + #if $filtering.filter_ms_levels.do_filter + --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]" + #end if + + #if str($filtering.etd_filtering.do_etd_filtering) == "default" + --filter "ETDFilter" + #end if + + #if str($filtering.etd_filtering.do_etd_filtering) == "advanced" + --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" + #end if + + ## BEGIN_VERSION_3 + + #if $filtering.precursor_refine.value + --filter "precursorRefine" + #end if + + #if $filtering.ms2denoise.denoise + --filter "MS2Denoise $filtering.ms2denoise.num_peaks $filtering.ms2denoise.window_width $filtering.ms2denoise.relax" + #end if + + #if str($filtering.ms2deisotope) == "true" + --filter "MS2Deisotope" + #end if + + #if str($filtering.polarity) != "false" + --filter "polarity $filtering.polarity" + #end if + + #if str($filtering.analyzer) != "false" + --filter "analyzer $filtering.analyzer" + #end if + + ## END_VERSION_3 + + #end if + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + proteowizard + + + +**What it does** + +Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available. + +You can view the original documentation here_. + +.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html + +------ + +**Citation** + +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.` + +If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/galaxyp-toolshed-msconvert + + + 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 @@ -0,0 +1,314 @@ + + + Convert and filter a mass spec peak list + + + + msconvert_wrapper.py + --input=${input} + #if hasattr($input, 'display_name') + --input_name='${input.display_name}' + #end if + --output=${output} + ## BEGIN_VERSION_DEFAULT + --fromextension=${input.ext} + ## END_VERSION_DEFAULT + + + --toextension=${output_type} + + #if $settings.settingsType == "full" + --binaryencoding=${settings.binary_encoding} + --mzencoding=${settings.mz_encoding} + --intensityencoding=${settings.intensity_encoding} + --zlib=${settings.zlib} + #end if + + #if $filtering.filtering_use + + #if $filtering.precursor_recalculation.value + --filter "precursorRecalculation" + #end if + + #if $filtering.peak_picking.pick_peaks + --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels" + #end if + + #if str($filtering.activation) != "false" + --filter "activation $filtering.activation" + #end if + + #if len($filtering.indices) > 0 + --filter "index + #for $index in $filtering.indices + [${index.from},${index.to}] + #end for + " + #end if + + #if len($filtering.scan_numbers) > 0 + --filter "scanNumber + #for $scan_number in $filtering.scan_numbers + [${scan_number.from},${scan_number.to}] + #end for + " + #end if + + #for threshold_entry in $filtering.threshold_repeat + --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation" + #end for + + + #if $filtering.strip_it.value + --filter "stripIT" + #end if + + #if $filtering.filter_mz_windows.do_filter + --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]" + #end if + + + #if $filtering.filter_ms_levels.do_filter + --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]" + #end if + + #if str($filtering.etd_filtering.do_etd_filtering) == "default" + --filter "ETDFilter" + #end if + + #if str($filtering.etd_filtering.do_etd_filtering) == "advanced" + --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" + #end if + + + #end if + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + proteowizard + + + +**What it does** + +Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available. + +You can view the original documentation here_. + +.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html + +------ + +**Citation** + +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.` + +If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/galaxyp-toolshed-msconvert + + + 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 @@ -0,0 +1,295 @@ + + + Convert and filter a Thermo Finnigan RAW file + + + + msconvert_wrapper.py + --input=${input} + #if hasattr($input, 'display_name') + --input_name='${input.display_name}' + #end if + --output=${output} + + ## BEGIN_VERSION_RAW + --fromextension=RAW + ## END_VERSION_RAW + + --toextension=${output_type} + + #if $settings.settingsType == "full" + --binaryencoding=${settings.binary_encoding} + --mzencoding=${settings.mz_encoding} + --intensityencoding=${settings.intensity_encoding} + --zlib=${settings.zlib} + #end if + + #if $filtering.filtering_use + + #if $filtering.precursor_recalculation.value + --filter "precursorRecalculation" + #end if + + #if $filtering.peak_picking.pick_peaks + --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels" + #end if + + #if str($filtering.activation) != "false" + --filter "activation $filtering.activation" + #end if + + #if len($filtering.indices) > 0 + --filter "index + #for $index in $filtering.indices + [${index.from},${index.to}] + #end for + " + #end if + + #if len($filtering.scan_numbers) > 0 + --filter "scanNumber + #for $scan_number in $filtering.scan_numbers + [${scan_number.from},${scan_number.to}] + #end for + " + #end if + + #for threshold_entry in $filtering.threshold_repeat + --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation" + #end for + + + #if $filtering.strip_it.value + --filter "stripIT" + #end if + + #if $filtering.filter_mz_windows.do_filter + --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]" + #end if + + + #if $filtering.filter_ms_levels.do_filter + --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]" + #end if + + #if str($filtering.etd_filtering.do_etd_filtering) == "default" + --filter "ETDFilter" + #end if + + #if str($filtering.etd_filtering.do_etd_filtering) == "advanced" + --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" + #end if + + + #end if + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + proteowizard + + + +**What it does** + +Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available. + +You can view the original documentation here_. + +.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html + +------ + +**Citation** + +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.` + +If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/galaxyp-toolshed-msconvert + + + 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 @@ -0,0 +1,377 @@ + + + Convert and filter a mass spec peak list + + + + msconvert_wrapper.py + --input=${input} + #if hasattr($input, 'display_name') + --input_name='${input.display_name}' + #end if + --output=${output} + ## BEGIN_VERSION_DEFAULT + --fromextension=${input.ext} + ## END_VERSION_DEFAULT + + + --toextension=${output_type} + + #if $settings.settingsType == "full" + --binaryencoding=${settings.binary_encoding} + --mzencoding=${settings.mz_encoding} + --intensityencoding=${settings.intensity_encoding} + --zlib=${settings.zlib} + #end if + + #if $filtering.filtering_use + + #if $filtering.precursor_recalculation.value + --filter "precursorRecalculation" + #end if + + #if $filtering.peak_picking.pick_peaks + --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels" + #end if + + #if str($filtering.activation) != "false" + --filter "activation $filtering.activation" + #end if + + #if len($filtering.indices) > 0 + --filter "index + #for $index in $filtering.indices + [${index.from},${index.to}] + #end for + " + #end if + + #if len($filtering.scan_numbers) > 0 + --filter "scanNumber + #for $scan_number in $filtering.scan_numbers + [${scan_number.from},${scan_number.to}] + #end for + " + #end if + + #for threshold_entry in $filtering.threshold_repeat + --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation" + #end for + + + #if $filtering.strip_it.value + --filter "stripIT" + #end if + + #if $filtering.filter_mz_windows.do_filter + --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]" + #end if + + + #if $filtering.filter_ms_levels.do_filter + --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]" + #end if + + #if str($filtering.etd_filtering.do_etd_filtering) == "default" + --filter "ETDFilter" + #end if + + #if str($filtering.etd_filtering.do_etd_filtering) == "advanced" + --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" + #end if + + ## BEGIN_VERSION_3 + + #if $filtering.precursor_refine.value + --filter "precursorRefine" + #end if + + #if $filtering.ms2denoise.denoise + --filter "MS2Denoise $filtering.ms2denoise.num_peaks $filtering.ms2denoise.window_width $filtering.ms2denoise.relax" + #end if + + #if str($filtering.ms2deisotope) == "true" + --filter "MS2Deisotope" + #end if + + #if str($filtering.polarity) != "false" + --filter "polarity $filtering.polarity" + #end if + + #if str($filtering.analyzer) != "false" + --filter "analyzer $filtering.analyzer" + #end if + + ## END_VERSION_3 + + #end if + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + proteowizard + + + +**What it does** + +Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available. + +You can view the original documentation here_. + +.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html + +------ + +**Citation** + +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.` + +If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/galaxyp-toolshed-msconvert + + + 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 @@ -0,0 +1,358 @@ + + + Convert and filter a Thermo Finnigan RAW file + + + + msconvert_wrapper.py + --input=${input} + #if hasattr($input, 'display_name') + --input_name='${input.display_name}' + #end if + --output=${output} + + ## BEGIN_VERSION_RAW + --fromextension=RAW + ## END_VERSION_RAW + + --toextension=${output_type} + + #if $settings.settingsType == "full" + --binaryencoding=${settings.binary_encoding} + --mzencoding=${settings.mz_encoding} + --intensityencoding=${settings.intensity_encoding} + --zlib=${settings.zlib} + #end if + + #if $filtering.filtering_use + + #if $filtering.precursor_recalculation.value + --filter "precursorRecalculation" + #end if + + #if $filtering.peak_picking.pick_peaks + --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels" + #end if + + #if str($filtering.activation) != "false" + --filter "activation $filtering.activation" + #end if + + #if len($filtering.indices) > 0 + --filter "index + #for $index in $filtering.indices + [${index.from},${index.to}] + #end for + " + #end if + + #if len($filtering.scan_numbers) > 0 + --filter "scanNumber + #for $scan_number in $filtering.scan_numbers + [${scan_number.from},${scan_number.to}] + #end for + " + #end if + + #for threshold_entry in $filtering.threshold_repeat + --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation" + #end for + + + #if $filtering.strip_it.value + --filter "stripIT" + #end if + + #if $filtering.filter_mz_windows.do_filter + --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]" + #end if + + + #if $filtering.filter_ms_levels.do_filter + --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]" + #end if + + #if str($filtering.etd_filtering.do_etd_filtering) == "default" + --filter "ETDFilter" + #end if + + #if str($filtering.etd_filtering.do_etd_filtering) == "advanced" + --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" + #end if + + ## BEGIN_VERSION_3 + + #if $filtering.precursor_refine.value + --filter "precursorRefine" + #end if + + #if $filtering.ms2denoise.denoise + --filter "MS2Denoise $filtering.ms2denoise.num_peaks $filtering.ms2denoise.window_width $filtering.ms2denoise.relax" + #end if + + #if str($filtering.ms2deisotope) == "true" + --filter "MS2Deisotope" + #end if + + #if str($filtering.polarity) != "false" + --filter "polarity $filtering.polarity" + #end if + + #if str($filtering.analyzer) != "false" + --filter "analyzer $filtering.analyzer" + #end if + + ## END_VERSION_3 + + #end if + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + proteowizard + + + +**What it does** + +Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available. + +You can view the original documentation here_. + +.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html + +------ + +**Citation** + +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.` + +If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/galaxyp-toolshed-msconvert + + + 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__() 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 @@ -0,0 +1,105 @@ + + against list of scan numbers or indices. + + 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + proteowizard + + + + + 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 @@ -0,0 +1,272 @@ +#!/usr/bin/env python +import optparse +import os +import sys +import tempfile +import shutil +import subprocess +import re +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): + try: + 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())) + finally: + print open(tmp_stderr_name, "r").read() + print open(tmp_stdout_name, "r").read() + + +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': + try: + import win32file + win32file.CreateSymbolicLink(source, link_name, 1) + except: + shutil.copy(source, link_name) + 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): + symlink(data_file, relative_path) + return relative_path + + +def __main__(): + run_script() + +#ENDTEMPLATE + +to_extensions = ['mzML', 'mzXML', 'unindexed_mzML', 'unindexed_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 _add_filter(filters_file, contents): + filters_file.write("filter=%s\n" % contents) + + +def _skip_line(options, file_num, line_parts): + file_num_column = options.filter_table_file_column + if not file_num_column: + return False + else: + target_file_num_val = str(file_num).strip() + query_file_num_val = line_parts[int(file_num_column) - 1].strip() + #print "target %s, query %s" % (target_file_num_val, query_file_num_val) + return target_file_num_val != query_file_num_val + + +def _read_table_numbers(path, options, file_num=None): + unique_numbers = set([]) + column_num = options.filter_table_column + input = open(path, "r") + first_line = True + for line in input: + if not line: + continue + line = line.strip() + if line.startswith("#"): + first_line = False + continue + if column_num == None: + column = line + else: + line_parts = line.split("\t") + if _skip_line(options, file_num, line_parts): + continue + column = line_parts[int(column_num) - 1] + match = re.match("\d+", column) + if match: + unique_numbers.add(int(match.group())) + first_line = False + return unique_numbers + + +# TODO: Test on windows +def shellquote(s): + return "'" + s.replace("'", "'\\''") + "'" + + +def _add_filter_line_from_file(filter_file, options, file_num=None): + file = options.filter_table + if not file: + return + numbers = _read_table_numbers(file, options, file_num) + msconvert_int_set = " ".join([str(number) for number in numbers]) + filter_type = options.filter_table_type + if filter_type == 'number': + filter_prefix = 'scanNumber' + else: + filter_prefix = 'index' + _add_filter(filter_file, "%s %s" % (filter_prefix, msconvert_int_set)) + + +def _create_filters_file(options, file_num=None, debug=False): + suffix = "" if not file_num else str(file_num) + filters_file_path = "filters%s" % suffix + filters_file = open(filters_file_path, "w") + if options.filters_file: + filters_file.write(open(options.filters_file, "r").read()) + for filter in options.filter: + _add_filter(filters_file, filter) + _add_filter_line_from_file(filters_file, options, file_num=file_num) + + filters_file.close() + if debug: + print open(filters_file_path, "r").read() + return filters_file_path + + +def _build_base_cmd(options): + to_extension = options.toextension + if to_extension.startswith("unindexed_"): + to_extension = to_extension[len("unindexed_"):] + to_params = "--noindex" + else: + to_params = "" + cmd = "msconvert --%s %s" % (to_extension, to_params) + if str_to_bool(options.zlib): + cmd = "%s %s" % (cmd, "--zlib") + if options.binaryencoding: + cmd = "%s --%s" % (cmd, options.binaryencoding) + if options.mzencoding: + cmd = "%s --mz%s" % (cmd, options.mzencoding) + if options.intensityencoding: + cmd = "%s --inten%s" % (cmd, options.intensityencoding) + return cmd + + +def _run(base_cmd, output_dir='output', inputs=[], debug=False): + inputs_as_str = " ".join(['%s' % shellquote(input) for input in inputs]) + os.mkdir(output_dir) + cmd = "%s -o %s %s" % (base_cmd, shellquote(output_dir), inputs_as_str) + if debug: + print cmd + execute(cmd) + output_files = os.listdir(output_dir) + assert len(output_files) == 1 + output_file = output_files[0] + return os.path.join(output_dir, output_file) + + +def run_script(): + parser = optparse.OptionParser() + parser.add_option('--input', dest='inputs', action='append', default=[]) + parser.add_option('--input_name', dest='input_names', action='append', default=[]) + 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('--zlib', dest='zlib', default="false") + parser.add_option('--filter', dest='filter', action='append', default=[]) + parser.add_option('--filters_file', dest='filters_file', default=None) + parser.add_option('--filter_table', default=None) + parser.add_option('--filter_table_type', default='index', choices=['index', 'number']) + parser.add_option('--filter_table_column', default=None) + parser.add_option('--filter_table_file_column', default=None) + parser.add_option('--debug', dest='debug', action='store_true', default=False) + + (options, args) = parser.parse_args() + if len(options.inputs) < 1: + stop_err("No input files to msconvert specified") + if len(options.input_names) > 0 and len(options.input_names) != len(options.inputs): + stop_err("Number(s) of supplied input names and input files do not match") + if not options.output: + stop_err("Must specify output location") + input_files = [] + for i, input in enumerate(options.inputs): + input_base = None + if len(options.input_names) > i: + input_base = options.input_names[i] + if not input_base: + input_base = 'input%s' % i + if not input_base.lower().endswith(options.fromextension.lower()): + input_file = '%s.%s' % (input_base, options.fromextension) + else: + input_file = input_base + input_file = input_file + copy_to_working_directory(input, input_file) + input_files.append(input_file) + + cmd = _build_base_cmd(options) + file_column = options.filter_table_file_column + if not file_column: + # Apply same filters to all files, just create a unviersal filter files + # and run msconvert once. + filters_file_path = _create_filters_file(options, debug=options.debug) + cmd = "%s -c %s" % (cmd, filters_file_path) + else: + # Dispatching on a column to filter different files differently, need to filter + # each input once with msconvert and then merge once. + filtered_files = [] + for index, input_file in enumerate(input_files): + filters_file_path = _create_filters_file(options, index + 1, debug=options.debug) + filter_cmd = "%s -c %s" % (cmd, filters_file_path) + filtered_output_file = _run(filter_cmd, output_dir='output%d' % index, inputs=[input_file], debug=options.debug) + filtered_files.append(filtered_output_file) + input_files = filtered_files + if len(input_files) > 1: + cmd = "%s --merge" % cmd + output_file = _run(cmd, output_dir='output', inputs=input_files, debug=options.debug) + shutil.copy(output_file, options.output) + + +if __name__ == '__main__': + __main__() 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 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 @@ -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 + 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 @@ -0,0 +1,1 @@ +0.1.0 \ No newline at end of file