diff spectrast_params.py @ 2:e67b0cc10377 draft

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/spectrast commit af2d54a900c86c6b9926b87b514517c0f0f0a975-dirty
author jjohnson
date Wed, 20 Jun 2018 12:58:33 -0400
parents
children 7f02fc51bddf
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spectrast_params.py	Wed Jun 20 12:58:33 2018 -0400
@@ -0,0 +1,111 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+
+import argparse
+import re
+import sys
+
+search_opts = [
+    'libraryFile',
+    'databaseFile',
+    'databaseType',
+    'indexCacheAll',
+    # 'filterSelectedListFileName',
+    'precursorMzTolerance',
+    'precursorMzUseAverage',
+    'searchAllCharges',
+    'detectHomologs',
+    'fvalFractionDelta',
+    'useSp4Scoring',
+    'fvalUseDotBias',
+    'usePValue',
+    'useTierwiseOpenModSearch',
+    # 'expectedCysteineMod',
+    # 'ignoreSpectraWithUnmodCysteine',
+    # 'ignoreChargeOneLibSpectra',
+    # 'ignoreAbnormalSpectra',
+    'outputExtension',
+    'outputDirectory',
+    'hitListTopHitFvalThreshold',
+    'hitListLowerHitsFvalThreshold',
+    'hitListShowHomologs',
+    'hitListShowMaxRank',
+    'hitListOnlyTopHit',
+    'hitListExcludeNoMatch',
+    'enzymeForPepXMLOutput',
+    'printFingerprintingSummary',
+    'filterMinPeakCount',
+    'filterAllPeaksBelowMz',
+    'filterMaxIntensityBelow',
+    'filterMinMzRange',
+    'filterCountPeakIntensityThreshold',
+    'filterRemovePeakIntensityThreshold',
+    'filterMaxPeaksUsed',
+    'filterMaxDynamicRange',
+    'peakScalingMzPower',
+    'peakScalingIntensityPower',
+    'peakScalingUnassignedPeaks',
+    'peakNoBinning',
+    'peakBinningNumBinsPerMzUnit',
+    'peakBinningFractionToNeighbor',
+    'filterLibMaxPeaksUsed',
+    'filterLightIonsMzThreshold',
+    'filterITRAQReporterPeaks',
+    'filterTMTReporterPeaks',
+    # 'filterRemoveHuge515Threshold',
+]
+
+
+def __main__():
+    parser = argparse.ArgumentParser(
+        description='Parse SpectraST search.params files' +
+                    ' to create an updated search.params')
+    parser.add_argument(
+        'param_files', nargs='*',
+        help='A SpectraST search.params files')
+    parser.add_argument(
+        '-o', '--output',
+        help='Output file  (-) for stdout')
+    args = parser.parse_args()
+
+    output_wtr = open(args.output, 'w')\
+        if args.output and args.output != '-' else sys.stdout
+
+    optpat = re.compile('^([a-z]\w+)\s*[=:]\s*([^=]+)$')
+    search_params = dict()
+
+    # Collect all search_params
+    def parse_params(param_file, fh):
+        for i, line in enumerate(fh):
+            try:
+                m = optpat.match(line.rstrip())
+                if m:
+                    k, v = m.groups()
+                    if k in search_opts:
+                        search_params[k] = v
+            except Exception, e:
+                print('%s(%d): %s %s' % (param_file, i, line, e),
+                      file=sys.stderr)
+
+    if args.param_files:
+        for param_file in args.param_files:
+            try:
+                with open(param_file, 'r') as fh:
+                    parse_params(param_file, fh)
+            except Exception, e:
+                print('parse_params: %s' % e, file=sys.stderr)
+    else:
+        try:
+            parse_params('stdin', sys.stdin)
+        except Exception, e:
+            print('parse_params: %s' % e, file=sys.stderr)
+
+    # Write search_params
+    for search_opt in search_opts:
+        if search_opt in search_params:
+            print('%s = %s' % (search_opt, search_params[search_opt]), file=output_wtr)
+
+
+if __name__ == "__main__":
+    __main__()