comparison QualityControl.xml @ 5:ea02cc72f0b9 draft default tip

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
author galaxyp
date Fri, 14 Jun 2024 21:46:38 +0000
parents bd210b86fb5d
children
comparison
equal deleted inserted replaced
4:bd210b86fb5d 5:ea02cc72f0b9
1 <?xml version='1.0' encoding='UTF-8'?>
2 <!--This is a configuration file for the integration of a tools into Galaxy (https://galaxyproject.org/). This file was automatically generated using CTDConverter.--> 1 <!--This is a configuration file for the integration of a tools into Galaxy (https://galaxyproject.org/). This file was automatically generated using CTDConverter.-->
3 <!--Proposed Tool Section: [Quality Control]--> 2 <!--Proposed Tool Section: [Quality Control]-->
4 <tool id="QualityControl" name="QualityControl" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05"> 3 <tool id="QualityControl" name="QualityControl" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05">
5 <description>Computes various QC metrics from many possible input files (only the consensusXML is required). The more optional files you provide, the more metrics you get.</description> 4 <description>Computes various QC metrics from many possible input files (only the consensusXML is required). The more optional files you provide, the more metrics you get</description>
6 <macros> 5 <macros>
7 <token name="@EXECUTABLE@">QualityControl</token> 6 <token name="@EXECUTABLE@">QualityControl</token>
8 <import>macros.xml</import> 7 <import>macros.xml</import>
9 </macros> 8 </macros>
10 <expand macro="requirements"/> 9 <expand macro="requirements"/>
13 @EXT_FOO@ 12 @EXT_FOO@
14 #import re 13 #import re
15 14
16 ## Preprocessing 15 ## Preprocessing
17 mkdir in_cm && 16 mkdir in_cm &&
18 ln -s '$in_cm' 'in_cm/${re.sub("[^\w\-_]", "_", $in_cm.element_identifier)}.$gxy2omsext($in_cm.ext)' && 17 cp '$in_cm' 'in_cm/${re.sub("[^\w\-_]", "_", $in_cm.element_identifier)}.$gxy2omsext($in_cm.ext)' &&
19 #if $in_raw_cond.in_raw: 18 #if $in_raw_cond.in_raw:
20 mkdir in_raw_cond.in_raw && 19 mkdir in_raw_cond.in_raw &&
21 #if $in_raw_cond.in_raw_select == "no" 20 #if $in_raw_cond.in_raw_select == "no"
22 mkdir ${' '.join(["'in_raw_cond.in_raw/%s'" % (i) for i, f in enumerate($in_raw_cond.in_raw) if f])} && 21 mkdir ${' '.join(["'in_raw_cond.in_raw/%s'" % (i) for i, f in enumerate($in_raw_cond.in_raw) if f])} &&
23 ${' '.join(["ln -s '%s' 'in_raw_cond.in_raw/%s/%s.%s' && " % (f, i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_raw_cond.in_raw) if f])} 22 ${' '.join(["cp '%s' 'in_raw_cond.in_raw/%s/%s.%s' && " % (f, i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_raw_cond.in_raw) if f])}
24 #else 23 #else
25 ln -s '$in_raw_cond.in_raw' 'in_raw_cond.in_raw/${re.sub("[^\w\-_]", "_", $in_raw_cond.in_raw.element_identifier)}.$gxy2omsext($in_raw_cond.in_raw.ext)' && 24 cp '$in_raw_cond.in_raw' 'in_raw_cond.in_raw/${re.sub("[^\w\-_]", "_", $in_raw_cond.in_raw.element_identifier)}.$gxy2omsext($in_raw_cond.in_raw.ext)' &&
26 #end if 25 #end if
27 #end if 26 #end if
28 #if $in_postFDR_cond.in_postFDR: 27 #if $in_postFDR_cond.in_postFDR:
29 mkdir in_postFDR_cond.in_postFDR && 28 mkdir in_postFDR_cond.in_postFDR &&
30 #if $in_postFDR_cond.in_postFDR_select == "no" 29 #if $in_postFDR_cond.in_postFDR_select == "no"
31 mkdir ${' '.join(["'in_postFDR_cond.in_postFDR/%s'" % (i) for i, f in enumerate($in_postFDR_cond.in_postFDR) if f])} && 30 mkdir ${' '.join(["'in_postFDR_cond.in_postFDR/%s'" % (i) for i, f in enumerate($in_postFDR_cond.in_postFDR) if f])} &&
32 ${' '.join(["ln -s '%s' 'in_postFDR_cond.in_postFDR/%s/%s.%s' && " % (f, i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_postFDR_cond.in_postFDR) if f])} 31 ${' '.join(["cp '%s' 'in_postFDR_cond.in_postFDR/%s/%s.%s' && " % (f, i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_postFDR_cond.in_postFDR) if f])}
33 #else 32 #else
34 ln -s '$in_postFDR_cond.in_postFDR' 'in_postFDR_cond.in_postFDR/${re.sub("[^\w\-_]", "_", $in_postFDR_cond.in_postFDR.element_identifier)}.$gxy2omsext($in_postFDR_cond.in_postFDR.ext)' && 33 cp '$in_postFDR_cond.in_postFDR' 'in_postFDR_cond.in_postFDR/${re.sub("[^\w\-_]", "_", $in_postFDR_cond.in_postFDR.element_identifier)}.$gxy2omsext($in_postFDR_cond.in_postFDR.ext)' &&
35 #end if 34 #end if
36 #end if 35 #end if
37 #if "out_FLAG" in str($OPTIONAL_OUTPUTS).split(',') 36 #if "out_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
38 mkdir out && 37 mkdir out &&
39 #end if 38 #end if
44 mkdir out_feat && 43 mkdir out_feat &&
45 mkdir ${' '.join(["'out_feat/%s'" % (i) for i, f in enumerate($in_postFDR_cond.in_postFDR) if f])} && 44 mkdir ${' '.join(["'out_feat/%s'" % (i) for i, f in enumerate($in_postFDR_cond.in_postFDR) if f])} &&
46 #end if 45 #end if
47 #if $in_contaminants: 46 #if $in_contaminants:
48 mkdir in_contaminants && 47 mkdir in_contaminants &&
49 ln -s '$in_contaminants' 'in_contaminants/${re.sub("[^\w\-_]", "_", $in_contaminants.element_identifier)}.$gxy2omsext($in_contaminants.ext)' && 48 cp '$in_contaminants' 'in_contaminants/${re.sub("[^\w\-_]", "_", $in_contaminants.element_identifier)}.$gxy2omsext($in_contaminants.ext)' &&
49 #end if
50 #if $in_fasta:
51 mkdir in_fasta &&
52 cp '$in_fasta' 'in_fasta/${re.sub("[^\w\-_]", "_", $in_fasta.element_identifier)}.$gxy2omsext($in_fasta.ext)' &&
50 #end if 53 #end if
51 #if $in_trafo_cond.in_trafo: 54 #if $in_trafo_cond.in_trafo:
52 mkdir in_trafo_cond.in_trafo && 55 mkdir in_trafo_cond.in_trafo &&
53 #if $in_trafo_cond.in_trafo_select == "no" 56 #if $in_trafo_cond.in_trafo_select == "no"
54 mkdir ${' '.join(["'in_trafo_cond.in_trafo/%s'" % (i) for i, f in enumerate($in_trafo_cond.in_trafo) if f])} && 57 mkdir ${' '.join(["'in_trafo_cond.in_trafo/%s'" % (i) for i, f in enumerate($in_trafo_cond.in_trafo) if f])} &&
55 ${' '.join(["ln -s '%s' 'in_trafo_cond.in_trafo/%s/%s.%s' && " % (f, i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_trafo_cond.in_trafo) if f])} 58 ${' '.join(["cp '%s' 'in_trafo_cond.in_trafo/%s/%s.%s' && " % (f, i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_trafo_cond.in_trafo) if f])}
56 #else 59 #else
57 ln -s '$in_trafo_cond.in_trafo' 'in_trafo_cond.in_trafo/${re.sub("[^\w\-_]", "_", $in_trafo_cond.in_trafo.element_identifier)}.$gxy2omsext($in_trafo_cond.in_trafo.ext)' && 60 cp '$in_trafo_cond.in_trafo' 'in_trafo_cond.in_trafo/${re.sub("[^\w\-_]", "_", $in_trafo_cond.in_trafo.element_identifier)}.$gxy2omsext($in_trafo_cond.in_trafo.ext)' &&
58 #end if 61 #end if
59 #end if 62 #end if
60 63
61 ## Main program call 64 ## Main program call
62 65
96 #end if 99 #end if
97 #if $in_contaminants: 100 #if $in_contaminants:
98 -in_contaminants 101 -in_contaminants
99 'in_contaminants/${re.sub("[^\w\-_]", "_", $in_contaminants.element_identifier)}.$gxy2omsext($in_contaminants.ext)' 102 'in_contaminants/${re.sub("[^\w\-_]", "_", $in_contaminants.element_identifier)}.$gxy2omsext($in_contaminants.ext)'
100 #end if 103 #end if
104 #if $in_fasta:
105 -in_fasta
106 'in_fasta/${re.sub("[^\w\-_]", "_", $in_fasta.element_identifier)}.$gxy2omsext($in_fasta.ext)'
107 #end if
101 #if $in_trafo_cond.in_trafo: 108 #if $in_trafo_cond.in_trafo:
102 -in_trafo 109 -in_trafo
103 #if $in_trafo_cond.in_trafo_select == "no" 110 #if $in_trafo_cond.in_trafo_select == "no"
104 ${' '.join(["'in_trafo_cond.in_trafo/%s/%s.%s'"%(i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_trafo_cond.in_trafo) if f])} 111 ${' '.join(["'in_trafo_cond.in_trafo/%s/%s.%s'"%(i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_trafo_cond.in_trafo) if f])}
105 #else 112 #else
126 <configfiles> 133 <configfiles>
127 <inputs name="args_json" data_style="paths"/> 134 <inputs name="args_json" data_style="paths"/>
128 <configfile name="hardcoded_json"><![CDATA[{"log": "log.txt", "threads": "\${GALAXY_SLOTS:-1}", "no_progress": true}]]></configfile> 135 <configfile name="hardcoded_json"><![CDATA[{"log": "log.txt", "threads": "\${GALAXY_SLOTS:-1}", "no_progress": true}]]></configfile>
129 </configfiles> 136 </configfiles>
130 <inputs> 137 <inputs>
131 <param argument="-in_cm" type="data" format="consensusxml" optional="false" label="ConsensusXML input, generated by FeatureLinke" help=" select consensusxml data sets(s)"/> 138 <param argument="-in_cm" type="data" format="consensusxml" label="ConsensusXML input, generated by FeatureLinke" help=" select consensusxml data sets(s)"/>
132 <conditional name="in_raw_cond"> 139 <conditional name="in_raw_cond">
133 <param name="in_raw_select" type="select" label="Run tool in batch mode for -in_raw"> 140 <param name="in_raw_select" type="select" label="Run tool in batch mode for -in_raw">
134 <option value="no">No: process all datasets jointly</option> 141 <option value="no">No: process all datasets jointly</option>
135 <option value="yes">Yes: process each dataset in an independent job</option> 142 <option value="yes">Yes: process each dataset in an independent job</option>
136 </param> 143 </param>
137 <when value="no"> 144 <when value="no">
138 <param argument="-in_raw" type="data" format="mzml" multiple="true" optional="true" label="MzML input (after InternalCalibration, if available)" help=" select mzml data sets(s)"/> 145 <param argument="-in_raw" type="data" format="mzml" multiple="true" optional="true" label="MzML input (after InternalCalibration, if available)" help=" select mzml data sets(s)"/>
139 </when> 146 </when>
140 <when value="yes"> 147 <when value="yes">
141 <param argument="-in_raw" type="data" format="mzml" multiple="false" optional="true" label="MzML input (after InternalCalibration, if available)" help=" select mzml data sets(s)"/> 148 <param argument="-in_raw" type="data" format="mzml" optional="true" label="MzML input (after InternalCalibration, if available)" help=" select mzml data sets(s)"/>
142 </when> 149 </when>
143 </conditional> 150 </conditional>
144 <conditional name="in_postFDR_cond"> 151 <conditional name="in_postFDR_cond">
145 <param name="in_postFDR_select" type="select" label="Run tool in batch mode for -in_postFDR"> 152 <param name="in_postFDR_select" type="select" label="Run tool in batch mode for -in_postFDR">
146 <option value="no">No: process all datasets jointly</option> 153 <option value="no">No: process all datasets jointly</option>
148 </param> 155 </param>
149 <when value="no"> 156 <when value="no">
150 <param argument="-in_postFDR" type="data" format="featurexml" multiple="true" optional="true" label="FeatureXMLs after FDR filtering" help=" select featurexml data sets(s)"/> 157 <param argument="-in_postFDR" type="data" format="featurexml" multiple="true" optional="true" label="FeatureXMLs after FDR filtering" help=" select featurexml data sets(s)"/>
151 </when> 158 </when>
152 <when value="yes"> 159 <when value="yes">
153 <param argument="-in_postFDR" type="data" format="featurexml" multiple="false" optional="true" label="FeatureXMLs after FDR filtering" help=" select featurexml data sets(s)"/> 160 <param argument="-in_postFDR" type="data" format="featurexml" optional="true" label="FeatureXMLs after FDR filtering" help=" select featurexml data sets(s)"/>
154 </when> 161 </when>
155 </conditional> 162 </conditional>
156 <param argument="-in_contaminants" type="data" format="fasta" optional="true" label="Proteins considered contaminants" help=" select fasta data sets(s)"/> 163 <param argument="-in_contaminants" type="data" format="fasta" optional="true" label="Proteins considered contaminants" help=" select fasta data sets(s)"/>
164 <param argument="-in_fasta" type="data" format="fasta" optional="true" label="FASTA file used during MS/MS identification (including decoys)" help="If the protein description contains 'GN=...' then gene names will be extracted select fasta data sets(s)"/>
157 <conditional name="in_trafo_cond"> 165 <conditional name="in_trafo_cond">
158 <param name="in_trafo_select" type="select" label="Run tool in batch mode for -in_trafo"> 166 <param name="in_trafo_select" type="select" label="Run tool in batch mode for -in_trafo">
159 <option value="no">No: process all datasets jointly</option> 167 <option value="no">No: process all datasets jointly</option>
160 <option value="yes">Yes: process each dataset in an independent job</option> 168 <option value="yes">Yes: process each dataset in an independent job</option>
161 </param> 169 </param>
162 <when value="no"> 170 <when value="no">
163 <param argument="-in_trafo" type="data" format="trafoxml" multiple="true" optional="true" label="trafoXMLs from MapAligners" help=" select trafoxml data sets(s)"/> 171 <param argument="-in_trafo" type="data" format="trafoxml" multiple="true" optional="true" label="trafoXMLs from MapAligners" help=" select trafoxml data sets(s)"/>
164 </when> 172 </when>
165 <when value="yes"> 173 <when value="yes">
166 <param argument="-in_trafo" type="data" format="trafoxml" multiple="false" optional="true" label="trafoXMLs from MapAligners" help=" select trafoxml data sets(s)"/> 174 <param argument="-in_trafo" type="data" format="trafoxml" optional="true" label="trafoXMLs from MapAligners" help=" select trafoxml data sets(s)"/>
167 </when> 175 </when>
168 </conditional> 176 </conditional>
169 <param argument="-out_evd" type="text" optional="true" value="" label="If a Path is given, a MQEvidence txt-file will be created in this directory" help="If the directory does not exist, it will be created as well"> 177 <param argument="-out_evd" type="text" optional="true" value="" label="If a Path is given, a MQEvidence txt-file will be created in this directory" help="If the directory does not exist, it will be created as well">
170 <expand macro="list_string_san" name="out_evd"/> 178 <expand macro="list_string_san" name="out_evd"/>
171 </param> 179 </param>
180 <param argument="-out_msms" type="text" optional="true" value="" label="If a Path is given, a MQMsms txt-file will be created in this directory" help="If the directory does not exist, it will be created as well">
181 <expand macro="list_string_san" name="out_msms"/>
182 </param>
172 <section name="FragmentMassError" title="Fragment Mass Error settings" help="" expanded="false"> 183 <section name="FragmentMassError" title="Fragment Mass Error settings" help="" expanded="false">
173 <param name="unit" argument="-FragmentMassError:unit" type="select" optional="true" label="Unit for mass tolerance" help="'auto' uses information from FeatureXML"> 184 <param name="unit" argument="-FragmentMassError:unit" type="select" label="Unit for mass tolerance" help="'auto' uses information from FeatureXML">
174 <option value="auto" selected="true">auto</option> 185 <option value="auto" selected="true">auto</option>
175 <option value="ppm">ppm</option> 186 <option value="ppm">ppm</option>
176 <option value="da">da</option> 187 <option value="da">da</option>
177 <expand macro="list_string_san" name="unit"/> 188 <expand macro="list_string_san" name="unit"/>
178 </param> 189 </param>
179 <param name="tolerance" argument="-FragmentMassError:tolerance" type="float" optional="true" value="20.0" label="m/z search window for matching peaks in two spectra" help=""/> 190 <param name="tolerance" argument="-FragmentMassError:tolerance" type="float" value="20.0" label="m/z search window for matching peaks in two spectra" help=""/>
180 </section> 191 </section>
181 <section name="MS2_id_rate" title="MS2 ID Rate settings" help="" expanded="false"> 192 <section name="MS2_id_rate" title="MS2 ID Rate settings" help="" expanded="false">
182 <param name="assume_all_target" argument="-MS2_id_rate:assume_all_target" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Forces the metric to run even if target/decoy annotation is missing (accepts all pep_ids as target hits)" help=""/> 193 <param name="assume_all_target" argument="-MS2_id_rate:assume_all_target" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Forces the metric to run even if target/decoy annotation is missing (accepts all pep_ids as target hits)" help=""/>
183 </section> 194 </section>
184 <expand macro="adv_opts_macro"> 195 <expand macro="adv_opts_macro">
185 <param argument="-force" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Overrides tool-specific checks" help=""/> 196 <param argument="-force" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Overrides tool-specific checks" help=""/>
186 <param argument="-test" type="hidden" optional="true" value="False" label="Enables the test mode (needed for internal use only)" help=""> 197 <param argument="-test" type="hidden" value="False" label="Enables the test mode (needed for internal use only)" help="" optional="true">
187 <expand macro="list_string_san" name="test"/> 198 <expand macro="list_string_san" name="test"/>
188 </param> 199 </param>
189 </expand> 200 </expand>
190 <param name="OPTIONAL_OUTPUTS" type="select" optional="true" multiple="true" label="Optional outputs"> 201 <param name="OPTIONAL_OUTPUTS" type="select" optional="true" multiple="true" label="Optional outputs">
191 <option value="out_FLAG">out (Output mzTab with QC information)</option> 202 <option value="out_FLAG">out (Output mzTab with QC information)</option>
210 </data> 221 </data>
211 <data name="ctd_out" format="xml" label="${tool.name} on ${on_string}: ctd"> 222 <data name="ctd_out" format="xml" label="${tool.name} on ${on_string}: ctd">
212 <filter>OPTIONAL_OUTPUTS is not None and "ctd_out_FLAG" in OPTIONAL_OUTPUTS</filter> 223 <filter>OPTIONAL_OUTPUTS is not None and "ctd_out_FLAG" in OPTIONAL_OUTPUTS</filter>
213 </data> 224 </data>
214 </outputs> 225 </outputs>
215 <tests><!-- TOPP_QualityControl_1 --> 226 <tests>
227 <!-- TOPP_QualityControl_1 -->
216 <test expect_num_outputs="3"> 228 <test expect_num_outputs="3">
217 <section name="adv_opts"> 229 <section name="adv_opts">
218 <param name="force" value="false"/> 230 <param name="force" value="false"/>
219 <param name="test" value="true"/> 231 <param name="test" value="true"/>
220 </section> 232 </section>
223 <param name="in_raw" value="QualityControl_1_in1.mzML.gz,QualityControl_1_in2.mzML.gz,QualityControl_1_in3.mzML.gz"/> 235 <param name="in_raw" value="QualityControl_1_in1.mzML.gz,QualityControl_1_in2.mzML.gz,QualityControl_1_in3.mzML.gz"/>
224 </conditional> 236 </conditional>
225 <conditional name="in_postFDR_cond"> 237 <conditional name="in_postFDR_cond">
226 <param name="in_postFDR" value="QualityControl_1_in1.featureXML,QualityControl_1_in2.featureXML,QualityControl_1_in3.featureXML"/> 238 <param name="in_postFDR" value="QualityControl_1_in1.featureXML,QualityControl_1_in2.featureXML,QualityControl_1_in3.featureXML"/>
227 </conditional> 239 </conditional>
228 <output name="out" file="QualityControl_1_out.mzTab" compare="sim_size" delta_frac="0.7" ftype="mztab"/> 240 <output name="out" value="QualityControl_1_out.mzTab" compare="sim_size" delta_frac="0.7" ftype="mztab"/>
229 <output name="out_cm" file="QualityControl_1_out.consensusXML" compare="sim_size" delta_frac="0.7" ftype="consensusxml"/> 241 <output name="out_cm" value="QualityControl_1_out.consensusXML" compare="sim_size" delta_frac="0.7" ftype="consensusxml"/>
230 <param name="in_contaminants" value="QualityControl_1.fasta"/> 242 <param name="in_contaminants" value="QualityControl_1.fasta"/>
243 <param name="in_fasta" value="PeptideIndexer_1.fasta"/>
231 <conditional name="in_trafo_cond"> 244 <conditional name="in_trafo_cond">
232 <param name="in_trafo" value="QualityControl_1_in1.trafoXML,QualityControl_1_in2.trafoXML,QualityControl_1_in3.trafoXML"/> 245 <param name="in_trafo" value="QualityControl_1_in1.trafoXML,QualityControl_1_in2.trafoXML,QualityControl_1_in3.trafoXML"/>
233 </conditional> 246 </conditional>
234 <param name="out_evd" value=""/> 247 <param name="out_evd" value=""/>
248 <param name="out_msms" value=""/>
235 <section name="FragmentMassError"> 249 <section name="FragmentMassError">
236 <param name="unit" value="auto"/> 250 <param name="unit" value="auto"/>
237 <param name="tolerance" value="20.0"/> 251 <param name="tolerance" value="20.0"/>
238 </section> 252 </section>
239 <section name="MS2_id_rate"> 253 <section name="MS2_id_rate">
243 <output name="ctd_out" ftype="xml"> 257 <output name="ctd_out" ftype="xml">
244 <assert_contents> 258 <assert_contents>
245 <is_valid_xml/> 259 <is_valid_xml/>
246 </assert_contents> 260 </assert_contents>
247 </output> 261 </output>
262 <assert_stdout>
263 <has_text_matching expression="@EXECUTABLE@ took .* \(wall\), .* \(CPU\), .* \(system\), .* \(user\)(; Peak Memory Usage: 32 MB)?."/>
264 </assert_stdout>
248 </test> 265 </test>
249 </tests> 266 </tests>
250 <help><![CDATA[Computes various QC metrics from many possible input files (only the consensusXML is required). The more optional files you provide, the more metrics you get. 267 <help><![CDATA[Computes various QC metrics from many possible input files (only the consensusXML is required). The more optional files you provide, the more metrics you get.
251 268
252 269
253 For more information, visit http://www.openms.de/doxygen/release/2.8.0/html/TOPP_QualityControl.html]]></help> 270 For more information, visit https://openms.de/doxygen/release/3.1.0/html/TOPP_QualityControl.html]]></help>
254 <expand macro="references"/> 271 <expand macro="references"/>
255 </tool> 272 </tool>