diff morpheus.xml @ 4:a7c58067f5ee draft

Uploaded
author galaxyp
date Thu, 19 Nov 2015 16:13:29 -0500
parents 12c5c3a50d4b
children f0202024f80b
line wrap: on
line diff
--- a/morpheus.xml	Thu Nov 19 16:02:50 2015 -0500
+++ b/morpheus.xml	Thu Nov 19 16:13:29 2015 -0500
@@ -1,4 +1,4 @@
-<tool id="morpheus" name="Morpheus" version="1.171.2">
+<tool id="morpheus" name="Morpheus" version="1.171.5">
     <description>database search algorithm for high-resolution tandem mass spectra</description>
     <macros>
         <xml name="modification_options">
@@ -54,17 +54,29 @@
     </stdio>
 
     <command><![CDATA[
+        mkdir output_reports;
+        cwd=`pwd`;
+        #import re
         #set $searchdb_name = $searchdb
         #if isinstance($searchdb.datatype, $__app__.datatypes_registry.get_datatype_by_extension('uniprotxml').__class__): 
           #set $searchdb_name = 'searchdb.xml'
         #else
           #set $searchdb_name = 'searchdb.fasta'
         #end if
-        mkdir output_reports;
-        ln -s $input input.mzml
-        && ln -s $searchdb $searchdb_name
+        ln -s $searchdb $searchdb_name
+        ## Need to link each input to a name in cwd, names must be unique
+        #set $input_list = []
+        #for i,input in enumerate($inputs):
+          #set $input_name = $re.sub('(?i)([.]?mzML)*$','.mzML',$re.sub('\W','_',$input.name))
+          #if $input_name in $input_list:
+            #set $input_name = str($i) + '_' + $input_name
+          #end if
+          #set $input_list = $input_list + [$input_name]
+          && ln -s $input $input_name
+        #end for
+        #set $input_names = ','.join($input_list)
         && mono \${MORPHEUS_PATH}/morpheus_cl.exe 
-        -d="input.mzml"
+        -d="$input_names"
         -db=$searchdb_name
         #if isinstance($searchdb.datatype, $__app__.datatypes_registry.get_datatype_by_extension('uniprotxml').__class__): 
           #if str( $advanced.adv_options_selector) == "set":
@@ -138,13 +150,17 @@
             -vm="$vmods"
         #end if
         -mt=\${GALAXY_SLOTS:-4}
-        && ( basepath=`grep 'Input Data File:' input.log.txt | sed 's/Input Data File: \(.*\)input.mzml/\1/'`; 
-             for i in summary.tsv input.log.txt input.PSMs.tsv input.unique_peptides.tsv input.protein_groups.tsv input.pep.xml; 
-             do cat \$i | sed "s#\${basepath}input.mzml#$input.name#" | sed "s#\${basepath}$searchdb_name#$searchdb.name#" > output_reports/\$i; 
-             done )
+        #set $out_list = 'summary.tsv PSMs.tsv unique_peptides.tsv protein_groups.tsv log.txt *.pep.xml'
+        #if len($input_list) > 1:
+            && ( basepath=`grep 'Proteome Database:' log.txt  | sed 's/Proteome Database: \(.*\)${$searchdb_name}/\1/'`;
+             for i in $out_list; do cat \$i | sed "s#\${basepath}\##" > output_reports/\$i; done )
+        #else 
+            && ( basepath=`grep 'Proteome Database:' *.log.txt  | head -1 | sed 's/Proteome Database: \(.*\)${$searchdb_name}/\1/'`;
+             for i in $out_list; do cat *\$i | sed "s#\${basepath}\##" > output_reports/\$i; done )
+        #end if
     ]]></command>
     <inputs>
-        <param name="input" type="data" format="mzml" label='Indexed mzML' />
+        <param name="inputs" type="data" format="mzml" multiple="true" label='Indexed mzML' />
         <param name="searchdb" type="data" format="fasta,uniprotxml" label="MS Protein Search Database: UniProt Xml or Fasta"/>
         <param name="fm" type="select" multiple="true" optional="true" label="Fixed Modifications">
             <expand macro="fixed_modification_options" />
@@ -207,12 +223,14 @@
         </conditional>
     </inputs>
     <outputs>
-        <data name="summary" format="txt" label="${input.name.rsplit('.',1)[0]} summary.tsv" from_work_dir="output_reports/summary.tsv" />
-        <data name="log" format="txt" label="${input.name.rsplit('.',1)[0]}.log.txt" from_work_dir="output_reports/input.log.txt" />
-        <data name="output_psms" format="tabular" label="${input.name.rsplit('.',1)[0]}.PSMs.tsv" from_work_dir="output_reports/input.PSMs.tsv" />
-        <data name="output_unique_peptides" format="tabular" label="${input.name.rsplit('.',1)[0]}.unique_peptides.tsv" from_work_dir="output_reports/input.unique_peptides.tsv" />
-        <data name="output_protein_groups" format="tabular" label="${input.name.rsplit('.',1)[0]}.protein_groups.tsv" from_work_dir="output_reports/input.protein_groups.tsv" />
-        <data name="output_pepxml" format="pepxml" label="${input.name.rsplit('.',1)[0]}.pep.xml" from_work_dir="output_reports/input.pep.xml" />
+        <data name="summary" format="txt" label="${tool.name} on ${on_string}: summary.tsv" from_work_dir="output_reports/summary.tsv" />
+        <data name="log" format="txt" label="${tool.name} on ${on_string}: log.txt" from_work_dir="output_reports/log.txt" />
+        <data name="output_psms" format="tabular" label="${tool.name} on ${on_string}: PSMs.tsv" from_work_dir="output_reports/PSMs.tsv" />
+        <data name="output_unique_peptides" format="tabular" label="${tool.name} on ${on_string}: unique_peptides.tsv" from_work_dir="output_reports/unique_peptides.tsv" />
+        <data name="output_protein_groups" format="tabular" label="${tool.name} on ${on_string}: protein_groups.tsv" from_work_dir="output_reports/protein_groups.tsv" />
+        <collection name="morpheus_pep_xmls" type="list" label="${tool.name} on ${on_string} pep.xml">
+            <discover_datasets pattern="(?P&lt;name&gt;.*\.pep.xml)" ext="pepxml" visible="False" directory="output_reports" />
+        </collection>
     </outputs>
     <tests>
         <test>