Repository 'openms_psmfeatureextractor'
hg clone https://toolshed.g2.bx.psu.edu/repos/galaxyp/openms_psmfeatureextractor

Changeset 10:63fea23042c4 (2022-12-01)
Previous changeset 9:047020d9012f (2021-01-30)
Commit message:
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 3d1e5f37fd16524a415f707772eeb7ead848c5e3
modified:
PSMFeatureExtractor.xml
fill_ctd.py
generate-foo.sh
macros.xml
readme.md
test-data.sh
added:
fill_ctd_clargs.py
removed:
macros_autotest.xml
macros_discarded_auto.xml
macros_test.xml
b
diff -r 047020d9012f -r 63fea23042c4 PSMFeatureExtractor.xml
--- a/PSMFeatureExtractor.xml Sat Jan 30 11:38:47 2021 +0000
+++ b/PSMFeatureExtractor.xml Thu Dec 01 19:01:06 2022 +0000
[
b'@@ -1,13 +1,11 @@\n <?xml version=\'1.0\' encoding=\'UTF-8\'?>\n <!--This is a configuration file for the integration of a tools into Galaxy (https://galaxyproject.org/). This file was automatically generated using CTDConverter.-->\n <!--Proposed Tool Section: [Utilities]-->\n-<tool id="PSMFeatureExtractor" name="PSMFeatureExtractor" version="@TOOL_VERSION@+galaxy2" profile="20.05">\n+<tool id="PSMFeatureExtractor" name="PSMFeatureExtractor" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05">\n   <description>Computes extra features for each input PSM.</description>\n   <macros>\n     <token name="@EXECUTABLE@">PSMFeatureExtractor</token>\n     <import>macros.xml</import>\n-    <import>macros_autotest.xml</import>\n-    <import>macros_test.xml</import>\n   </macros>\n   <expand macro="requirements"/>\n   <expand macro="stdio"/>\n@@ -16,11 +14,12 @@\n #import re\n \n ## Preprocessing\n-mkdir in &&\n-#if $in\n-${ \' \'.join(["ln -s \'%s\' \'in/%s.%s\' &&" % (_, re.sub(\'[^\\w\\-_]\', \'_\', _.element_identifier), $gxy2omsext(_.ext)) for _ in $in if _]) }\n-#else if $in_single\n-    ln -s \'$in_single\' \'in/${re.sub("[^\\w\\-_]", "_", $in_single.element_identifier)}.$gxy2omsext($in_single.ext)\' &&  \n+mkdir in_cond.in &&\n+#if $in_cond.in_select == "no"\n+mkdir ${\' \'.join(["\'in_cond.in/%s\'" % (i) for i, f in enumerate($in_cond.in) if f])} && \n+${\' \'.join(["ln -s \'%s\' \'in_cond.in/%s/%s.%s\' && " % (f, i, re.sub(\'[^\\w\\-_]\', \'_\', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_cond.in) if f])}\n+#else\n+ln -s \'$in_cond.in\' \'in_cond.in/${re.sub("[^\\w\\-_]", "_", $in_cond.in.element_identifier)}.$gxy2omsext($in_cond.in.ext)\' &&\n #end if\n mkdir out &&\n \n@@ -31,10 +30,10 @@\n python3 \'$__tool_directory__/fill_ctd.py\' \'@EXECUTABLE@.ctd\' \'$args_json\' \'$hardcoded_json\' &&\n @EXECUTABLE@ -ini @EXECUTABLE@.ctd\n -in\n-#if $in\n-${\' \'.join(["\'in/%s.%s\'"%(re.sub(\'[^\\w\\-_]\', \'_\', _.element_identifier), $gxy2omsext(_.ext)) for _ in $in if _])}\n-#else if $in_single\n-\'in/${re.sub("[^\\w\\-_]", "_", $in_single.element_identifier)}.$gxy2omsext($in_single.ext)\'\n+#if $in_cond.in_select == "no"\n+${\' \'.join(["\'in_cond.in/%s/%s.%s\'"%(i, re.sub(\'[^\\w\\-_]\', \'_\', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_cond.in) if f])}\n+#else\n+\'in_cond.in/${re.sub("[^\\w\\-_]", "_", $in_cond.in.element_identifier)}.$gxy2omsext($in_cond.in.ext)\'\n #end if\n -out\n \'out/output.${out_type}\'\n@@ -49,26 +48,36 @@\n     <configfile name="hardcoded_json"><![CDATA[{"log": "log.txt", "threads": "\\${GALAXY_SLOTS:-1}", "no_progress": true}]]></configfile>\n   </configfiles>\n   <inputs>\n-   <param name="in_single" argument="-in" type="data" format="idxml,mzid" multiple="false" optional="true" label="Input file for batch processing" help="(exactly one of -in or -in_list is required)"/>\n-    <param name="in" argument="-in" type="data" format="idxml,mzid" multiple="true" optional="true" label="Input file(s) for joint processing" help="(exactly one of -in or -in_list is required)"/>   \n-    <param name="out_type" argument="-out_type" display="radio" type="select" optional="false" label="Output file type -- default: determined from file extension or content" help="">\n+    <conditional name="in_cond">\n+      <param name="in_select" type="select" label="Run tool in batch mode for -in">\n+        <option value="no">No: process all datasets jointly</option>\n+        <option value="yes">Yes: process each dataset in an independent job</option>\n+      </param>\n+      <when value="no">\n+        <param argument="-in" type="data" format="idxml,mzid" multiple="true" optional="false" label="Input file(s)" help=" select idxml,mzid data sets(s)"/>\n+      </when>\n+      <when value="yes">\n+        <param argument="-in" type="data" format="idxml,mzid" multiple="false" optional="false" label="Input file(s)" help=" select idxml,mzid data sets(s)"/>\n+      </when>\n+    </conditional>\n+    <param argument="-out_type" display="radio" type="select" optional="false" label="Output file type -- default: determined fr'..b'+      <param argument="-concat" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Naive merging of PSMs from different search engines: concatenate multiple search results instead of merging on scan level" help="Only valid together with -multiple_search_engines flag"/>\n+      <param argument="-impute" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Will instead of discarding all PSM not unanimously detected by all SE, impute missing values by their respective scores min/max observed" help="Only valid together with -multiple_search_engines flag"/>\n+      <param argument="-limit_imputation" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Will impute missing scores with the worst numerical limit (instead of min/max observed) of the respective score" help="Only valid together with -multiple_search_engines flag"/>\n+      <param argument="-force" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Overrides tool-specific checks" help=""/>\n+      <param argument="-test" type="hidden" optional="true" value="False" label="Enables the test mode (needed for internal use only)" help="">\n+        <expand macro="list_string_san" name="test"/>\n       </param>\n     </expand>\n     <param name="OPTIONAL_OUTPUTS" type="select" optional="true" multiple="true" label="Optional outputs">\n@@ -76,9 +85,8 @@\n     </param>\n   </inputs>\n   <outputs>\n-    <data name="out" label="${tool.name} on ${on_string}: out">\n+    <data name="out" label="${tool.name} on ${on_string}: out" format="idxml">\n       <change_format>\n-        <when input="out_type" value="idXML" format="idxml"/>\n         <when input="out_type" value="mzid" format="mzid"/>\n       </change_format>\n     </data>\n@@ -86,13 +94,34 @@\n       <filter>OPTIONAL_OUTPUTS is not None and "ctd_out_FLAG" in OPTIONAL_OUTPUTS</filter>\n     </data>\n   </outputs>\n-  <tests>\n-    <expand macro="autotest_PSMFeatureExtractor"/>\n-    <expand macro="manutest_PSMFeatureExtractor"/>\n-  </tests>\n+  <tests><test expect_num_outputs="1"><!-- using the idXML outputs of two SearchAdapters that should be compatible -->\n+    <param name="adv_opts|test" value="true"/>\n+    <param name="adv_opts|skip_db_check" value="true"/>\n+    <param name="in" ftype="idxml" value="MSGFPlusAdapter_1_out.idXML,XTandemAdapter_1_out.idXML"/>\n+    <param name="multiple_search_engines" value="true"/>\n+    <param name="out_type" value="idxml"/>\n+    <output name="out" ftype="idxml" value="PSMFeatureExtractor.idxml" compare="sim_size" delta="500"/>\n+  </test>\n+  <test expect_num_outputs="1"><!-- using the idXML outputs of two SearchAdapters that should be compatible -->\n+    <param name="adv_opts|test" value="true"/>\n+    <param name="adv_opts|skip_db_check" value="true"/>\n+    <param name="in" ftype="idxml" value="MSGFPlusAdapter_1_out.idXML,XTandemAdapter_1_out.idXML"/>\n+    <param name="multiple_search_engines" value="true"/>\n+    <param name="out_type" value="mzid"/>\n+    <output name="out" ftype="mzid" value="PSMFeatureExtractor.mzid" compare="sim_size" delta="500"/>\n+  </test>\n+  <!-- test for the batch conditional crated for data parameters with multiple="true" -->\n+  <test expect_num_outputs="1"><!-- using the idXML outputs of two SearchAdapters that should be compatible -->\n+    <param name="adv_opts|test" value="true"/>\n+    <param name="in_select" value="yes"/>\n+    <param name="in" ftype="idxml" value="MSGFPlusAdapter_1_out.idXML"/>\n+    <param name="out_type" value="idxml"/>\n+    <output name="out" ftype="idxml" value="PSMFeatureExtractor_3.idXML" compare="sim_size" delta="500"/>\n+  </test>\n+</tests>\n   <help><![CDATA[Computes extra features for each input PSM.\n \n \n-For more information, visit http://www.openms.de/doxygen/release/2.6.0/html/UTILS_PSMFeatureExtractor.html]]></help>\n+For more information, visit http://www.openms.de/doxygen/release/2.8.0/html/UTILS_PSMFeatureExtractor.html]]></help>\n   <expand macro="references"/>\n </tool>\n'
b
diff -r 047020d9012f -r 63fea23042c4 fill_ctd.py
--- a/fill_ctd.py Sat Jan 30 11:38:47 2021 +0000
+++ b/fill_ctd.py Thu Dec 01 19:01:06 2022 +0000
[
@@ -32,7 +32,7 @@
     for k, v in e.items():
         if (k in d and isinstance(d[k], dict) and isinstance(e[k], collections.abc.Mapping)):
             mergeDicts(d[k], e[k])
-        elif k not in d and not isinstance(e[k], collections.abc.Mapping):
+        elif k not in d:
             d[k] = e[k]
         else:
             sys.stderr.write("fill_ctd.py: could not merge key %s for %s in %s" % (k, d, e))
@@ -135,9 +135,10 @@
 # insert the hc_args into the args
 mergeDicts(args, hc_args)
 
-if "adv_opts_cond" in args:
-    args.update(args["adv_opts_cond"])
-    del args["adv_opts_cond"]
+# put the contents of the advanced options section into the main dict
+if "adv_opts" in args:
+    args.update(args["adv_opts"])
+    del args["adv_opts"]
 
 # IDMapper has in and spectra:in params, in is used in out as format_source",
 # which does not work in Galaxy: https://github.com/galaxyproject/galaxy/pull/9493"
b
diff -r 047020d9012f -r 63fea23042c4 fill_ctd_clargs.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fill_ctd_clargs.py Thu Dec 01 19:01:06 2022 +0000
[
@@ -0,0 +1,70 @@
+#!/usr/bin/env python3
+
+import operator
+from argparse import ArgumentParser
+from functools import reduce  # forward compatibility for Python 3
+from io import StringIO
+
+from CTDopts.CTDopts import (
+    _Null,
+    CTDModel,
+    ModelTypeError,
+    Parameters
+)
+
+
+def getFromDict(dataDict, mapList):
+    return reduce(operator.getitem, mapList, dataDict)
+
+
+def setInDict(dataDict, mapList, value):
+    getFromDict(dataDict, mapList[:-1])[mapList[-1]] = value
+
+
+if __name__ == "__main__":
+    # note add_help=False since otherwise arguments starting with -h will
+    # trigger an error (despite allow_abbreviate)
+    parser = ArgumentParser(prog="fill_ctd_clargs",
+                            description="fill command line arguments"
+                            "into a CTD file and write the CTD file to stdout",
+                            add_help=False, allow_abbrev=False)
+    parser.add_argument("--ini_file", dest="ini_file", help="input ini file",
+                        metavar='INI', default=None, required=True)
+    parser.add_argument("--ctd_file", dest="ctd_file", help="input ctd file"
+                        "if given then optional parameters from the ini file"
+                        "will be filled with the defaults from this CTD file",
+                        metavar='CTD', default=None, required=False)
+    args, cliargs = parser.parse_known_args()
+
+    # load CTDModel
+    ini_model = None
+    try:
+        ini_model = CTDModel(from_file=args.ini_file)
+    except ModelTypeError:
+        pass
+    try:
+        ini_model = Parameters(from_file=args.ini_file)
+    except ModelTypeError:
+        pass
+    assert ini_model is not None, "Could not parse %s, seems to be no CTD/PARAMS" % (args.ini_file)
+
+    # get a dictionary of the ctd arguments where the values of the parameters
+    # given on the command line are overwritten
+    ini_values = ini_model.parse_cl_args(cl_args=cliargs, ignore_required=True)
+
+    if args.ctd_file:
+        ctd_model = CTDModel(from_file=args.ctd_file)
+        ctd_values = ctd_model.get_defaults()
+        for param in ini_model.get_parameters():
+            if not param.required and (param.default is None or type(param.default) is _Null):
+                lineage = param.get_lineage(name_only=True)
+                try:
+                    default = getFromDict(ctd_values, lineage)
+                except KeyError:
+                    continue
+                setInDict(ini_values, lineage, default)
+
+    # write the ctd with the values taken from the dictionary
+    out = StringIO()
+    ctd_tree = ini_model.write_ctd(out, ini_values)
+    print(out.getvalue())
b
diff -r 047020d9012f -r 63fea23042c4 generate-foo.sh
--- a/generate-foo.sh Sat Jan 30 11:38:47 2021 +0000
+++ b/generate-foo.sh Thu Dec 01 19:01:06 2022 +0000
[
b'@@ -8,17 +8,15 @@\n \n     # get the tests from the CMakeLists.txt\n     # 1st remove some tests\n-    # - OpenSwathMzMLFileCacher with -convert_back argumen https://github.com/OpenMS/OpenMS/issues/4399\n+    # - OpenSwathMzMLFileCacher with -convert_back argument https://github.com/OpenMS/OpenMS/issues/4399\n     # - IDRipper PATH gets empty causing problems. TODO But overall the option needs to be handled differentlt\n     # - several tools with duplicated input (leads to conflict when linking)\n-    # - TOFCalibration inputs we extension (also in prepare_test_data) https://github.com/OpenMS/OpenMS/pull/4525\n     # - MaRaCluster with -consensus_out (parameter blacklister: https://github.com/OpenMS/OpenMS/issues/4456)\n     # - FileMerger with mixed dta dta2d input (ftype can not be specified in the test, dta can not be sniffed)\n     # - some input files are originally in a subdir (degenerated cases/), but not in test-data\n-    # - SeedListGenerator: https://github.com/OpenMS/OpenMS/issues/4404\n     # - OpenSwathAnalyzer 9/10: cachedMzML (not supported yet)\n-    # - FeatureFinderIdentification name clash of two tests https://github.com/OpenMS/OpenMS/pull/5002\n-    # - TODO SiriusAdapter https://github.com/OpenMS/OpenMS/pull/5010\n+    # - SiriusAdapter_4 depends on online service which may timeout .. so keep disabled https://github.com/OpenMS/OpenMS/pull/5010\n+    # - SiriusAdapter_10 should work in >2.8 https://github.com/OpenMS/OpenMS/issues/5869\n     CMAKE=$(cat $OPENMSGIT/src/tests/topp/CMakeLists.txt $OPENMSGIT/src/tests/topp/THIRDPARTY/third_party_tests.cmake  |\n         sed \'s@${DATA_DIR_SHARE}/@@g\' |\n         grep -v \'OpenSwathMzMLFileCacher .*-convert_back\' |\n@@ -26,19 +24,9 @@\n         grep -v "MaRaClusterAdapter.*-consensus_out"|\n         grep -v "FileMerger_1_input1.dta2d.*FileMerger_1_input2.dta " |\n         sed \'s@degenerate_cases/@@g\' |\n-        grep -v \'TOPP_SeedListGenerator_3"\' | \n         egrep -v \'TOPP_OpenSwathAnalyzer_test_3"|TOPP_OpenSwathAnalyzer_test_4"\' |\n-\tegrep -v \'"TOPP_FeatureFinderIdentification_4"\' | \n-\tsed \'s/\\("TOPP_SiriusAdapter_4".*\\)-sirius:database all\\(.*\\)/\\1-sirius:database pubchem\\2/\')\n-\n-\n-#         grep -v \'FileFilter.*-spectra:select_polarity ""\' |\n-#         grep -v \'MassTraceExtractor_2.ini \' |\n-#         grep -v "FileMerger_6_input2.mzML.*FileMerger_6_input2.mzML" |\n-#         grep -v "IDMerger_1_input1.idXML.*IDMerger_1_input1.idXML" |\n-#         grep -v "degenerated_empty.idXML.*degenerated_empty.idXML" |\n-#         grep -v "FeatureLinkerUnlabeledKD_1_output.consensusXML.*FeatureLinkerUnlabeledKD_1_output.consensusXML" |\n-#         grep -v "FeatureLinkerUnlabeledQT_1_output.consensusXML.*FeatureLinkerUnlabeledQT_1_output.consensusXML" |\n+        sed \'s/\\("TOPP_SiriusAdapter_4".*\\)-sirius:database all\\(.*\\)/\\1-sirius:database pubchem\\2/\' |\n+        grep -v \'"TOPP_SiriusAdapter_10"\')\n \n     # 1st part is a dirty hack to join lines containing a single function call, e.g.\n     # addtest(....\n@@ -50,6 +38,7 @@\n         # >&2 echo $line\n         test_id=$(echo "$line" | cut -d" " -f 1)\n         tool_id=$(echo "$line" | cut -d" " -f 2)\n+        # >&2 echo "test_id $test_id"\n         if [[ $test_id =~ _out_?[0-9]? ]]; then\n             >&2 echo "    skip $test_id $line"\n             continue\n@@ -67,7 +56,7 @@\n         tes="  <test>\\n"\n         line=$(fix_tmp_files "$line")\n         line=$(unique_files "$line")\n-        # >&2 echo $line\n+        # >&2 echo LINE $line\n         #if there is an ini file then we use this to generate the test\n         #otherwise the ctd file is used\n         #other command line parameters are inserted later into this xml\n@@ -77,19 +66,23 @@\n         else\n             ini="ctd/$tool_id.ctd"\n         fi\n+        # >&2 echo "========================================================"\n+        # >&2 echo "USING ini $ini"\n         cli=$(echo $line |cut -d" " -f3- | sed \'s/-ini [^ ]\\+//\')\n \n         ctdtmp=$(mktemp)\n-        #echo python3 fill_ctd_clargs.py --ctd $ini $cli\n'..b'SION --test-only --test-unsniffable csv tsv txt dta dta2d edta mrm splib > /dev/null\n+        # >&2 echo CTDConverter galaxy -i $ctdtmp -o $testtmp -s aux/tools_blacklist.txt -f "$FILETYPES" -m macros.xml -t tool.conf  -p aux/hardcoded_params.json --tool-version $VERSION --test-only --test-unsniffable csv tsv txt dta dta2d edta mrm splib --test-condition "compare=sim_size" "delta_frac=0.7"\n+        CTDConverter galaxy -i $ctdtmp -o $testtmp -s aux/tools_blacklist.txt -f "$FILETYPES" -m macros.xml -t tool.conf  -p aux/hardcoded_params.json --tool-version $VERSION --test-only --test-unsniffable csv tsv txt dta dta2d edta mrm splib --test-condition "compare=sim_size" "delta_frac=0.7" > /dev/null\n+        echo "<!-- $test_id -->"\n         cat $testtmp | grep -v \'<output.*file=""\' # | grep -v \'CHEMISTRY/\'\n-        rm $ctdtmp $testtmp\n+\n+        rm "$ctdtmp" "$testtmp"\n \n         #> /dev/null\n \n@@ -130,23 +123,23 @@\n #(e.g. for prepare_test_data, e.g. CLI expects csv but test file is txt)\n #this function replaces the tmp file by the expected file. \n function fix_tmp_files {\n-#    >&2 echo "FIX $line"\n+    # >&2 echo "FIX $line"\n     ret=""\n     for a in $@; do\n-        if [[ ! $a =~ .tmp$ ]]; then\n+        # >&2 echo "    a "$a\n+        if [[ ! $a =~ .tmp$ ]] && [[ ! $a =~ _tmp_ ]]; then\n             ret="$ret $a"\n             continue\n         fi\n-#        >&2 echo "    a "$a\n-        g=$(cat $OPENMSGIT/src/tests/topp/CMakeLists.txt $OPENMSGIT/src/tests/topp/THIRDPARTY/third_party_tests.cmake | awk \'{printf("%s@NEWLINE@", $0)}\' | sed \'s/)@NEWLINE@/)\\n/g\' | sed \'s/@NEWLINE@/ /g\' | grep \'\\${DIFF}.*\'"$a")\n-#        >&2 echo "    g "$g\n-        in1=$(sed \'s/.*-in1 \\([^ ]\\+\\).*/\\1/\' <<<$g)\n+        diff_line=$(cat $OPENMSGIT/src/tests/topp/CMakeLists.txt $OPENMSGIT/src/tests/topp/THIRDPARTY/third_party_tests.cmake | awk \'{printf("%s@NEWLINE@", $0)}\' | sed \'s/)@NEWLINE@/)\\n/g\' | sed \'s/@NEWLINE@/ /g\' | grep \'\\${DIFF}.*\'"$a")\n+        # >&2 echo "    diff_line "$diff_line\n+        in1=$(sed \'s/.*-in1 \\([^ ]\\+\\).*/\\1/\' <<<$diff_line)\n         # >&2 echo "    in1 "$in1\n         if [[  "$a" != "$in1" ]]; then\n             ret="$ret $a"\n             continue\n         fi\n-        in2=$(sed \'s/.*-in2 \\([^ ]\\+\\).*/\\1/\' <<<$g)\n+        in2=$(sed \'s/.*-in2 \\([^ ]\\+\\).*/\\1/\' <<<$diff_line)\n         in2=$(basename $in2 | sed \'s/)$//\')\n         # >&2 echo "    in2 "$in2\n         if [[ -f "test-data/$in2" ]]; then\n@@ -176,11 +169,11 @@\n         fi\n         ln -f -s $in1 test-data/$in2\n     done\n-    for i in test-data/*.tmp\n-    do\n+    \n+    find test-data/ -name "*.tmp" -print0 | \n+    while IFS= read -r -d \'\' i; do \n         if [ ! -e test-data/$(basename $i .tmp) ]; then\n             ln -s $(basename $i) test-data/$(basename $i .tmp)\n-            #ln -s $(basename $i) test-data/$(basename $i .tmp)\n         else\n             ln -fs $(basename $i) test-data/$(basename $i .tmp)\n         fi\n@@ -194,14 +187,14 @@\n #     id=$1\n # | egrep -i "$id\\_.*[0-9]+(_prepare\\"|_convert)?"\n \n-# TODO SiriusAdapter https://github.com/OpenMS/OpenMS/pull/5010\n+    # TODO SiriusAdapter depends on online service which may timeout .. so keep disabled https://github.com/OpenMS/OpenMS/pull/5010\n     cat $OPENMSGIT/src/tests/topp/CMakeLists.txt  $OPENMSGIT/src/tests/topp/THIRDPARTY/third_party_tests.cmake | sed \'s/#.*$//\'| sed \'s/^\\s*//; s/\\s*$//\' | grep -v "^$"  | awk \'{printf("%s@NEWLINE@", $0)}\' | sed \'s/)@NEWLINE@/)\\n/g\' | sed \'s/@NEWLINE@/ /g\' | \n         sed \'s/degenerate_cases\\///\' | \n         egrep -v "WRITEINI|WRITECTD|INVALIDVALUE|DIFF" | \n         grep add_test | \n         egrep "TOPP|UTILS" |\n         sed \'s@${DATA_DIR_SHARE}/@@g;\'|\n-        sed \'s@${TMP_RIP_PATH}@dummy2.tmp@g\'|\n+        sed \'s@${TMP_RIP_PATH}@./@g\'|\n         sed \'s@TOFCalibration_ref_masses @TOFCalibration_ref_masses.txt @g; s@TOFCalibration_const @TOFCalibration_const.csv @\'| \n \tsed \'s/\\("TOPP_SiriusAdapter_4".*\\)-sirius:database all\\(.*\\)/\\1-sirius:database pubchem\\2/\' |\n     while read line\n'
b
diff -r 047020d9012f -r 63fea23042c4 macros.xml
--- a/macros.xml Sat Jan 30 11:38:47 2021 +0000
+++ b/macros.xml Thu Dec 01 19:01:06 2022 +0000
[
@@ -3,14 +3,15 @@
      You can edit this file to add your own macros, if you so desire, or you can
      add additional macro files using the m/macros parameter -->
 <macros>
-  <token name="@TOOL_VERSION@">2.6</token>
-  <token name="@GALAXY_VERSION@">0</token>
+  <token name="@TOOL_VERSION@">2.8</token>
+  <token name="@VERSION_SUFFIX@">0</token>
   <xml name="requirements">
     <requirements>
       <requirement type="package" version="@TOOL_VERSION@">openms</requirement>
       <requirement type="package" version="@TOOL_VERSION@">openms-thirdparty</requirement>
-      <!-- makeblastdb for OMSSAAdapter -->
-      <requirement type="package" version="2.9.0">blast</requirement>
+      <!-- omssa (which has been excluded from 3rdparty) and makeblastdb for OMSSAAdapter -->
+      <requirement type="package" version="2.1.9">omssa</requirement>
+      <requirement type="package" version="2.13.0">blast</requirement>
       <!--<requirement type="package" version="5.0.0">tpp</requirement>-->
       <!-- for realpath (used e.g. in LuciphorAdapter) -->
    <!--<requirement type="package" version="8.25">coreutils</requirement>-->
@@ -33,23 +34,15 @@
     </citations>
   </xml>
   <xml name="adv_opts_macro">
-    <conditional name="adv_opts_cond">
-      <param name="adv_opts_selector" type="select" label="Advanced Options">
-        <option value="basic" selected="True">Hide Advanced Options</option>
-        <option value="advanced">Show Advanced Options</option>
-      </param>
-      <when value="basic"/>
-      <when value="advanced">
-        <yield/>
-      </when>
-    </conditional>
+    <section name="adv_opts" title="Advanced Options" expanded="false">
+      <yield/>
+    </section>
   </xml>
 
   <!-- sanitizers and validators -->
-  <xml name="list_string_val">
-    <validator type="regex" message="parameter must not start with $">^[^$]</validator>
-    
-    <validator type="regex" message="a space separated list of string is needed (strings that contain spaces can be quoted with &quot;)">^ *((?:\"[^\"]*\" +)|(?:[^ \"]+ +))*((?:\"[^\"]*\")|(?:[^ \"]+)) *$</validator>
+  <xml name="list_string_val" token_name="">
+    <validator type="regex" message="parameter @NAME@: must not start with $">^[^$]</validator>
+    <validator type="regex" message="parameter @NAME@: a space separated list of string is needed (strings that contain spaces can be quoted with &quot;)">^ *((?:\"[^\"]*\" +)|(?:[^ \"]+ +))*((?:\"[^\"]*\")|(?:[^ \"]+)) *$</validator>
   </xml>
   <xml name="list_string_san">
     <sanitizer>
@@ -65,8 +58,8 @@
       </valid>
     </sanitizer>
   </xml>
-  <xml name="list_float_valsan">
-    <validator type="regex" message="a space separated list of float values is required">^ *[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?( *[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)* *$</validator>
+  <xml name="list_float_valsan" token_name="">
+    <validator type="regex" message="parameter @NAME@: a space separated list of float values is required">^ *[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?( *[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)* *$</validator>
     <yield/>
     <sanitizer>
       <valid initial="string.digits">
@@ -79,8 +72,8 @@
       </valid>
     </sanitizer>
   </xml>
-  <xml name="list_integer_valsan">
-    <validator type="regex" message="a space separated list of integer values is required">^ *[+-]?[0-9]+( *[+-]?[0-9]+)* *$</validator>
+  <xml name="list_integer_valsan" token_name="">
+    <validator type="regex" message="parameter @NAME@: a space separated list of integer values is required">^ *[+-]?[0-9]+( *[+-]?[0-9]+)* *$</validator>
     <yield/>
     <sanitizer>
       <valid initial="string.digits">
@@ -120,11 +113,11 @@
   </token>
 
 <token name="@EXT_FOO@"><![CDATA[#def oms2gxyext(o)
-    #set m={'txt': 'txt', 'tsv': 'tabular', 'bioml': 'xml', 'consensusXML': 'consensusxml', 'csv': 'csv', 'dta': 'dta', 'dta2d': 'dta2d', 'edta': 'edta', 'fa': 'fasta', 'fas': 'fasta', 'fasta': 'fasta', 'FASTA': 'fasta', 'featureXML': 'featurexml', 'featurexml': 'featurexml', 'html': 'html', 'HTML': 'html', 'idXML': 'idxml', 'json': 'json', 'kroenik': 'kroenik', 'mascotXML': 'mascotxml', 'mgf': 'mgf', 'mrm': 'mrm', 'ms': 'sirius.ms', 'ms2': 'ms2', 'msp': 'msp', 'mzData': 'mzdata', 'mzid': 'mzid', 'mzML': 'mzml', 'mzml': 'mzml', 'mzq': 'mzq', 'mzTab': 'mztab', 'mzXML': 'mzxml', 'novor': 'txt', 'obo': 'obo', 'omssaXML': 'idxml', 'osw': 'osw', 'OSW': 'osw', 'params': 'txt', 'paramXML': 'paramxml', 'peplist': 'peplist', 'pep.xml': 'pepxml', 'pepXML': 'pepxml', 'png': 'png', 'PNG': 'png', 'protXML': 'protxml', 'psms': 'psms', 'pqp': 'pqp', 'qcML': 'qcml', 'spec.xml': 'spec.xml', 'splib': 'splib', 'sqMass': 'sqmass', 'tandem.xml': 'tandem', 'trafoXML': 'trafoxml', 'traML': 'traml', 'TraML': 'traml', 'tab': 'tabular', 'raw': 'thermo.raw', 'xls': 'tsv', 'XML': 'xml', 'xml': 'xml', 'xquest.xml': 'xquest.xml', 'xsd': 'xml'}
+    #set m={'txt': 'txt', 'tsv': 'tabular', 'bioml': 'xml', 'consensusXML': 'consensusxml', 'csv': 'csv', 'dta': 'dta', 'dta2d': 'dta2d', 'edta': 'edta', 'fa': 'fasta', 'fas': 'fasta', 'fasta': 'fasta', 'FASTA': 'fasta', 'featureXML': 'featurexml', 'featurexml': 'featurexml', 'html': 'html', 'HTML': 'html', 'idXML': 'idxml', 'json': 'json', 'kroenik': 'kroenik', 'mascotXML': 'mascotxml', 'mgf': 'mgf', 'mrm': 'mrm', 'ms': 'sirius.ms', 'ms2': 'ms2', 'msp': 'msp', 'mzData': 'mzdata', 'mzid': 'mzid', 'mzML': 'mzml', 'mzml': 'mzml', 'mzq': 'mzq', 'mzQC': 'mzqc', 'mzTab': 'mztab', 'mzXML': 'mzxml', 'novor': 'txt', 'obo': 'obo', 'oms': 'sqlite', 'omssaXML': 'idxml', 'osw': 'osw', 'OSW': 'osw', 'params': 'txt', 'paramXML': 'paramxml', 'peplist': 'peplist', 'pep.xml': 'pepxml', 'pepXML': 'pepxml', 'png': 'png', 'PNG': 'png', 'protXML': 'protxml', 'psms': 'psms', 'pqp': 'pqp', 'qcML': 'qcml', 'spec.xml': 'spec.xml', 'splib': 'splib', 'sqMass': 'sqmass', 'tandem.xml': 'tandem', 'trafoXML': 'trafoxml', 'traML': 'traml', 'TraML': 'traml', 'tab': 'tabular', 'raw': 'thermo.raw', 'xls': 'tsv', 'XML': 'xml', 'xml': 'xml', 'xquest.xml': 'xquest.xml', 'xsd': 'xml'}
     #return m[o]
 #end def
 #def gxy2omsext(g)
-    #set m={'txt': 'txt', 'tabular': 'tsv', 'xml': 'bioml', 'consensusxml': 'consensusXML', 'csv': 'csv', 'dta': 'dta', 'dta2d': 'dta2d', 'edta': 'edta', 'fasta': 'fa', 'featurexml': 'featureXML', 'html': 'html', 'idxml': 'idXML', 'json': 'json', 'kroenik': 'kroenik', 'mascotxml': 'mascotXML', 'mgf': 'mgf', 'mrm': 'mrm', 'sirius.ms': 'ms', 'ms2': 'ms2', 'msp': 'msp', 'mzdata': 'mzData', 'mzid': 'mzid', 'mzml': 'mzML', 'mzq': 'mzq', 'mztab': 'mzTab', 'mzxml': 'mzXML', 'obo': 'obo', 'osw': 'osw', 'paramxml': 'paramXML', 'peff': 'fasta', 'peplist': 'peplist', 'pepxml': 'pep.xml', 'png': 'png', 'protxml': 'protXML', 'psms': 'psms', 'pqp': 'pqp', 'qcml': 'qcML', 'spec.xml': 'spec.xml', 'splib': 'splib', 'sqmass': 'sqMass', 'tandem': 'tandem.xml', 'trafoxml': 'trafoXML', 'traml': 'traML', 'thermo.raw': 'raw', 'tsv': 'xls', 'xquest.xml': 'xquest.xml'}
+    #set m={'txt': 'txt', 'tabular': 'tsv', 'xml': 'bioml', 'consensusxml': 'consensusXML', 'csv': 'csv', 'dta': 'dta', 'dta2d': 'dta2d', 'edta': 'edta', 'fasta': 'fa', 'featurexml': 'featureXML', 'html': 'html', 'idxml': 'idXML', 'json': 'json', 'kroenik': 'kroenik', 'mascotxml': 'mascotXML', 'mgf': 'mgf', 'mrm': 'mrm', 'sirius.ms': 'ms', 'ms2': 'ms2', 'msp': 'msp', 'mzdata': 'mzData', 'mzid': 'mzid', 'mzml': 'mzML', 'mzq': 'mzq', 'mzqc': 'mzQC', 'mztab': 'mzTab', 'mzxml': 'mzXML', 'obo': 'obo', 'sqlite': 'oms', 'osw': 'osw', 'paramxml': 'paramXML', 'peff': 'fasta', 'peplist': 'peplist', 'pepxml': 'pep.xml', 'png': 'png', 'protxml': 'protXML', 'psms': 'psms', 'pqp': 'pqp', 'qcml': 'qcML', 'spec.xml': 'spec.xml', 'splib': 'splib', 'sqmass': 'sqMass', 'tandem': 'tandem.xml', 'trafoxml': 'trafoXML', 'traml': 'traML', 'thermo.raw': 'raw', 'tsv': 'xls', 'xquest.xml': 'xquest.xml'}
     #return m[g]
 #end def
 ]]></token></macros>
b
diff -r 047020d9012f -r 63fea23042c4 macros_autotest.xml
--- a/macros_autotest.xml Sat Jan 30 11:38:47 2021 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,27189 +0,0 @@\n-<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n-<macros>\n-  <xml name="autotest_AccurateMassSearch">\n-    <test expect_num_outputs="2">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="ConsensusMapNormalizer_input.consensusXML"/>\n-      <output name="out" file="AccurateMassSearch_1_output.tmp.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>\n-      <param name="positive_adducts" value="CHEMISTRY/PositiveAdducts.tsv" ftype="tabular"/>\n-      <param name="negative_adducts" value="CHEMISTRY/NegativeAdducts.tsv" ftype="tabular"/>\n-      <section name="db">\n-        <param name="mapping" value="CHEMISTRY/HMDBMappingFile.tsv" ftype="tabular"/>\n-        <param name="struct" value="CHEMISTRY/HMDB2StructMapping.tsv" ftype="tabular"/>\n-      </section>\n-      <section name="algorithm">\n-        <param name="mass_error_value" value="5.0"/>\n-        <param name="mass_error_unit" value="ppm"/>\n-        <param name="ionization_mode" value="positive"/>\n-        <param name="isotopic_similarity" value="false"/>\n-        <param name="use_feature_adducts" value="false"/>\n-        <param name="keep_unidentified_masses" value="false"/>\n-        <section name="mzTab">\n-          <param name="exportIsotopeIntensities" value="false"/>\n-        </section>\n-      </section>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test>\n-    <test expect_num_outputs="3">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="AccurateMassSearch_2_input.featureXML"/>\n-      <output name="out" file="AccurateMassSearch_2_output.tmp.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>\n-      <output name="out_annotation" file="AccurateMassSearch_2_output.tmp.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>\n-      <param name="positive_adducts" value="AMS_PositiveAdducts.tsv" ftype="tabular"/>\n-      <param name="negative_adducts" value="AMS_NegativeAdducts.tsv" ftype="tabular"/>\n-      <section name="db">\n-        <param name="mapping" value="AMS_test_Mapping.tsv" ftype="tabular"/>\n-        <param name="struct" value="AMS_test_Struct.tsv" ftype="tabular"/>\n-      </section>\n-      <section name="algorithm">\n-        <param name="mass_error_value" value="5.0"/>\n-        <param name="mass_error_unit" value="ppm"/>\n-        <param name="ionization_mode" value="positive"/>\n-        <param name="isotopic_similarity" value="false"/>\n-        <param name="use_feature_adducts" value="false"/>\n-        <param name="keep_unidentified_masses" value="false"/>\n-        <section name="mzTab">\n-          <param name="exportIsotopeIntensities" value="true"/>\n-        </section>\n-      </section>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_annotation_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test>\n-    <test expect_num_outputs="3">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="AccurateMassSearch_2_input.featureXML"/>\n-      <output name="out" file="AccurateMassSearch_3_output.tmp.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>\n-      <output name="out_annotation" file="AccurateMassSearch_2_output.tmp.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>\n-      <param name'..b' value="Oxidation (M)"/>\n-      <param name="minimum_fragment_mz" value="150.0"/>\n-      <param name="enzyme" value="Trypsin"/>\n-      <param name="missed_cleavages" value="1"/>\n-      <param name="semi_cleavage" value="false"/>\n-      <param name="output_results" value="all"/>\n-      <param name="max_valid_expect" value="0.1"/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test>\n-    <test expect_num_outputs="2">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="spectra.mzML"/>\n-      <output name="out" file="XTandemAdapter_2_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>\n-      <param name="database" value="proteins.fasta"/>\n-      <param name="default_config_file" value="CHEMISTRY/XTandem_default_input.xml"/>\n-      <param name="ignore_adapter_param" value="false"/>\n-      <param name="precursor_mass_tolerance" value="5.0"/>\n-      <param name="fragment_mass_tolerance" value="0.3"/>\n-      <param name="precursor_error_units" value="ppm"/>\n-      <param name="fragment_error_units" value="Da"/>\n-      <param name="max_precursor_charge" value="0"/>\n-      <param name="no_isotope_error" value="false"/>\n-      <param name="fixed_modifications" value=""/>\n-      <param name="variable_modifications" value="Oxidation (M)"/>\n-      <param name="minimum_fragment_mz" value="150.0"/>\n-      <param name="enzyme" value="Trypsin"/>\n-      <param name="missed_cleavages" value="1"/>\n-      <param name="semi_cleavage" value="false"/>\n-      <param name="output_results" value="valid"/>\n-      <param name="max_valid_expect" value="1e-14"/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test>\n-    <test expect_num_outputs="2">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="spectra.mzML"/>\n-      <output name="out" file="XTandemAdapter_3_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>\n-      <param name="database" value="proteinslong.fasta"/>\n-      <param name="default_config_file" value="CHEMISTRY/XTandem_default_input.xml"/>\n-      <param name="ignore_adapter_param" value="false"/>\n-      <param name="precursor_mass_tolerance" value="5.0"/>\n-      <param name="fragment_mass_tolerance" value="0.3"/>\n-      <param name="precursor_error_units" value="ppm"/>\n-      <param name="fragment_error_units" value="Da"/>\n-      <param name="max_precursor_charge" value="0"/>\n-      <param name="no_isotope_error" value="false"/>\n-      <param name="fixed_modifications" value=""/>\n-      <param name="variable_modifications" value="Oxidation (M)"/>\n-      <param name="minimum_fragment_mz" value="150.0"/>\n-      <param name="enzyme" value="Trypsin"/>\n-      <param name="missed_cleavages" value="1"/>\n-      <param name="semi_cleavage" value="false"/>\n-      <param name="output_results" value="all"/>\n-      <param name="max_valid_expect" value="0.1"/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test>\n-  </xml>\n-<xml name="autotest_InspectAdapter"/><xml name="autotest_InclusionExclusionListCreator"/><xml name="autotest_ProteomicsLFQ"/><xml name="autotest_RTPredict"/><xml name="autotest_PTPredict"/><xml name="autotest_IDDecoyProbability"/></macros>\n'
b
diff -r 047020d9012f -r 63fea23042c4 macros_discarded_auto.xml
--- a/macros_discarded_auto.xml Sat Jan 30 11:38:47 2021 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,378 +0,0 @@\n-\n-<xml name="manutest_OpenSwathFileSplitter">\n-<test expect_num_outputs="2">\n-  <conditional name="adv_opts_cond">\n-    <param name="adv_opts_selector" value="advanced"/>\n-    <param name="force" value="false"/>\n-    <param name="test" value="true"/>\n-  </conditional>\n-  <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>\n-  <output_collection name="outputDirectory" count=""/>\n-  <output name="out_qc" file="OpenSwathFileSplitter_1.json" compare="sim_size" delta="5700" ftype="json"/>\n-  <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_qc_FLAG"/>\n-  <output name="ctd_out" ftype="xml">\n-    <assert_contents>\n-      <is_valid_xml/>\n-    </assert_contents>\n-  </output>\n-</test></xml>\n-<xml name="manutest_IDRipper">\n-<test expect_num_outputs="1">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="IDRipper_1_input.idXML"/>\n-      <output_collection name="out_path" count=""/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test><test expect_num_outputs="1">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="IDRipper_2_input.idXML"/>\n-      <output_collection name="out_path" count=""/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test><test expect_num_outputs="1">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="IDRipper_3_output.idXML"/>\n-      <output_collection name="out_path" count=""/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test></xml>\n-<xml name="manutest_MzMLSplitter">\n-<test expect_num_outputs="1">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="FileFilter_1_input.mzML"/>\n-      <output_collection name="out" count=""/>\n-      <param name="parts" value="2"/>\n-      <param name="size" value="0"/>\n-      <param name="unit" value="MB"/>\n-      <param name="no_chrom" value="false"/>\n-      <param name="no_spec" value="false"/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test><test expect_num_outputs="1">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="FileFilter_1_input.mzML"/>\n-      <output_collection name="out" count=""/>\n-      <param name="parts" value="1"/>\n-      <param name="size" value="40"/>\n-      <param name="unit" value="KB"/>\n-      <param name="no_chrom" value="false"/>\n-      <param name="no_spec" value="false"/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert'..b'" value="2"/>\n-        <param name="precursor_tolerance" value="20.0"/>\n-        <param name="precursor_tolerance_units" value="ppm"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="MaRaClusterAdapter_1_in_1.mzML,MaRaClusterAdapter_1_in_2.mzML"/>\n-      <param name="id_in" value="MaRaClusterAdapter_1_in_3.idXML"/>\n-      <output name="out" file="MaRaClusterAdapter_2_out_1.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>\n-      <param name="pcut" value="-10.0"/>\n-      <param name="min_cluster_size" value="1"/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test></xml>\n-<xml name="manutest_NovorAdapter">\n-<test expect_num_outputs="2">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="in" value="NovorAdapter_in.mzML"/>\n-      <output name="out" file="NovorAdapter_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>\n-      <param name="enzyme" value="Trypsin"/>\n-      <param name="fragmentation" value="CID"/>\n-      <param name="massAnalyzer" value="Trap"/>\n-      <param name="fragment_mass_tolerance" value="0.5"/>\n-      <param name="precursor_mass_tolerance" value="15.0"/>\n-      <param name="precursor_error_units" value="ppm"/>\n-      <param name="variable_modifications" value="Acetyl (K)"/>\n-      <param name="fixed_modifications" value="Carbamidomethyl (C)"/>\n-      <param name="forbiddenResidues" value="I"/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test></xml>\n-<xml name="manutest_SpectraSTSearchAdapter">\n-<test expect_num_outputs="2">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="use_isotopically_averaged_mass" value="false"/>\n-        <param name="use_all_charge_states" value="false"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="spectra_files" value="SpectrastAdapter_1_hack.mzML"/>\n-      <param name="output_files_type" value="pep.xml"/>\n-      <output_collection name="output_files" count="1"/>\n-      <param name="library_file" value="testLib.splib" ftype="splib"/>\n-      <param name="sequence_database_type" value="AA"/>\n-      <param name="precursor_mz_tolerance" value="3.0"/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test><test expect_num_outputs="2">\n-      <conditional name="adv_opts_cond">\n-        <param name="adv_opts_selector" value="advanced"/>\n-        <param name="use_isotopically_averaged_mass" value="false"/>\n-        <param name="use_all_charge_states" value="false"/>\n-        <param name="force" value="false"/>\n-        <param name="test" value="true"/>\n-      </conditional>\n-      <param name="spectra_files" value="SpectrastAdapter_1_hack.mzML"/>\n-      <param name="output_files_type" value="tsv"/>\n-      <output_collection name="output_files" count="1"/>\n-      <param name="library_file" value="testLib.splib" ftype="splib"/>\n-      <param name="sequence_database_type" value="AA"/>\n-      <param name="precursor_mz_tolerance" value="3.0"/>\n-      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>\n-      <output name="ctd_out" ftype="xml">\n-        <assert_contents>\n-          <is_valid_xml/>\n-        </assert_contents>\n-      </output>\n-    </test></xml>\n'
b
diff -r 047020d9012f -r 63fea23042c4 macros_test.xml
--- a/macros_test.xml Sat Jan 30 11:38:47 2021 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,553 +0,0 @@\n-<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n-<macros>\n-    \n-<!-- a copy of a FileConverter test without the advanced options used\n-     in order to check if this works (all other tests enable advanced) -->\n-<xml name="manutest_FileConverter">\n-<test expect_num_outputs="1">\n-  <param name="in" value="FileConverter_1_input.mzData"/>\n-  <output name="out" file="FileConverter_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>\n-  <param name="out_type" value="mzML"/>\n-</test>\n-</xml>\n-<!-- tests contributed by the galaxyproteomics community -->\n-<xml name="manutest_ClusterMassTracesByPrecursor">\n-  <test expect_num_outputs="1"><!-- test with arbitarily chosen consensusXML -->\n-    <param name="adv_opts_selector" value="advanced"/>\n-    <param name="adv_opts_cond|test" value="true"/>\n-    <param name="in_ms1" ftype="consensusxml" value="ConsensusMapNormalizer_input.consensusXML"/>\n-    <param name="in_swath" ftype="consensusxml" value="ConsensusMapNormalizer_input.consensusXML"/>\n-    <output name="out" ftype="mzml" value="ClusterMassTracesByPrecursor.mzml"/>\n-  </test>\n-</xml>\n-<xml name="manutest_ClusterMassTraces"> \n-  <test expect_num_outputs="1"><!-- test with arbitarily chosen consensusXML -->\n-    <param name="adv_opts_selector" value="advanced"/>\n-    <param name="adv_opts_cond|test" value="true"/>\n-    <param name="in" ftype="consensusxml" value="ConsensusMapNormalizer_input.consensusXML"/>\n-    <output name="out" ftype="mzml" value="ClusterMassTraces.mzml"/>\n-  </test>\n-</xml>\n-<xml name="manutest_CVInspector">\n-  <!-- test with https://raw.githubusercontent.com/HUPO-PSI/mzIdentML/master/cv/XLMOD.obo listed here https://www.psidev.info/groups/controlled-vocabularies, mapping file from share/OpenMS/MAPPING/ms-mapping.xml, see currently not working, see: https://github.com/OpenMS/OpenMS/pull/4425 -->\n-  <test expect_num_outputs="1">\n-    <param name="adv_opts_selector" value="advanced"/>\n-    <param name="adv_opts_cond|test" value="true"/>\n-    <param name="cv_files" ftype="obo" value="CHEMISTRY/XLMOD.obo"/>\n-    <param name="cv_names" value="XLMOD"/>\n-    <param name="mapping_file" value="MAPPING/ms-mapping.xml"/>\n-    <param name="OPTIONAL_OUTPUTS" value="html_FLAG"/>\n-    <output name="html" ftype="html" value="CVInspector.html"/>\n-  </test>\n-</xml>\n-<xml name="manutest_DeMeanderize">\n-  <test expect_num_outputs="1"><!-- test with the output of a MSsimulator output generated by a test below -->\n-    <param name="adv_opts_selector" value="advanced"/>\n-    <param name="adv_opts_cond|test" value="true"/>\n-    <param name="in" ftype="mzml" value="MSsimulator_MALDI.mzml"/>\n-\t<output name="out" ftype="mzml" value="DeMeanderize.mzml"/>\n-  </test>\n-</xml>\n-<xml name="manutest_Digestor">\n-  <test expect_num_outputs="1"><!-- just using some random fasta, in contrast to DigestorMotif idXML/fasta output possible, testing for the non-default fasta option -->\n-    <param name="adv_opts_selector" value="advanced"/>\n-    <param name="adv_opts_cond|test" value="true"/>\n-    <param name="in" ftype="fasta" value="random.fa"/>\n-    <output name="out" ftype="fasta" value="Digestor.fasta"/>\n-    <param name="out_type" value="fasta"/>\n-  </test>\n-</xml>\n-<xml name="manutest_EICExtractor">\n-  <test expect_num_outputs="1"><!-- just using some random test data -->\n-    <param name="adv_opts_selector" value="advanced"/>\n-    <param name="adv_opts_cond|test" value="true"/>\n-    <param name="in" value="spectra.mzML"/>\n-    <param name="pos" ftype="edta" value="FileConverter_10_input.edta"/>\n-    <output name="out" ftype="csv" value="EICExtractor.csv" lines_diff="2"/>\n-  </test>\n-</xml>\n-<xml name="manutest_ERPairFinder">\n-  <!-- TODO -->\n-</xml>\n-<xml name="manutest_FeatureFinderIsotopeWavelet">\n-  <test expect_num_outputs="1"><!--just use the input of another FeatureFinder -->\n-    <param name="adv_opts_selector" value="advanced"/>\n-    <param name="adv_opts_cond|test" value="true"/>\n-    <param name="in" value="FeatureFin'..b'atureFinderMetabo"/><xml name="manutest_CruxAdapter"/><xml name="manutest_OpenSwathConfidenceScoring"/><xml name="manutest_PrecursorIonSelector"/><xml name="manutest_ConsensusMapNormalizer"/><xml name="manutest_RTPredict"/><xml name="manutest_PercolatorAdapter"/><xml name="manutest_ProteinInference"/><xml name="manutest_OpenSwathDecoyGenerator"/><xml name="manutest_TextExporter"/><xml name="manutest_FeatureFinderCentroided"/><xml name="manutest_DecoyDatabase"/><xml name="manutest_SpectraFilterWindowMower"/><xml name="manutest_NoiseFilterGaussian"/><xml name="manutest_MaRaClusterAdapter"/><xml name="manutest_ConsensusID"/><xml name="manutest_FileFilter"/><xml name="manutest_InclusionExclusionListCreator"/><xml name="manutest_FeatureLinkerUnlabeledKD"/><xml name="manutest_NovorAdapter"/><xml name="manutest_OpenPepXL"/><xml name="manutest_SeedListGenerator"/><xml name="manutest_FalseDiscoveryRate"/><xml name="manutest_OpenPepXLLF"/><xml name="manutest_SpecLibSearcher"/><xml name="manutest_IDConflictResolver"/><xml name="manutest_MRMMapper"/><xml name="manutest_OMSSAAdapter"/><xml name="manutest_ExternalCalibration"/><xml name="manutest_PeakPickerHiRes"/><xml name="manutest_MascotAdapter"/><xml name="manutest_FeatureFinderMultiplex"/><xml name="manutest_MetaProSIP"/><xml name="manutest_FuzzyDiff"/><xml name="manutest_TargetedFileConverter"/><xml name="manutest_MapAlignerIdentification"/><xml name="manutest_IDRTCalibration"/><xml name="manutest_MRMTransitionGroupPicker"/><xml name="manutest_RTModel"/><xml name="manutest_OpenSwathAssayGenerator"/><xml name="manutest_IDSplitter"/><xml name="manutest_OpenSwathMzMLFileCacher"/><xml name="manutest_HighResPrecursorMassCorrector"/><xml name="manutest_OpenSwathChromatogramExtractor"/><xml name="manutest_OpenSwathAnalyzer"/><xml name="manutest_FeatureLinkerUnlabeled"/><xml name="manutest_CompNovoCID"/><xml name="manutest_DTAExtractor"/><xml name="manutest_FileInfo"/><xml name="manutest_MapAlignerSpectrum"/><xml name="manutest_IsobaricAnalyzer"/><xml name="manutest_LowMemPeakPickerHiRes"/><xml name="manutest_MyriMatchAdapter"/><xml name="manutest_InternalCalibration"/><xml name="manutest_TOFCalibration"/><xml name="manutest_MSGFPlusAdapter"/><xml name="manutest_PTModel"/><xml name="manutest_InspectAdapter"/><xml name="manutest_SpectraFilterSqrtMower"/><xml name="manutest_SimpleSearchEngine"/><xml name="manutest_PeakPickerWavelet"/><xml name="manutest_MapNormalizer"/><xml name="manutest_IDScoreSwitcher"/><xml name="manutest_FeatureLinkerLabeled"/><xml name="manutest_MapRTTransformer"/><xml name="manutest_RNPxlSearch"/><xml name="manutest_PrecursorMassCorrector"/><xml name="manutest_MapAlignerPoseClustering"/><xml name="manutest_MzTabExporter"/><xml name="manutest_BaselineFilter"/><xml name="manutest_FeatureFinderMRM"/><xml name="manutest_MascotAdapterOnline"/><xml name="manutest_DatabaseFilter"/><xml name="manutest_ProteinResolver"/><xml name="manutest_OpenSwathFeatureXMLToTSV"/><xml name="manutest_FidoAdapter"/><xml name="manutest_AccurateMassSearch"/><xml name="manutest_CompNovo"/><xml name="manutest_LowMemPeakPickerHiResRandomAccess"/><xml name="manutest_OpenSwathRTNormalizer"/><xml name="manutest_PeptideIndexer"/><xml name="manutest_CometAdapter"/><xml name="manutest_NoiseFilterSGolay"/><xml name="manutest_MSFraggerAdapter"/><xml name="manutest_SpectraSTSearchAdapter"/><xml name="manutest_SequestAdapter"/><xml name="manutest_FeatureFinder"/><xml name="manutest_LuciphorAdapter"/><xml name="manutest_GNPSExport"/><xml name="manutest_Epifany"/><xml name="manutest_NucleicAcidSearchEngine"/><xml name="manutest_QualityControl"/><xml name="manutest_FeatureFinderMetaboIdent"/><xml name="manutest_RNAMassCalculator"/><xml name="manutest_MapAlignerTreeGuided"/><xml name="manutest_IDMassAccuracy"/><xml name="manutest_ProteomicsLFQ"/><xml name="manutest_IDDecoyProbability"/><xml name="manutest_DigestorMotif"/><xml name="manutest_DatabaseSuitability"/><xml name="manutest_StaticModification"/></macros>\n'
b
diff -r 047020d9012f -r 63fea23042c4 readme.md
--- a/readme.md Sat Jan 30 11:38:47 2021 +0000
+++ b/readme.md Thu Dec 01 19:01:06 2022 +0000
b
@@ -74,10 +74,15 @@
 
 Preprocessing:
 
-- For each input / output data set parameter a directory is crated (named by
-  the parameter)
 - For input data set parameters the links to the actual location of the data
-  sets are created
+  sets are created, the link names are `element_identifier`.`EXT`, where `EXT`
+  is an extension that is known by OpenMS
+- In order to avoid name collisions for the created links each is placed in a
+  unique directory: `PARAM_NAME/DATASET_ID`, where `PARAM_NAME` is the name
+  of the parameter and `DATASET_ID` is the id of the Galaxy dataset 
+- the same happens for output parameters that are in 1:1 correspondence with
+  an input parameter
+
 
 Main:
 
b
diff -r 047020d9012f -r 63fea23042c4 test-data.sh
--- a/test-data.sh Sat Jan 30 11:38:47 2021 +0000
+++ b/test-data.sh Thu Dec 01 19:01:06 2022 +0000
[
b'@@ -1,22 +1,25 @@\n #!/usr/bin/env bash\n \n-VERSION=2.6\n-FILETYPES="filetypes.txt"\n-CONDAPKG="https://anaconda.org/bioconda/openms/2.6.0/download/linux-64/openms-2.6.0-h4afb90d_0.tar.bz2"\n+VERSION=2.8\n+FILETYPES="aux/filetypes.txt"\n+CONDAPKG="https://anaconda.org/bioconda/openms/2.8.0/download/linux-64/openms-2.8.0-h7ca0330_0.tar.bz2"\n \n # import the magic\n . ./generate-foo.sh\n \n # install conda\n if [ -z "$tmp" ]; then\n-\ttmp=$(mktemp -d)\n-\tcreated="yes"\n+    tmp=$(mktemp -d)\n+    created="yes"\n fi\n \n export OPENMSGIT="$tmp/OpenMS$VERSION.0-git"\n export OPENMSPKG="$tmp/OpenMS$VERSION-pkg/"\n-export OPENMSENV="$tmp/OpenMS$VERSION-env"\n-export CTDCONVERTER="$tmp/CTDConverter"\n+export OPENMSENV="OpenMS$VERSION-env"\n+\n+if [ -z "$CTDCONVERTER" ]; then\n+    export CTDCONVERTER="$tmp/CTDConverter"\n+fi\n \n if [[ -z "$1" ]]; then\n \tautotests="/dev/null"\n@@ -25,11 +28,11 @@\n fi\n \n if type conda > /dev/null; then  \n-\ttrue\n+    true\n else\n-\twget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh\n-\tbash Miniconda3-latest-Linux-x86_64.sh -b -p "$tmp/miniconda"\n-\tsource "$tmp/miniconda/bin/activate"\n+    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh\n+    bash Miniconda3-latest-Linux-x86_64.sh -b -p "$tmp/miniconda"\n+    source "$tmp/miniconda/bin/activate"\n fi\n eval "$(conda shell.bash hook)"\n \n@@ -42,24 +45,27 @@\n \n echo "Clone OpenMS $VERSION sources"\n if [[ ! -d $OPENMSGIT ]]; then\n-\tgit clone -b release/$VERSION.0 https://github.com/OpenMS/OpenMS.git $OPENMSGIT\n-\tcd $OPENMSGIT\n-\tgit submodule init\n-\tgit submodule update\n-\tcd -\n+    # TODO >2.8 reenable original release branch .. also in else branch\n+    # the plus branch contains commits from https://github.com/OpenMS/OpenMS/pull/5920 and https://github.com/OpenMS/OpenMS/pull/5917\n+    # git clone -b release/$VERSION.0 https://github.com/OpenMS/OpenMS.git $OPENMSGIT\n+    git clone -b release/$VERSION.0-plus https://github.com/bernt-matthias/OpenMS.git $OPENMSGIT\n+    cd $OPENMSGIT\n+    git submodule init\n+    git submodule update\n+    cd -\n else\n-\tcd $OPENMSGIT\n-\tgit pull origin release/$VERSION.0\n-\tcd -\n+    cd $OPENMSGIT\n+    git pull origin release/$VERSION.0-plus\n+    cd -\n fi\n \n echo "Create OpenMS $VERSION conda env"\n # TODO currently add lxml (needed by CTDConverter)\n # TODO for some reason a to recent openjdk is used\n if conda env list | grep "$OPENMSENV"; then\n-\ttrue\n+    true\n else\n-\tconda create -y --quiet --override-channels --channel iuc --channel conda-forge --channel bioconda --channel defaults -p $OPENMSENV openms=$VERSION openms-thirdparty=$VERSION ctdopts=1.4 lxml\n+    conda create -y --quiet --override-channels --channel iuc --channel conda-forge --channel bioconda --channel defaults -n $OPENMSENV openms=$VERSION openms-thirdparty=$VERSION omssa=2.1.9 ctdopts=1.5 lxml\n # chmod -R u-w $OPENMSENV \n fi\n ###############################################################################\n@@ -69,10 +75,10 @@\n echo "Download OpenMS $VERSION package $CONDAPKG"\n \n if [[ ! -d $OPENMSPKG ]]; then\n-\tmkdir $OPENMSPKG\n-\twget -q -P $OPENMSPKG/ "$CONDAPKG"\n-\ttar -xf $OPENMSPKG/"$(basename $CONDAPKG)" -C $OPENMSPKG/\n-\trm $OPENMSPKG/"$(basename $CONDAPKG)"\n+    mkdir $OPENMSPKG\n+    wget -q -P $OPENMSPKG/ "$CONDAPKG"\n+    tar -xf $OPENMSPKG/"$(basename $CONDAPKG)" -C $OPENMSPKG/\n+    rm $OPENMSPKG/"$(basename $CONDAPKG)"\n fi\n \n ###############################################################################\n@@ -81,40 +87,46 @@\n ###############################################################################\n echo "Clone CTDConverter"\n if [[ ! -d $CTDCONVERTER ]]; then\n-\t#git clone https://github.com/WorkflowConversion/CTDConverter.git CTDConverter\n-\tgit clone -b topic/cdata https://github.com/bernt-matthias/CTDConverter.git $CTDCONVERTER\n+    #git clone https://github.com/WorkflowConversion/CTDConverter.git CTDConverter\n+    git clone -b topic/fix-selects2 https://github.com/bernt-matthias/CTDConverter.git $CTDCONVERTER\n else\n-\tcd $CTDCONVERTER\n-\tgi'..b'*/\\([^/]\\+\\).xml$@\\1@\' | tr \'\\n\' \'|\' | sed \'s/|$//\')\n+## else\n+##     REX=".*"\n+## fi\n+## echo REX $REX\n+## cat tmp_test_data.sh | egrep "($REX)" >> prepare_test_data.sh\n+## rm tmp_test_data.sh\n \n echo "Execute test shell script"\n chmod u+x prepare_test_data.sh\n@@ -204,14 +212,13 @@\n cd - || exit\n \n \n-###############################################################################\n-## create/update test data for the manually generated tests\n-## - run convert once with the manual tests only and \n-## - update test-data (needs to run 2x)\n-###############################################################################\n+# ###############################################################################\n+# ## create/update test data for the manually generated tests\n+# ## - run convert once with the manual tests only and \n+# ## - update test-data (needs to run 2x)\n+# ###############################################################################\n echo "Execute test shell script for manually curated tests"\n chmod u+x prepare_test_data_manual.sh\n-\n cd ./test-data || exit\n ../prepare_test_data_manual.sh\n cd - || exit\n@@ -220,22 +227,28 @@\n ###############################################################################\n ## auto generate tests\n ###############################################################################\n+\n echo "Write test macros to $autotests"\n echo "<macros>" > "$autotests"\n-for i in $(ls *xml |grep -v macros)\n+\n+for i in $(ls ctd/*ctd)\n do\n-\tb=$(basename "$i" .xml)\n-\tget_tests2 "$b" >> "$autotests"\n+    b=$(basename "$i" .ctd)\n+    get_tests2 "$b" >> "$autotests"\n done\n echo "</macros>" >> "$autotests"\n \n-echo "Create test data links"\n-link_tmp_files\n+# echo "Create test data links"\n+# Breaks DecoyDatabase\n+# link_tmp_files\n \n # tests for tools using output_prefix parameters can not be auto generated\n # hence we output the tests for manual curation in macros_test.xml\n # and remove them from the autotests\n-# -> OpenSwathFileSplitter IDRipper MzMLSplitter\n+# -> OpenSwathFileSplitter IDRipper MzMLSplitter SeedListGenerator\n+# TODO reevaluate in >2.8 \n+# - https://github.com/OpenMS/OpenMS/pull/5873\n+# - https://github.com/OpenMS/OpenMS/pull/5912\n #\n # Furthermore we remove tests for tools without binaries in conda\n # -> MSFragger MaRaClusterAdapter NovorAdapter \n@@ -243,23 +256,23 @@\n # not able to specify composite test data  \n # -> SpectraSTSearchAdapter \n if [[ ! -z "$1" ]]; then\n-\techo "" > macros_discarded_auto.xml\n-\tfor i in OpenSwathFileSplitter IDRipper MzMLSplitter MSFraggerAdapter MaRaClusterAdapter NovorAdapter SpectraSTSearchAdapter\n-\tdo\n-\t\techo "<xml name=\\"manutest_$i\\">" >>  macros_discarded_auto.xml\n-\t\txmlstarlet sel -t -c "/macros/xml[@name=\'autotest_$i\']/test" macros_autotest.xml >>  macros_discarded_auto.xml\n-\t\techo "</xml>"  >>  macros_discarded_auto.xml\n-\t\txmlstarlet ed -d "/macros/xml[@name=\'autotest_$i\']/test" macros_autotest.xml > tmp\n-\t\tmv tmp macros_autotest.xml\n-\tdone\n-\t>&2 echo "discarded autogenerated macros for curation in macros_discarded_auto.xml"\n+    echo "" > macros_discarded_auto.xml\n+    for i in OpenSwathFileSplitter IDRipper MzMLSplitter SeedListGenerator MSFraggerAdapter MaRaClusterAdapter NovorAdapter SpectraSTSearchAdapter\n+    do\n+        echo "<xml name=\\"manutest_$i\\">" >>  macros_discarded_auto.xml\n+        xmlstarlet sel -t -c "/macros/xml[@name=\'autotest_$i\']/test" macros_autotest.xml >>  macros_discarded_auto.xml\n+        echo "</xml>"  >>  macros_discarded_auto.xml\n+        xmlstarlet ed -d "/macros/xml[@name=\'autotest_$i\']/test" macros_autotest.xml > tmp\n+        mv tmp macros_autotest.xml\n+    done\n+    >&2 echo "discarded autogenerated macros for curation in macros_discarded_auto.xml"\n fi\n conda deactivate\n \n ## remove broken symlinks in test-data\n find test-data/ -xtype l -delete\n \n-# if [ ! -z "$created" ]; then\n-# \techo "Removing temporary directory"\n-# \trm -rf "$tmp"\n-# fi\n+if [ ! -z "$created" ]; then\n+    echo "Removing temporary directory"\n+    rm -rf "$tmp"\n+fi\n'