# HG changeset patch
# User galaxyp
# Date 1355894575 18000
# Node ID 7dcb26ce559ce92007c05f910460cca55803c08f
Uploaded
diff -r 000000000000 -r 7dcb26ce559c LICENSE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LICENSE Wed Dec 19 00:22:55 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 [yyyy] [name of copyright owner]
+
+ 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 7dcb26ce559c README.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md Wed Dec 19 00:22:55 2012 -0500
@@ -0,0 +1,23 @@
+TODO: Document this tool repository.
+# 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 7dcb26ce559c README_GALAXYP.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README_GALAXYP.md Wed Dec 19 00:22:55 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 7dcb26ce559c README_REPO.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README_REPO.md Wed Dec 19 00:22:55 2012 -0500
@@ -0,0 +1,6 @@
+# proteinpilot
+
+Tools for working with ProteinPilot. ProteinPilot only runs on Windows
+machines and will require the use of the LWR job runner
+(https://bitbucket.org/jmchilton/lwr).
+
diff -r 000000000000 -r 7dcb26ce559c proteinpilot.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/proteinpilot.xml Wed Dec 19 00:22:55 2012 -0500
@@ -0,0 +1,188 @@
+
+
+
+ proteinpilot_wrapper.py
+ #for $input in $inputs:
+ --input="${input}"
+ --input_name="${input.name}"
+ #end for
+ --database="${database}"
+ --database_name="${database.name}"
+ --output=$output
+ --output_methods=$output_methods
+ --sample_type="$sample_type"
+ --quantitative=$quantitative
+ --bias_correction=$bias_correction
+ --background_correction=$background_correction
+ --cys_alkylation="$cys_alkylation"
+ --digestion="$digestion"
+ --instrument="$instrument"
+ --search_effort=$search_effort
+ --pspep=$pspep
+ #if $pspep
+ --output_pspep_report=$output_pspep_report
+ #end if
+ --min_unused_protscore=$min_unused_protscore
+ #if $factors.factors_use
+ --special_factors="$factors.special_factors"
+ #else
+ --special_factors=""
+ #end if
+ --search_foci="$search_foci"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pspep
+
+
+
+
+
diff -r 000000000000 -r 7dcb26ce559c proteinpilot_tabular.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/proteinpilot_tabular.xml Wed Dec 19 00:22:55 2012 -0500
@@ -0,0 +1,41 @@
+
+
+
+ #if $quant.use
+ #set $denom = $quant.type
+ #else
+ #set $denom = ""
+ #end if
+ group2xml.exe ${type} $input $output $denom
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 7dcb26ce559c proteinpilot_wrapper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/proteinpilot_wrapper.py Wed Dec 19 00:22:55 2012 -0500
@@ -0,0 +1,326 @@
+#!/usr/bin/env python
+import optparse
+import os
+import sys
+import tempfile
+import shutil
+import subprocess
+import re
+import time
+from os.path import basename
+import logging
+
+assert sys.version_info[:2] >= ( 2, 6 )
+
+log = logging.getLogger(__name__)
+
+DEBUG = True
+
+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(64000)
+ print open(tmp_stdout_name, "r").read(64000)
+
+
+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):
+ shutil.copy(data_file, relative_path)
+ return relative_path
+
+def __main__():
+ run_script()
+
+#ENDTEMPLATE
+
+from string import Template
+
+METHOD_TEMPLATE = """
+$sample_type
+$quant_type
+$background_correction
+$bias_correction
+$cys_alkylation
+$digestion
+$special_factors
+$instrument
+
+
+
+
+
+$search_foci
+$search_effort
+$database_name
+$min_unused_protscore
+$pspep
+$max_quant_labels
+$quant_labels
+
+"""
+
+quant_special_cases = {
+ "iTRAQ 4plex (Peptide Labeled)": "iTRAQ4PLEX",
+ "iTRAQ 4plex (Protein Labeled)": "iTRAQ4PLEX",
+ "iTRAQ 8plex (Peptide Labeled)": "iTRAQ8PLEX",
+ "iTRAQ 8plex (Protein Labeled)": "iTRAQ8PLEX",
+ "mTRAQ (Peptide Labeled - M00, M04)": "mTRAQ_0-4",
+ "mTRAQ (Peptide Labeled - M00, M08)": "mTRAQ_0-8",
+ "mTRAQ (Peptide Labeled - M04, M08)": "mTRAQ_4-8",
+ "mTRAQ (Peptide Labeled - M00, M04, M08)": "mTRAQ_0-4-8",
+ "Proteolytic O-18 labeling": "Proteolytic O-18 v O-16",
+ "Cleavable ICAT": "ICAT9",
+ "ICPL Light, Heavy (Peptide Labeled)": "ICPL peptide",
+ "ICPL Light, Heavy (Protein Labeled)": "ICPL protein",
+}
+
+
+def get_env_property(name, default):
+ if name in os.environ:
+ return os.environ[name]
+ else:
+ return default
+
+
+def build_quant_label(reagent, quant_type="Not Used", treatment="", minus2="0", minus1="0", plus1="0", plus2="0"):
+ return {
+ "reagent": reagent,
+ "type": quant_type,
+ "treatment": treatment,
+ "minus2": minus2,
+ "minus1": minus1,
+ "plus1": plus1,
+ "plus2": plus2,
+ }
+
+
+def build_quant_labels(options, quant_type):
+ if quant_type == "iTRAQ8PLEX":
+ return [
+ build_quant_label("iTRAQ113", plus1="6.89", plus2="0.24"),
+ build_quant_label("iTRAQ114", minus1="0.94", plus1="5.9", plus2="0.16"),
+ build_quant_label("iTRAQ115", minus1="1.88", plus1="4.9", plus2="0.1"),
+ build_quant_label("iTRAQ116", minus1="2.82", plus1="3.9", plus2="0.07"),
+ build_quant_label("iTRAQ117", minus2="0.06", minus1="3.77", plus1="2.88"),
+ build_quant_label("iTRAQ118", minus2="0.09", minus1="4.71", plus1="1.91"),
+ build_quant_label("iTRAQ119", minus2="0.14", minus1="5.66", plus1="0.87"),
+ build_quant_label("iTRAQ121", minus2="0.27", minus1="7.44", plus1="0.18"),
+ ]
+ elif quant_type == "iTRAQ4PLEX":
+ return [
+ build_quant_label("iTRAQ114", minus1="1.00", plus1="5.9", plus2="0.20"),
+ build_quant_label("iTRAQ115", minus1="2.00", plus1="5.6", plus2="0.1"),
+ build_quant_label("iTRAQ116", minus1="3.00", plus1="4.5", plus2="0.1"),
+ build_quant_label("iTRAQ117", minus2="0.10", minus1="4.00", plus1="3.50", plus2="0.1"),
+ ]
+ else:
+ return []
+
+
+def join_quant_labels(labels):
+ template = ''
+ return "\n".join([Template(template).substitute(quant_label) for quant_label in labels])
+
+
+def handle_sample_type(options, parameter_dict):
+ sample_type = options.sample_type
+ if sample_type in quant_special_cases:
+ quant_type = quant_special_cases[sample_type]
+ else:
+ quant_type = sample_type
+ if options.quantitative.upper() != "TRUE":
+ quant_type = ""
+ parameter_dict["sample_type"] = sample_type
+ parameter_dict["quant_type"] = quant_type
+ parameter_dict["quant_labels"] = join_quant_labels(build_quant_labels(options, quant_type))
+
+
+def setup_database(options):
+ PROTEINPILOT_DATABASE_DIR = get_env_property("PROTEIN_PILOT_DATABASE_FOLDER", "C:\\AB SCIEX\\ProteinPilot Data\\SearchDatabases")
+ database_path = options.database
+ database_name = options.database_name
+ database_name = database_name.replace(" ", "_")
+ (database_basename, extension) = os.path.splitext(database_name)
+ base = os.path.join(PROTEINPILOT_DATABASE_DIR, "gx_%s" % database_basename)
+ database_destination = get_unique_path(base, ".fasta")
+ symlink(database_path, database_destination)
+ return (database_destination, os.path.basename(os.path.splitext(database_destination)[0]))
+
+
+def extract_list(parameter):
+ if parameter == None or parameter == "None":
+ parameter = ""
+ return parameter.replace(",", ";")
+
+
+def setup_methods(options):
+ ## Setup methods file
+ (database_path, database_name) = setup_database(options)
+ special_factors = extract_list(options.special_factors)
+ search_foci = extract_list(options.search_foci)
+ method_parameters = {
+ "background_correction": options.background_correction,
+ "bias_correction": options.bias_correction,
+ "cys_alkylation": options.cys_alkylation,
+ "digestion": options.digestion,
+ "instrument": options.instrument,
+ "search_effort": options.search_effort,
+ "search_foci": search_foci,
+ "pspep": options.pspep,
+ "min_unused_protscore": options.min_unused_protscore,
+ "max_quant_labels": "3",
+ "database_name": database_name,
+ "quantitative": options.quantitative,
+ "special_factors": special_factors
+ }
+ handle_sample_type(options, method_parameters)
+ method_contents = Template(METHOD_TEMPLATE).substitute(method_parameters)
+ PROTEINPILOT_METHODS_DIR = get_env_property("PROTEIN_PILOT_METHODS_FOLDER", "C:\\ProgramData\\AB SCIEX\\ProteinPilot\\ParagonMethods\\")
+ methods_name = "gx_%s" % os.path.split(os.getcwd())[-1]
+ methods_path = os.path.join(PROTEINPILOT_METHODS_DIR, "%s.xml" % methods_name)
+ open(methods_path, "w").write(method_contents)
+ return (methods_name, methods_path, database_path)
+
+
+def setup_inputs(inputs, input_names):
+ links = []
+ for input, input_name in zip(inputs, input_names):
+ if DEBUG:
+ print "Processing input %s with name %s and size %d" % (input, input_name, os.stat(input).st_size)
+ if not input_name.upper().endswith(".MGF"):
+ input_name = "%s.mgf" % input_name
+ link_path = os.path.abspath(input_name)
+ symlink(input, link_path)
+ links.append(link_path)
+ return ",".join(["" % link for link in links])
+
+
+def get_unique_path(base, extension):
+ """
+ """
+ return "%s_%d%s" % (base, int(time.time() * 1000), extension)
+
+
+def move_pspep_output(options, destination, suffix):
+ if destination:
+ source = "%s__FalsePositiveAnalysis__%s.csv" % (options.output, suffix)
+ shutil.move(source, destination)
+
+
+def run_script():
+ parser = optparse.OptionParser()
+ parser.add_option("--input", dest="input", action="append", default=[])
+ parser.add_option("--input_name", dest="input_name", action="append", default=[])
+ parser.add_option("--database")
+ parser.add_option("--database_name")
+ parser.add_option("--instrument")
+ parser.add_option("--sample_type") # TODO: Restrict values
+ parser.add_option("--bias_correction", default="False")
+ parser.add_option("--background_correction", default="False")
+ parser.add_option("--cys_alkylation", default="None")
+ parser.add_option("--digestion", default="Trypsin")
+ parser.add_option("--special_factors", default="")
+ parser.add_option("--search_foci", default="")
+ parser.add_option("--search_effort", default="Rapid")
+ parser.add_option("--min_unused_protscore", default="3")
+ parser.add_option("--quantitative", default="False")
+ parser.add_option("--pspep", default="TRUE")
+ parser.add_option("--output")
+ parser.add_option("--output_methods")
+ #parser.add_option("--output_pspep_peptide", default="")
+ #parser.add_option("--output_pspep_protein", default="")
+ #parser.add_option("--output_pspep_spectra", default="")
+ parser.add_option("--output_pspep_report", default="")
+ (options, args) = parser.parse_args()
+
+ (methods_name, methods_path, database_path) = setup_methods(options)
+ try:
+ group_file = "%s.group" % options.output
+ input_contents_template = """
+
+ $inputs
+
+"""
+ input_parameters = {
+ "inputs": setup_inputs(options.input, options.input_name),
+ "output": group_file,
+ "methods_name": methods_name
+ }
+
+ input_contents = Template(input_contents_template).substitute(input_parameters)
+ open("input.xml", "w").write(input_contents)
+
+ protein_pilot_path = get_env_property("PROTEIN_PILOT_PATH", "")
+ if protein_pilot_path and not protein_pilot_path.endswith("\\"):
+ protein_pilot_path = "%s" % protein_pilot_path
+ execute("%sProteinPilot.exe input.xml" % protein_pilot_path)
+ shutil.move(group_file, options.output)
+ #move_pspep_output(options, options.output_pspep_spectra, "SpectralLevelData")
+ #move_pspep_output(options, options.output_pspep_peptide, "DistinctPeptideLevelData")
+ #move_pspep_output(options, options.output_pspep_protein, "ProteinLevelData")
+ if options.output_pspep_report:
+ source = "%s__FDR.xlsx" % (options.output)
+ shutil.move(source, options.output_pspep_report)
+ shutil.move(methods_path, options.output_methods)
+ finally:
+ delete_file(database_path)
+ delete_file(methods_path)
+
+if __name__ == '__main__':
+ __main__()
diff -r 000000000000 -r 7dcb26ce559c proteinpilot_xml.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/proteinpilot_xml.xml Wed Dec 19 00:22:55 2012 -0500
@@ -0,0 +1,14 @@
+
+
+
+ group2xml.exe XML $input $output
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 7dcb26ce559c update.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/update.sh Wed Dec 19 00:22:55 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