Mercurial > repos > jjohnson > spectrast
changeset 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 | 390a3c4a7f6b |
children | 7f02fc51bddf |
files | spectrast_params.py spectrast_search.xml |
diffstat | 2 files changed, 168 insertions(+), 46 deletions(-) [+] |
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__()
--- a/spectrast_search.xml Mon Jun 18 10:08:02 2018 -0400 +++ b/spectrast_search.xml Wed Jun 20 12:58:33 2018 -0400 @@ -3,62 +3,64 @@ <macros> <import>macros.xml</import> </macros> - <expand macro="requirements" /> + <expand macro="requirements"> + </expand> <command detect_errors="exit_code"><![CDATA[ ## Need to symlink to data using name with extension that spectrast recognizes #import re ## spectrum datasets - #set $exts = {'mgf':'MGF', 'mzml':'mzML', 'mzxml':'mzXML', 'msp': 'msp', 'mzdata':'mzData'} - #set $input_files = [] + #set global $exts = {'mgf':'MGF', 'mzml':'mzML', 'mzxml':'mzXML', 'msp': 'msp', 'mzdata':'mzData'} + #set global $input_files = [] #def ln_scan($sf): - #set $ext = $exts[$sf.extension.lower()] - #set $input_name = $re.sub('[.]([^.]*)$','$ext',$sf.display_name.split('/')[-1]) + #set $ext = '.' + $exts[$sf.extension.lower()] + #set $input_name = $re.sub('[.]([^.]*)$',$ext,$sf.display_name.split('/')[-1]) #silent $input_files.append($input_name) ln -s -f '${sf}' '${input_name}' && #set $encoded_id = $__app__.security.encode_id($sf.id) echo "Spectrums:${sf.display_name}(API:${encoded_id}) "; #end def #if $collection.collection_selector == 'dataset': - ln_scan($collection.spectrum_file) + $ln_scan($collection.spectrum_file) #else: - #for $spectrum_file in $spectrum_files: - ln_scan($collection.spectrum_file) + #for $spectrum_file in $collection.spectrum_files: + $ln_scan($spectrum_file) #end for #end if python $__tool_directory__/spectrast_params.py - #if def $spectrastParams: + #if $spectrastParams: '$spectrastParams' #end if - $spectrast_params' -o spectrast.params && + '$spectrast_params' -o spectrast.params && mkdir out && - spectrast -sFspectrast.params -sL'${libraryFile.files_path}/library.splib' -sE $output_format + spectrast -sFspectrast.params -sL'${libraryFile.extra_files_path}/library.splib' -sO out -sE $outputExtension #echo ' '.join($input_files) + && ls -l out #if $collection.collection_selector == 'dataset': && cp out/* $output #end if ]]></command> <configfiles> <configfile name="spectrast_params"><![CDATA[#slurp -libraryFile = $libraryFile -#if $databaseFile is not None: -databaseFile = $databaseFile +libraryFile = ${libraryFile.extra_files_path}/library.splib +#if str($general.databaseFile) != 'None': +databaseFile = $general.databaseFile +#if $general.databaseType is not None: +databaseType = $general.databaseType #end if -#if $databaseType is not None: -databaseType = $databaseType #end if -#if $indexCacheAll is not None: -indexCacheAll = $indexCacheAll +#if $general.indexCacheAll is not None: +indexCacheAll = $general.indexCacheAll #end if -#if $filterSelectedListFileName is not None: -filterSelectedListFileName = $filterSelectedListFileName -#end if +## #if $filterSelectedListFileName is not None: +## filterSelectedListFileName = $filterSelectedListFileName +## #end if #if $candidate_selection_and_scoring.precursorMzTolerance is not None: precursorMzTolerance = $candidate_selection_and_scoring.precursorMzTolerance #end if -#if $candidate_selection_and_scoring.precursorMzUseAverage is not None: +#if str($candidate_selection_and_scoring.precursorMzUseAverage) != 'None': precursorMzUseAverage = $candidate_selection_and_scoring.precursorMzUseAverage #end if -#if $candidate_selection_and_scoring.searchAllCharges is not None: +#if str($candidate_selection_and_scoring.searchAllCharges) != 'None': searchAllCharges = $candidate_selection_and_scoring.searchAllCharges #end if #if $candidate_selection_and_scoring.detectHomologs is not None: @@ -67,46 +69,46 @@ #if $candidate_selection_and_scoring.fvalFractionDelta is not None: fvalFractionDelta = $candidate_selection_and_scoring.fvalFractionDelta #end if -#if $candidate_selection_and_scoring.useSp4Scoring is not None: +#if str($candidate_selection_and_scoring.useSp4Scoring) != 'None': useSp4Scoring = $candidate_selection_and_scoring.useSp4Scoring #end if -#if $candidate_selection_and_scoring.fvalUseDotBias is not None: +#if str($candidate_selection_and_scoring.fvalUseDotBias) != 'None': fvalUseDotBias = $candidate_selection_and_scoring.fvalUseDotBias #end if -#if $candidate_selection_and_scoring.usePValue is not None: +#if str($candidate_selection_and_scoring.usePValue) != 'None': usePValue = $candidate_selection_and_scoring.usePValue #end if -#if $candidate_selection_and_scoring.useTierwiseOpenModSearch is not None: +#if str($candidate_selection_and_scoring.useTierwiseOpenModSearch) != 'None': useTierwiseOpenModSearch = $candidate_selection_and_scoring.useTierwiseOpenModSearch #end if #if $outputExtension is not None: outputExtension = $outputExtension #end if -#if $outputDirectory is not None: -outputDirectory = $outputDirectory -#end if +## #if $outputDirectory is not None: +## outputDirectory = $outputDirectory +## #end if #if $output_and_display.hitListTopHitFvalThreshold is not None: hitListTopHitFvalThreshold = $output_and_display.hitListTopHitFvalThreshold #end if #if $output_and_display.hitListLowerHitsFvalThreshold is not None: hitListLowerHitsFvalThreshold = $output_and_display.hitListLowerHitsFvalThreshold #end if -#if $output_and_display.hitListShowHomologs is not None: +#if str($output_and_display.hitListShowHomologs) != 'None': hitListShowHomologs = $output_and_display.hitListShowHomologs #end if #if $output_and_display.hitListShowMaxRank is not None: hitListShowMaxRank = $output_and_display.hitListShowMaxRank #end if -#if $output_and_display.hitListOnlyTopHit is not None: +#if str($output_and_display.hitListOnlyTopHit) != 'None': hitListOnlyTopHit = $output_and_display.hitListOnlyTopHit #end if -#if $output_and_display.hitListExcludeNoMatch is not None: +#if str($output_and_display.hitListExcludeNoMatch) != 'None': hitListExcludeNoMatch = $output_and_display.hitListExcludeNoMatch #end if #if $output_and_display.enzymeForPepXMLOutput is not None: enzymeForPepXMLOutput = $output_and_display.enzymeForPepXMLOutput #end if -#if $printFingerprintingSummary is not None: +#if str($printFingerprintingSummary) != 'None': printFingerprintingSummary = $printFingerprintingSummary #end if #if $spectrum_filtering.filterMinPeakCount is not None: @@ -142,7 +144,7 @@ #if $spectrum_processing.peakScalingUnassignedPeaks is not None: peakScalingUnassignedPeaks = $spectrum_processing.peakScalingUnassignedPeaks #end if -#if $spectrum_processing.peakNoBinning is not None: +#if str($spectrum_processing.peakNoBinning) != 'None': peakNoBinning = $spectrum_processing.peakNoBinning #end if #if $spectrum_processing.peakBinningNumBinsPerMzUnit is not None: @@ -157,10 +159,10 @@ #if $spectrum_processing.filterLightIonsMzThreshold is not None: filterLightIonsMzThreshold = $spectrum_processing.filterLightIonsMzThreshold #end if -#if $spectrum_processing.filterITRAQReporterPeaks is not None: +#if str($spectrum_processing.filterITRAQReporterPeaks) != 'None': filterITRAQReporterPeaks = $spectrum_processing.filterITRAQReporterPeaks #end if -#if $spectrum_processing.filterTMTReporterPeaks is not None: +#if str($spectrum_processing.filterTMTReporterPeaks) != 'None': filterTMTReporterPeaks = $spectrum_processing.filterTMTReporterPeaks #end if ]]> @@ -346,7 +348,7 @@ </param> </section> - <param name="output_format" type="select" label="Output format"> + <param name="outputExtension" type="select" label="Output format"> <option value="pep.xml">pep.xml</option> <option value="xls">xls (tabular)</option> <option value="txt">txt (fixed width text)</option> @@ -363,22 +365,31 @@ <data name="fingerprint_summary" format="txt" label="fingerprint.summary" from_work_dir="fingerprint.summary"> <filter>printFingerprintingSummary and printFingerprintingSummary == 'fingerprint.summary'</filter> </data> - <data name="output" format="pep.xml" label="${tool.name} on ${on_string}: ${output_format}"> + <data name="output" format="pepxml" label="${tool.name} on ${on_string}: ${outputExtension}"> + <filter>collection['collection_selector'] == 'dataset'</filter> <change_format> - <when input="output_format" value="xls" format="tabular" /> - <when input="output_format" value="txt" format="txt" /> + <when input="outputExtension" value="xls" format="tabular" /> + <when input="outputExtension" value="txt" format="txt" /> </change_format> <actions> - <conditional name="output_format"> + <conditional name="outputExtension"> <when value="xls"> <action name="column_names" type="metadata" default="Geneid,${','.join([a.name for a in $input_files])}" /> </when> </conditional> </actions> </data> - <collection name="output_set" type="list" label="${tool.name} on ${on_string}: ${output_format}"> - <discover_datasets pattern="(?P<designation>.+)\.xls" ext="tabular" directory="out" visible="true" /> - <discover_datasets pattern="__designation_and_ext__" directory="out" visible="true" /> + <collection name="output_pepxml" type="list" label="${tool.name} on ${on_string}: ${outputExtension} collection"> + <filter>collection['collection_selector'] == 'collection' and outputExtension == 'pep.xml'</filter> + <discover_datasets pattern="(?P<designation>.+\.pep.xml)" ext="pepxml" directory="out" visible="false" /> + </collection> + <collection name="output_xls" type="list" label="${tool.name} on ${on_string}: ${outputExtension} collection"> + <filter>collection['collection_selector'] == 'collection' and outputExtension == 'xls'</filter> + <discover_datasets pattern="(?P<designation>.+\.xls)" ext="tabular" directory="out" visible="false" /> + </collection> + <collection name="output_txt" type="list" label="${tool.name} on ${on_string}: ${outputExtension} collection"> + <filter>collection['collection_selector'] == 'collection' and outputExtension == 'txt'</filter> + <discover_datasets pattern="(?P<designation>.+\.txt)" ext="txt" directory="out" visible="false" /> </collection> </outputs> <tests> @@ -389,7 +400,7 @@ <composite_data value="splib/library.spidx"/> <composite_data value="splib/library.pepidx"/> </param> - <param name="output_format" value="xls"/> + <param name="outputExtension" value="xls"/> <output name="output"> <assert_contents> <has_text text="FKWNGTDTNSAAEK" />