Mercurial > repos > galaxyp > thermo_raw_file_converter
diff thermo_converter.xml @ 5:77a18a61aeed draft
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/ThermoRawfileParser commit 2c29e2fadeba9be11e81420f24e7a6429ef52aa7"
author | galaxyp |
---|---|
date | Fri, 30 Aug 2019 10:28:22 -0400 |
parents | 344e10282449 |
children | 2d80c8b2dfc2 |
line wrap: on
line diff
--- a/thermo_converter.xml Fri Apr 26 14:33:21 2019 -0400 +++ b/thermo_converter.xml Fri Aug 30 10:28:22 2019 -0400 @@ -1,60 +1,193 @@ -<tool id="thermo_raw_file_converter" name="Thermo" version="1.1.2"> +<tool id="thermo_raw_file_converter" name="Thermo" version="1.1.10"> <description>RAW file converter</description> <requirements> - <requirement type="package" version="1.1.2">ThermoRawFileParser</requirement> + <requirement type="package" version="1.1.10">ThermoRawFileParser</requirement> </requirements> <command> <![CDATA[ +#import re -ln -s '$input' ./input.raw && +#set $temp_stderr = "thermo_converter_stderr" + +echo "" > $temp_stderr && -ThermoRawFileParser.sh - -i=input.raw - -o=./ +mkdir ./raws_folder && +mkdir ./output_folder && +#for $input_raw in $input: + #if len($input) > 1 + #set $input_name = re.sub('[^\w\-\.]', '_',$input_raw.element_identifier.split('/')[-1].replace(".raw", "") + ".raw") + ln -s -f '${input_raw}' './raws_folder/${input_name}' && + #else: + ln -s -f '${input_raw}' './raws_folder/input.raw' && + #end if +#end for + +(ThermoRawFileParser.sh + -d=./raws_folder + -o=./output_folder -f=$output_format - #if $metadata: - --metadata=1 + #if $output_metadata_selector != "off": + --metadata="${output_metadata_selector}" #end if + $zlib_boolean + $peakpicking_boolean + $ignore_instrument_errors_boolean + + 2>> $temp_stderr) + && - #if $output_format == '0': - mv ./input.mgf '$output' - #else: - mv ./input.mzML '$output' + + #if len($input) == 1: + #if $output_format == "0": + mv ./output_folder/input.mgf ./output_file.out && + #else if $output_format == "1": + mv ./output_folder/input.mzML ./output_file.out && + #else if $output_format == "2": + mv ./output_folder/input.mzML ./output_file.out && + #end if + + #if $output_metadata_selector != "off": + #if $output_metadata_selector == "0": + mv ./output_folder/input-metadata.json ./input-metadata.txt && + #else if $output_metadata_selector == "1": + mv ./output_folder/input-metadata.txt ./input-metadata.txt && + #end if + #end if #end if + + cat $temp_stderr 2>&1; ]]> </command> <inputs> - <param name="input" type="data" format="thermo.raw" label="Thermo RAW file" help="" /> - <param name="metadata" type="boolean" truevalue="" falsevalue="" checked="False" - label="Output metadata" help="" /> - <param name="output_format" type="select" label="Choose an output format"> + <param name="input" type="data" format="thermo.raw" label="Thermo RAW file" help="" multiple="true" + optional="False" /> + + <param name="output_format" type="select" label="Output format"> <option value="0">mgf</option> <option value="1" selected="True">mzml</option> + <option value="2">Indexed mzml</option> </param> + + <param name="zlib_boolean" type="boolean" truevalue="" falsevalue="-z" checked="true" + label="Use zlib compression for the m/z ratios and intensities" help="" /> + + <param name="peakpicking_boolean" type="boolean" truevalue="" falsevalue="-p" checked="true" + label="Use the peak picking provided by the native thermo library" help="" /> + + <param name="ignore_instrument_errors_boolean" type="boolean" truevalue="-e" falsevalue="" checked="true" + label="Ignore missing instrument properties" help="If false, it stops the conversion if instrument properties are missing" /> + + <param name="output_metadata_selector" type="select" label="Output metadata" > + <option value="off" selected="True">No</option> + <option value="0">json</option> + <option value="1">txt</option> + </param> + </inputs> <outputs> - <data format="mzml" name="output" from_work_dir="input.mzML" label="${tool.name} on ${on_string}"> + + <!-- We use simple data outputs if we just have one file, for backwards compatibility --> + + <data name="output" format="mzml" from_work_dir="output_file.out" label="${tool.name} on ${on_string}"> + <filter>(str(input)).count(',') == 0</filter> <!-- funny way of counting the number of input files! --> <change_format> <when input="output_format" value="0" format="mgf" /> + <when input="output_format" value="2" format="txt" /> + </change_format> + </data> + + <data name="output_metadata" format="txt" label="${tool.name} on ${on_string}: Metadata" from_work_dir="input-metadata.txt"> + <filter>str(output_metadata_selector) != "off"</filter> + <filter>(str(input)).count(',') == 0</filter> + <change_format> + <when input="output_metadata_selector" value="0" format="json" /> </change_format> </data> - <data format="txt" name="output_metadata" from_work_dir="input-metadata.txt" label="${tool.name} on ${on_string}: Metadata"> - <filter>metadata</filter> - </data> + + <!-- We use collections if we have multiple input files --> + + <collection name="output_mgf_collection" type="list" label="${tool.name} on ${on_string}: MGF"> + <filter>output_format == "0"</filter> + <filter>(str(input)).count(',') > 0</filter> + <discover_datasets pattern="(?P<designation>.+)\.mgf" directory="output_folder" ext="mgf"/> + </collection> + + <collection name="output_mzml_collection" type="list" label="${tool.name} on ${on_string}: mzML"> + <filter>output_format == "1"</filter> + <filter>(str(input)).count(',') > 0</filter> + <discover_datasets pattern="(?P<designation>.+)\.mzML" ext="mzml" directory="output_folder"/> + </collection> + + <collection name="output_indexedmzml_collection" type="list" label="${tool.name} on ${on_string}: Indexed mzML"> + <filter>output_format == "2"</filter> + <filter>(str(input)).count(',') > 0</filter> + <discover_datasets pattern="(?P<designation>.+)\.mzML" ext="mzml" directory="output_folder"/> + </collection> + + <collection name="output_metadata_collection" type="list" label="${tool.name} on ${on_string}: metadata"> + <filter>output_metadata_selector != "off"</filter> + <filter>(str(input)).count(',') > 0</filter> + <discover_datasets pattern="(?P<designation>.+)-metadata.txt" ext="txt" directory="output_folder"/> + <discover_datasets pattern="(?P<designation>.+)-metadata.json" ext="json" directory="output_folder"/> + </collection> + </outputs> + <tests> - <test> - <param name="input" value="fake_input.txt"/> - <assert_command> - <has_text text="ThermoRawFileParser.sh"/> - </assert_command> + <!-- Basic test --> + <test expect_num_outputs="1"> + <param name="input" value="really_small.raw"/> + <param name="output_format" value="1"/> + <output name="output" file="really_small.mzml" ftype="mzml" compare="sim_size" delta="3000" /> </test> - <test> - <param name="input" value="fake_input.txt"/> + + <!-- Testing contents of converted mgf file with txt metadata --> + <test expect_num_outputs="2"> + <param name="input" value="really_small.raw"/> <param name="output_format" value="0"/> - <assert_command> - <has_text text="-f=0"/> - </assert_command> + <param name="output_metadata_selector" value="1"/> + <output name="output"> + <assert_contents> + <has_text text="SCANS=36"/> + <has_text text="RTINSECONDS=73.863181104"/> + <has_text text="PEPMASS=675.248779296875"/> + <has_text text="CHARGE=2+"/> + <has_text text="121.3116455 920.2367553711"/> + <has_text text="229.2241211 1137.6958007813"/> + <has_text text="1577.8967285 1487.9519042969"/> + </assert_contents> + </output> + <output name="output_metadata" ftype="txt"> + <assert_contents> + <has_text text="Instrument model=[MS, MS:1000494, Thermo Scientific instrument model, Orbitrap Fusion]"/> + <has_text text="Instrument name=Orbitrap Fusion"/> + <has_text text="Instrument serial number=[MS, MS:1000529, instrument serial number, FSN10188]"/> + <has_text text="Software version=[NCIT, NCIT:C111093, Software Version, 3.1.2412.17]"/> + <has_text text="Mass resolution=[MS, MS:1000011, mass resolution, 0.500]"/> + <has_text text="Number of scans=101"/> + <has_text text="Scan range=1;101"/> + <has_text text="Scan start time=[MS, MS:1000016, scan start time, 0.89]"/> + <has_text text="Time range=0.89;1.59"/> + <has_text text="Mass range=120.0000;2000.0000"/> + </assert_contents> + </output> + + </test> + + <!-- Basic mzml collection test --> + <test expect_num_outputs="1"> + <param name="input" value="really_small.raw,really_small_2.raw"/> + <param name="output_format" value="1"/> + <output_collection name="output_mzml_collection" type="list" count="2"/> + </test> + + <!-- mgf collection test with metadata --> + <test expect_num_outputs="2"> + <param name="input" value="really_small.raw,really_small_2.raw,really_small_3.raw"/> + <param name="output_format" value="0"/> + <param name="output_metadata_selector" value="0"/> + <output_collection name="output_mgf_collection" type="list" count="3"/> + <output_collection name="output_metadata_collection" type="list" count="3"/> </test> </tests> <help>