Mercurial > repos > muon-spectroscopy-computational-project > larch_select_paths
comparison larch_select_paths.xml @ 1:7fdca938d90c draft
planemo upload for repository https://github.com/MaterialsGalaxy/larch-tools/tree/main/larch_select_paths commit 1cf6d7160497ba58fe16a51f00d088a20934eba6
| author | muon-spectroscopy-computational-project |
|---|---|
| date | Wed, 06 Dec 2023 13:04:15 +0000 |
| parents | 2e827836f0ad |
| children | 200534149c4d |
comparison
equal
deleted
inserted
replaced
| 0:2e827836f0ad | 1:7fdca938d90c |
|---|---|
| 2 <description>select FEFF paths for XAFS data</description> | 2 <description>select FEFF paths for XAFS data</description> |
| 3 <macros> | 3 <macros> |
| 4 <!-- version of underlying tool (PEP 440) --> | 4 <!-- version of underlying tool (PEP 440) --> |
| 5 <token name="@TOOL_VERSION@">0.9.71</token> | 5 <token name="@TOOL_VERSION@">0.9.71</token> |
| 6 <!-- version of this tool wrapper (integer) --> | 6 <!-- version of this tool wrapper (integer) --> |
| 7 <token name="@WRAPPER_VERSION@">0</token> | 7 <token name="@WRAPPER_VERSION@">1</token> |
| 8 <!-- citation should be updated with every underlying tool version --> | 8 <!-- citation should be updated with every underlying tool version --> |
| 9 <!-- typical fields to update are version, month, year, and doi --> | 9 <!-- typical fields to update are version, month, year, and doi --> |
| 10 <token name="@TOOL_CITATION@">10.1088/1742-6596/430/1/012007</token> | 10 <token name="@TOOL_CITATION@">10.1088/1742-6596/430/1/012007</token> |
| 11 <xml name="name"> | 11 <xml name="name"> |
| 12 <param name="name" type="text" optional="true" label="Name" help="The name of the variable should be unique, and can be used in expressions for other paths. If name is set, will overwrite the default bevaviour for this variable."/> | 12 <param name="name" type="text" optional="true" label="Name" help="The name of the variable should be unique, and can be used in expressions for other paths. If name is set, will overwrite the default bevaviour for this variable."/> |
| 15 <param name="expr" type="text" optional="true" label="Expression" help="If set, the variable will be 'Defined' by the expression. This can include other variable name, for example in order to set two paths to use the same variable."/> | 15 <param name="expr" type="text" optional="true" label="Expression" help="If set, the variable will be 'Defined' by the expression. This can include other variable name, for example in order to set two paths to use the same variable."/> |
| 16 </xml> | 16 </xml> |
| 17 <xml name="vary"> | 17 <xml name="vary"> |
| 18 <param name="vary" type="boolean" checked="true" label="Vary" help="If True, the initial 'Guess' will be optimised in the fitting. If False, the value will be 'Set' instead and not optimised."/> | 18 <param name="vary" type="boolean" checked="true" label="Vary" help="If True, the initial 'Guess' will be optimised in the fitting. If False, the value will be 'Set' instead and not optimised."/> |
| 19 </xml> | 19 </xml> |
| 20 <xml name="max_number"> | |
| 21 <param name="max_number" type="integer" min="1" optional="true" label="Maximum number of paths" help="Will select (up to) this many paths, ordered by ascending path length, subject to criteria below. If unset, will select all that meet the criteria."/> | |
| 22 </xml> | |
| 23 <xml name="max_path_length"> | |
| 24 <param name="max_path_length" type="float" min="0" optional="true" label="Maximum path length" help="Exclude paths with lengths greater than this (expressed in Angstrom). If unset, will not restrict based on path length."/> | |
| 25 </xml> | |
| 26 <xml name="min_amplitude_ratio"> | |
| 27 <param name="min_amplitude_ratio" type="float" min="0" max="100" optional="true" label="Minimum amplitude ratio (%)" help="Exclude paths with a ratio below this ratio (expressed as a percentage). If unset, will not restrict based on amplitude ratio."/> | |
| 28 </xml> | |
| 29 <xml name="max_degeneracy"> | |
| 30 <param name="max_degeneracy" type="integer" min="1" optional="true" label="Maximum degeneracy" help="Exclude paths with degeneracy above this value. If unset, will not restrict based on degeneracy."/> | |
| 31 </xml> | |
| 20 </macros> | 32 </macros> |
| 21 <creator> | 33 <creator> |
| 22 <person givenName="Patrick" familyName="Austin" url="https://github.com/patrick-austin" identifier="https://orcid.org/0000-0002-6279-7823"/> | 34 <person givenName="Patrick" familyName="Austin" url="https://github.com/patrick-austin" identifier="https://orcid.org/0000-0002-6279-7823"/> |
| 23 </creator> | 35 </creator> |
| 24 <requirements> | |
| 25 <requirement type="package" version="@TOOL_VERSION@">xraylarch</requirement> | |
| 26 <requirement type="package" version="3.5.2">matplotlib</requirement> | |
| 27 </requirements> | |
| 28 <required_files> | 36 <required_files> |
| 29 <include type="literal" path="larch_select_paths.py"/> | 37 <include type="literal" path="larch_select_paths.py"/> |
| 30 </required_files> | 38 </required_files> |
| 31 <command detect_errors="exit_code"><![CDATA[ | 39 <command detect_errors="exit_code"><![CDATA[ |
| 40 mkdir sp && | |
| 32 python '${__tool_directory__}/larch_select_paths.py' '$inputs' | 41 python '${__tool_directory__}/larch_select_paths.py' '$inputs' |
| 33 ]]></command> | 42 ]]></command> |
| 34 <configfiles> | 43 <configfiles> |
| 35 <inputs name="inputs" data_style="paths"/> | 44 <inputs name="inputs" data_style="paths"/> |
| 36 </configfiles> | 45 </configfiles> |
| 62 <param name="paths_zip" type="data" format="zip" label="Zipped paths directory" help="Zipped directory containing the actual path files output by FEFF."/> | 71 <param name="paths_zip" type="data" format="zip" label="Zipped paths directory" help="Zipped directory containing the actual path files output by FEFF."/> |
| 63 <param name="paths_file" type="data" format="feff" label="Paths file" help="CSV file detailing the possible scattering paths. Note that rows with '1' in the 'select' column will be selected with default values for their parameters automatically."/> | 72 <param name="paths_file" type="data" format="feff" label="Paths file" help="CSV file detailing the possible scattering paths. Note that rows with '1' in the 'select' column will be selected with default values for their parameters automatically."/> |
| 64 <conditional name="selection"> | 73 <conditional name="selection"> |
| 65 <param name="selection" type="select" label="Selection method"> | 74 <param name="selection" type="select" label="Selection method"> |
| 66 <option value="all" selected="true">All paths</option> | 75 <option value="all" selected="true">All paths</option> |
| 67 <!-- <option value="number">Fixed number</option> | 76 <option value="criteria">Criteria</option> |
| 68 <option value="combinations">Combinations</option> --> | 77 <option value="combinations">Combinations</option> |
| 69 <option value="manual">Manual</option> | 78 <option value="manual">Manual</option> |
| 70 </param> | 79 </param> |
| 71 <when value="all"> | 80 <when value="all"> |
| 72 <repeat name="paths" title="Define path variables" help="Overwrite the default variables defined above for chosen paths."> | 81 <repeat name="paths" title="Define path variables" help="Overwrite the default variables defined above for chosen paths."> |
| 73 <param name="id" type="integer" value="1" min="1" label="Path ID" help="Numerical id of a path to select, this appears at the end of the label and filename in the path summary CSV."/> | 82 <param name="id" type="integer" value="1" min="1" label="Path ID" help="Numerical id of a path to select, this appears at the end of the label and filename in the path summary CSV."/> |
| 95 <expand macro="expr"/> | 104 <expand macro="expr"/> |
| 96 <expand macro="vary"/> | 105 <expand macro="vary"/> |
| 97 </section> | 106 </section> |
| 98 </repeat> | 107 </repeat> |
| 99 </when> | 108 </when> |
| 100 <!-- <when value="number"> | 109 <when value="criteria"> |
| 110 <expand macro="max_number"/> | |
| 111 <expand macro="max_path_length"/> | |
| 112 <expand macro="min_amplitude_ratio"/> | |
| 113 <expand macro="max_degeneracy"/> | |
| 101 </when> | 114 </when> |
| 102 <when value="combinations"> | 115 <when value="combinations"> |
| 103 </when> --> | 116 <param name="min_combination_size" type="integer" value="1" min="1" label="Minimum combination size" help="Each combination will have at least this many paths. If less then this many paths match the below criteria, a single combination with all paths will be generated."/> |
| 117 <param name="max_combination_size" type="integer" optional="true" label="Maximum combination size" help="Each combination will have at most this many paths. Note this is distinct from the number of paths to consider, below. One might want to consider combinations of the 5 shortest paths (set using 'Maximum number of paths'), but have no more than 3 paths in each combination (set using this)."/> | |
| 118 <expand macro="max_number"/> | |
| 119 <expand macro="max_path_length"/> | |
| 120 <expand macro="min_amplitude_ratio"/> | |
| 121 <expand macro="max_degeneracy"/> | |
| 122 </when> | |
| 104 <when value="manual"> | 123 <when value="manual"> |
| 105 <repeat name="paths" title="Select paths" help="Identify paths to use in the fitting by their id, and optionally define their variables. This will overwrite and defaults set above."> | 124 <repeat name="paths" title="Select paths" help="Identify paths to use in the fitting by their id, and optionally define their variables. This will overwrite and defaults set above."> |
| 106 <param name="id" type="integer" value="1" min="1" label="Path ID" help="Numerical id of a path to select, this appears at the end of the label and filename in the path summary CSV."/> | 125 <param name="id" type="integer" value="1" min="1" label="Path ID" help="Numerical id of a path to select, this appears at the end of the label and filename in the path summary CSV."/> |
| 107 <section name="s02" expanded="false" title="S02: passive electron reduction factor"> | 126 <section name="s02" expanded="false" title="S02: passive electron reduction factor"> |
| 108 <expand macro="name"/> | 127 <expand macro="name"/> |
| 136 <outputs> | 155 <outputs> |
| 137 <data name="merged_directories" format="zip" from_work_dir="merged.zip" label="Merged directories from ${on_string}"> | 156 <data name="merged_directories" format="zip" from_work_dir="merged.zip" label="Merged directories from ${on_string}"> |
| 138 <filter>len(feff_outputs) > 1</filter> | 157 <filter>len(feff_outputs) > 1</filter> |
| 139 </data> | 158 </data> |
| 140 <data name="gds_csv" format="gds" from_work_dir="gds.csv" label="GDS values for ${on_string}"/> | 159 <data name="gds_csv" format="gds" from_work_dir="gds.csv" label="GDS values for ${on_string}"/> |
| 141 <data name="sp_csv" format="sp" from_work_dir="sp.csv" label="Selected paths for ${on_string}"/> | 160 <data name="sp_csv" format="sp" from_work_dir="sp.csv" label="Selected paths for ${on_string}"> |
| 161 <filter>not any([f["selection"]["selection"] == "combinations" for f in feff_outputs])</filter> | |
| 162 </data> | |
| 163 <collection name="sp_collection" format="sp" type="list" label="Selected path combinations for ${on_string}"> | |
| 164 <discover_datasets pattern="__name_and_ext__" directory="sp"/> | |
| 165 <filter>any([f["selection"]["selection"] == "combinations" for f in feff_outputs])</filter> | |
| 166 </collection> | |
| 142 </outputs> | 167 </outputs> |
| 143 <tests> | 168 <tests> |
| 144 <!-- Test defaults for CSV with select_all --> | 169 <!-- Test defaults for CSV with select_all --> |
| 145 <test expect_num_outputs="2"> | 170 <test expect_num_outputs="2"> |
| 146 <param name="paths_zip" value="FEFF_paths.zip"/> | 171 <param name="paths_zip" value="FEFF_paths.zip"/> |
| 269 <has_size value="206500" delta="100"/> | 294 <has_size value="206500" delta="100"/> |
| 270 </assert_contents> | 295 </assert_contents> |
| 271 </output> | 296 </output> |
| 272 <output name="gds_csv" file="gds_merge_custom.csv"/> | 297 <output name="gds_csv" file="gds_merge_custom.csv"/> |
| 273 <output name="sp_csv" file="sp_merge_custom.csv"/> | 298 <output name="sp_csv" file="sp_merge_custom.csv"/> |
| 299 </test> | |
| 300 <!-- Test for criteria based selection --> | |
| 301 <test expect_num_outputs="2"> | |
| 302 <repeat name="feff_outputs"> | |
| 303 <param name="paths_zip" value="FEFF_paths.zip"/> | |
| 304 <param name="paths_file" value="[CSV_summary_of_1564889.cif].csv"/> | |
| 305 <conditional name="selection"> | |
| 306 <param name="selection" value="criteria"/> | |
| 307 <param name="min_amplitude_ratio" value="20"/> | |
| 308 <param name="max_degeneracy" value="4"/> | |
| 309 </conditional> | |
| 310 </repeat> | |
| 311 <output name="gds_csv" file="gds_default.csv"/> | |
| 312 <output name="sp_csv" file="sp_criteria.csv"/> | |
| 313 </test> | |
| 314 <!-- Test for combinations based selection --> | |
| 315 <test expect_num_outputs="3"> | |
| 316 <!-- Should result in 4 + 6 + 4 + 1 = 15 combinations --> | |
| 317 <repeat name="feff_outputs"> | |
| 318 <param name="paths_zip" value="FEFF_paths.zip"/> | |
| 319 <param name="paths_file" value="[CSV_summary_of_1564889.cif].csv"/> | |
| 320 <conditional name="selection"> | |
| 321 <param name="selection" value="combinations"/> | |
| 322 <param name="min_amplitude_ratio" value="20"/> | |
| 323 </conditional> | |
| 324 </repeat> | |
| 325 <!-- Should result in 3 combinations --> | |
| 326 <repeat name="feff_outputs"> | |
| 327 <param name="paths_zip" value="FEFF_paths.zip"/> | |
| 328 <param name="paths_file" value="[CSV_summary_of_1564889.cif].csv"/> | |
| 329 <conditional name="selection"> | |
| 330 <param name="selection" value="combinations"/> | |
| 331 <param name="min_combination_size" value="2"/> | |
| 332 <param name="max_combination_size" value="2"/> | |
| 333 <param name="max_number" value="3"/> | |
| 334 </conditional> | |
| 335 </repeat> | |
| 336 <output name="merged_directories"> | |
| 337 <assert_contents> | |
| 338 <has_size value="206000" delta="1000"/> | |
| 339 </assert_contents> | |
| 340 </output> | |
| 341 <output name="gds_csv" file="gds_default.csv"/> | |
| 342 <!-- Should get 15 * 3 = 45 combinations in total --> | |
| 343 <output_collection name="sp_collection" type="list" count="45"/> | |
| 274 </test> | 344 </test> |
| 275 </tests> | 345 </tests> |
| 276 <help><