changeset 3:03f4f2aaa91c draft default tip

planemo upload for repository https://github.com/muon-spectroscopy-computational-project/muon-galaxy-tools/main/pm_yaml_config commit 70a4d37ecdf5d586703cfc509922311e95d3205c
author muon-spectroscopy-computational-project
date Tue, 18 Jul 2023 13:27:20 +0000
parents 2d9b2ffec9d5
children
files muon_macros.xml pm_yaml_config.xml
diffstat 2 files changed, 99 insertions(+), 64 deletions(-) [+]
line wrap: on
line diff
--- a/muon_macros.xml	Fri Feb 03 15:40:12 2023 +0000
+++ b/muon_macros.xml	Tue Jul 18 13:27:20 2023 +0000
@@ -17,4 +17,13 @@
             <validator type="regex" message="Input should only contain whitespace, '[', ']', ',' and digits.">^[\s\d,\[\]]+$</validator>
         </param>
     </xml>
+    <!-- version of underlying tool (PEP 440) -->
+    <!-- citation should be updated with every underlying tool version -->
+    <!-- concept is not updated, and should only be used for referencing the idea of the software -->
+    <token name="@MUSPINSIM_VERSION@">2.2.1</token>
+    <token name="@MUSPINSIM_CITATION@">10.5281/zenodo.7733979</token>
+    <token name="@MUSPINSIM_CONCEPT@">10.5281/zenodo.6517626</token>
+    <token name="@PYMUONSUITE_VERSION@">0.3.0</token>
+    <token name="@PYMUONSUITE_CITATION@">10.5281/zenodo.8026711</token>
+    <token name="@PYMUONSUITE_CONCEPT@">10.5281/zenodo.7025643</token>
 </macros>
\ No newline at end of file
--- a/pm_yaml_config.xml	Fri Feb 03 15:40:12 2023 +0000
+++ b/pm_yaml_config.xml	Tue Jul 18 13:27:20 2023 +0000
@@ -4,75 +4,103 @@
         <!-- version of underlying tool (PEP 440) -->
         <!-- this wrapper doesn't have pymuonsuite as a dependency, but it will change according
              to the pymuonsuite interface, so follow the same versioning pattern -->
-        <token name="@TOOL_VERSION@">0.2.3</token>
+        <token name="@TOOL_VERSION@">0.3.0</token>
         <!-- version of this tool wrapper (integer) -->
         <token name="@WRAPPER_VERSION@">0</token>
         <!-- citation should be updated with every underlying tool version -->
-        <!-- typical fields to update are version, month, year, and doi -->
-        <token name="@TOOL_CITATION@">
-            @software{Sturniolo_pymuon-suite_2022,
-                author = {Sturniolo, Simone and Liborio, Leandro and Chadwick, Eli and Murgatroyd, Laura and Laverack, Adam and Mudaraddi, Anish and {Muon Spectroscopy Computational Project}},
-                license = {GPL-3.0},
-                month = {8},
-                title = {{pymuon-suite}},
-                url = {https://github.com/muon-spectroscopy-computational-project/pymuon-suite},
-                version = {v0.2.3},
-                doi = {10.5281/zenodo.7025644},
-                year = {2022}
-            }
-        </token>
+        <token name="@TOOL_CITATION@">10.5281/zenodo.8026711</token>
         <import>muon_macros.xml</import>
     </macros>
     <creator>
         <person givenName="Jyothish" familyName="Thomas" identifier="https://orcid.org/0000-0003-4724-6924"/>
         <person givenName="Eli" familyName="Chadwick" url="https://github.com/elichad" identifier="https://orcid.org/0000-0002-0035-6475"/>
+        <person givenName="Patrick" familyName="Austin" url="https://github.com/patrick-austin" identifier="https://orcid.org/0000-0002-6279-7823"/>
         <organization url="https://muon-spectroscopy-computational-project.github.io/index.html" name="The Muon Spectroscopy Computational Project"/>
     </creator>
     <requirements>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
-        touch outputx.yaml &&
-        ([[ ! -z '$general_params.poisson_r' ]] && printf 'poisson_r: $general_params.poisson_r\n'>>outputx.yaml || ( >&2 echo "poisson_r empty" && exit 2)) &&
-        ([[ ! -z '$general_params.name' ]] && printf 'name: $general_params.name\n'>>outputx.yaml || ( >&2 echo "structure name is empty" && exit 2)) &&
-        ([[ ! -z '$general_params.charged' ]] && printf 'charged: $general_params.charged\n'>>outputx.yaml || ( >&2 echo "charged muon empty" && exit 2)) &&
-        ([[ ! -z '$general_params.geom_steps' ]] && printf 'geom_steps: $general_params.geom_steps\n'>>outputx.yaml || ( >&2 echo "geom_steps empty" && exit 2)) &&
-        ([[ ! -z '$general_params.vdw_scale' ]] && printf 'vdw_scale: $general_params.vdw_scale\n'>>outputx.yaml || ( >&2 echo "vdw_scale empty" && exit 2)) &&
-        ([[ ! -z '$calculator_params.calculator_cond.calculator' ]] && printf 'calculator: $calculator_params.calculator_cond.calculator\n'>>outputx.yaml || ( >&2 echo "calculator unselected" && exit 2)) &&
-        ([[ ! -z '$general_params.geom_force_tol' ]] && printf 'geom_force_tol: $general_params.geom_force_tol\n'>>outputx.yaml || ( >&2 echo "geom_force_tol empty" && exit 2)) &&
-        ([[ ! -z '$general_params.out_folder' ]] && printf 'out_folder: $general_params.out_folder\n'>>outputx.yaml || printf "out_folder: muon-airss-out\n">>outputx.yaml) &&
-        ([[ ! -z '$general_params.random_seed' ]] && printf 'random_seed: $general_params.random_seed\n'>>outputx.yaml || ( echo "random_seed empty")) &&
-        ([[ ! -z '$clustering_params.supercell' ]] && (printf 'supercell: $clustering_params.supercell\n' | sed "s/__ob__/[/g" | sed "s/__cb__/]/g" )>>outputx.yaml || ( >&2 echo "supercell empty" && exit 2)) &&
-        ([[ ! -z '$clustering_params.k_points_grid' ]] && (printf 'k_points_grid: $clustering_params.k_points_grid\n' | sed "s/__ob__/[/g" | sed "s/__cb__/]/g" ) >>outputx.yaml || ( >&2 echo "k_points_grid empty" && exit 2)) &&
-        ([[ ! -z '$clustering_params.max_scc_steps' ]] && printf 'max_scc_steps: $clustering_params.max_scc_steps\n'>>outputx.yaml || ( >&2 echo "max_scc_steps empty")) &&
-        #if str($calculator_params.calculator_cond.calculator)=="uep":
-            ([[ ! -z '$calculator_params.calculator_cond.uep_gw_factor' ]] && printf 'uep_gw_factor: $calculator_params.calculator_cond.uep_gw_factor\n'>>outputx.yaml || ( >&2 echo "uep gaussian width unset" && exit 2)) &&
-            ([[ ! -z '$calculator_params.calculator_cond.uep_chden' ]] && printf 'uep_chden: $calculator_params.calculator_cond.uep_chden.value\n'>>outputx.yaml || echo "den_fmt path unset") &&
-        #else if str($calculator_params.calculator_cond.calculator)=="CASTEP":
-            ([[ ! -z '$calculator_params.calculator_cond.castep_command' ]] && printf 'castep_command: $calculator_params.calculator_cond.castep_command\n'>>outputx.yaml || echo "CASTEP command unset") &&
-            ([[ ! -z '$calculator_params.calculator_cond.castep_param' ]] && printf 'castep_param: $calculator_params.calculator_cond.castep_param\n'>>outputx.yaml || echo "CASTEP param unset") &&
-            ([[ ! -z '$calculator_params.calculator_cond.mu_symbol' ]] && printf 'mu_symbol: $calculator_params.calculator_cond.mu_symbol\n'>>outputx.yaml || echo "mu symbol unset") &&
-        #else if str($calculator_params.calculator_cond.calculator)=="dftb+":
-            ([[ ! -z '$calculator_params.calculator_cond.dftb_set' ]] && printf 'dftb_set: $calculator_params.calculator_cond.dftb_set\n'>>outputx.yaml || ( >&2 echo "dftb parameter set unselected" && exit 2)) &&
-            ([[ ! -z '$calculator_params.calculator_cond.dftb_optionals' ]] && (printf 'dftb_optionals: $calculator_params.calculator_cond.dftb_optionals\n' | sed "s/__ob__/[/g" | sed "s/__cb__/]/g" ) >>outputx.yaml || echo "dftb optional json files unset") &&
-            ([[ ! -z '$calculator_params.calculator_cond.dftb_pbc' ]] && printf 'dftb_pbc: $calculator_params.calculator_cond.dftb_pbc\n'>>outputx.yaml || echo "dftb periodic boundary condition unselected") &&
-        #else if str($calculator_params.calculator_cond.calculator)=="all":
-            ([[ ! -z '$calculator_params.calculator_cond.uep_gw_factor' ]] && printf 'uep_gw_factor: $calculator_params.calculator_cond.uep_gw_factor\n'>>outputx.yaml || echo "uep gaussian width unset") &&
-            ([[ ! -z '$calculator_params.calculator_cond.uep_chden' ]] && printf 'uep_chden: $calculator_params.calculator_cond.uep_chden\n'>>outputx.yaml || echo "den_fmt path unset") &&
-            ([[ ! -z '$calculator_params.calculator_cond.castep_command' ]] && printf 'castep_command: $calculator_params.calculator_cond.castep_command\n'>>outputx.yaml || echo "CASTEP command unset") &&
-            ([[ ! -z '$calculator_params.calculator_cond.castep_param' ]] && printf 'castep_param: $calculator_params.calculator_cond.castep_param\n'>>outputx.yaml || echo "CASTEP param unset") &&
-            ([[ ! -z '$calculator_params.calculator_cond.mu_symbol' ]] && printf 'mu_symbol: $calculator_params.calculator_cond.mu_symbol\n'>>outputx.yaml || echo "mu symbol unset") &&
-            ([[ ! -z '$calculator_params.calculator_cond.dftb_set' ]] && printf 'dftb_set: $calculator_params.calculator_cond.dftb_set\n'>>outputx.yaml || echo "dftb parameter set unselected") &&
-            ([[ ! -z '$calculator_params.calculator_cond.dftb_optionals' ]] && (printf 'dftb_optionals: $calculator_params.calculator_cond.dftb_optionals\n' | sed "s/__ob__/[/g" | sed "s/__cb__/]/g" ) >>outputx.yaml || echo "dftb optional json files unset") &&
-            ([[ ! -z '$calculator_params.calculator_cond.dftb_pbc' ]] && printf 'dftb_pbc: $calculator_params.calculator_cond.dftb_pbc\n'>>outputx.yaml || echo "dftb periodic boundary condition unselected") &&
-        #end if
-        ([[ ! -z '$clustering_params.clustering.clustering_method' ]] && printf 'clustering_method: $clustering_params.clustering.clustering_method\n'>>outputx.yaml || ( echo "clustering method unselected" && exit 2)) &&
-        #if str($clustering_params.clustering.clustering_method)=="hier":
-            ([[ ! -z '$clustering_params.clustering.clustering_hier_t' ]] && printf 'clustering_hier_t: $clustering_params.clustering.clustering_hier_t\n'>>outputx.yaml || echo "clustering_hier_t unset") &&
-        #else if str($clustering_params.clustering.clustering_method)=="kmeans":
-            ([[ ! -z '$clustering_params.clustering.clustering_kmeans_k' ]] && printf 'clustering_kmeans_k: $clustering_params.clustering.clustering_kmeans_k\n'>>outputx.yaml || echo "clustering_kmeans_k unset") &&
-        #end if
-        ln -s outputx.yaml output.yaml
+        cat $params_yaml > $out_yaml
     ]]></command>
+    <configfiles>
+        <configfile name="params_yaml">poisson_r: $general_params.poisson_r
+name: $general_params.name
+charged: $general_params.charged
+geom_steps: $general_params.geom_steps
+vdw_scale: $general_params.vdw_scale
+calculator: $calculator_params.calculator_cond.calculator
+geom_force_tol: $general_params.geom_force_tol
+#if $general_params.out_folder:
+out_folder: $general_params.out_folder
+#else
+out_folder: muon-airss-out
+#end if
+#if $general_params.random_seed:
+random_seed: $general_params.random_seed
+#end if
+supercell: $clustering_params.supercell.replace('__ob__', '[').replace('__cb__', ']')
+k_points_grid: $clustering_params.k_points_grid.replace('__ob__', '[').replace('__cb__', ']')
+#if $clustering_params.max_scc_steps:
+max_scc_steps: $clustering_params.max_scc_steps
+#end if
+#if str($calculator_params.calculator_cond.calculator)=="uep":
+uep_gw_factor: $calculator_params.calculator_cond.uep_gw_factor
+#if $calculator_params.calculator_cond.uep_chden.value:
+uep_chden: $calculator_params.calculator_cond.uep_chden.value
+#end if
+#else if str($calculator_params.calculator_cond.calculator)=="CASTEP":
+#if $calculator_params.calculator_cond.castep_command:
+castep_command: $calculator_params.calculator_cond.castep_command
+#end if
+#if $calculator_params.calculator_cond.castep_param:
+castep_param: $calculator_params.calculator_cond.castep_param
+#end if
+#if $calculator_params.calculator_cond.mu_symbol:
+mu_symbol: $calculator_params.calculator_cond.mu_symbol
+#end if
+#else if str($calculator_params.calculator_cond.calculator)=="dftb+":
+#if $calculator_params.calculator_cond.dftb_set:
+dftb_set: $calculator_params.calculator_cond.dftb_set
+#end if
+#if $calculator_params.calculator_cond.dftb_optionals:
+dftb_optionals: $calculator_params.calculator_cond.dftb_optionals.replace('__ob__', '[').replace('__cb__', ']')
+#end if
+#if $calculator_params.calculator_cond.dftb_pbc:
+dftb_pbc: $calculator_params.calculator_cond.dftb_pbc
+#end if
+#else if str($calculator_params.calculator_cond.calculator)=="all":
+#if $calculator_params.calculator_cond.uep_gw_factor:
+uep_gw_factor: $calculator_params.calculator_cond.uep_gw_factor
+#end if
+#if $calculator_params.calculator_cond.uep_chden:
+uep_chden: $calculator_params.calculator_cond.uep_chden
+#end if
+#if $calculator_params.calculator_cond.castep_command:
+castep_command: $calculator_params.calculator_cond.castep_command
+#end if
+#if $calculator_params.calculator_cond.castep_param:
+castep_param: $calculator_params.calculator_cond.castep_param
+#end if
+#if $calculator_params.calculator_cond.mu_symbol:
+mu_symbol: $calculator_params.calculator_cond.mu_symbol
+#end if
+#if $calculator_params.calculator_cond.dftb_set:
+dftb_set: $calculator_params.calculator_cond.dftb_set
+#end if
+#if $calculator_params.calculator_cond.dftb_optionals:
+dftb_optionals: $calculator_params.calculator_cond.dftb_optionals.replace('__ob__', '[').replace('__cb__', ']')
+#end if
+#if $calculator_params.calculator_cond.dftb_pbc:
+dftb_pbc: $calculator_params.calculator_cond.dftb_pbc
+#end if
+#end if
+clustering_method: $clustering_params.clustering.clustering_method
+#if str($clustering_params.clustering.clustering_method)=="hier":
+clustering_hier_t: $clustering_params.clustering.clustering_hier_t
+#else if str($clustering_params.clustering.clustering_method)=="kmeans":
+clustering_kmeans_k: $clustering_params.clustering.clustering_kmeans_k
+#end if</configfile>
+    </configfiles>
     <inputs>
         <section name="general_params" expanded="true" title="General Parameters">
             <param type="float" argument="poisson_r" value="0.8" min="0.0" label="Poisson radius" help=" Poisson sphere radius to use for random generation. No two starting muon positions will be closer than this distance. Smaller values make for bigger structure sets."/>
@@ -82,7 +110,7 @@
             <param type="float" argument="vdw_scale" value="0.5" min="0.0" label="Van der Waals scale" help="Van der Waals scaling factor to use when generating muon sites to avoid existing atoms. Smaller values will allow muons to get closer to the other ions."/>
             <param type="text" argument="out_folder" optional="true" value="muon-airss-out" label="Output folder name" help="Name to call the output folder used to store the files that the script generates."/>
             <param type="float" argument="geom_force_tol" value="0.05" min="0.0" label="Geometry optimization tolerance" help="Tolerance on geometry optimisation in units of eV/Å."/>
-            <param type="integer" argument="random_seed" label="Random Seed" optional="true" help="Random seed for pymuonsuite."/>
+            <param type="integer" argument="random_seed" label="Random Seed" optional="true" help="Seed used to randomise the positions of the muons in the generated structures."/>
         </section>
         <section name="calculator_params" expanded="true" title="Calculator parameters">
             <conditional name="calculator_cond">
@@ -137,7 +165,7 @@
         </section>
     </inputs>
     <outputs>
-        <data label="Configuration for $general_params.name" name="out_yaml" format="yaml" from_work_dir="output.yaml"/>
+        <data label="Configuration for $general_params.name" name="out_yaml" format="yaml"/>
     </outputs>
     <tests>
         <test expect_num_outputs="1">
@@ -166,7 +194,7 @@
                 <param name="k_points_grid" value="[1,1,1]"/>
                 <param name="max_scc_steps" value="200"/>
             </section>
-            <output name="out_yaml" file="config.yaml" ftype="yaml" delta="100"/>
+            <output name="out_yaml" file="config.yaml" ftype="yaml"/>
         </test>
         <test expect_num_outputs="1">
             <section name="general_params">
@@ -175,7 +203,7 @@
             </section>
             <section name="clustering_params">
             </section>
-            <output name="out_yaml" file="config-default.yaml" ftype="yaml" delta="100"/>
+            <output name="out_yaml" file="config-default.yaml" ftype="yaml"/>
         </test>
         <test expect_num_outputs="1">
             <section name="general_params">
@@ -187,7 +215,7 @@
             </section>
             <section name="clustering_params">
             </section>
-            <output name="out_yaml" file="config-dftb.yaml" ftype="yaml" delta="100"/>
+            <output name="out_yaml" file="config-dftb.yaml" ftype="yaml"/>
         </test>
         <test expect_num_outputs="1">
             <section name="general_params">
@@ -199,7 +227,7 @@
             </section>
             <section name="clustering_params">
             </section>
-            <output name="out_yaml" file="config-all.yaml" ftype="yaml" delta="100"/>
+            <output name="out_yaml" file="config-all.yaml" ftype="yaml"/>
         </test>
         <test expect_failure="true">
             <section name="general_params">
@@ -237,8 +265,6 @@
     +------------+-------------------------------------+-----------------------------------+
     ]]></help>
     <citations>
-        <citation type="bibtex">
-            @TOOL_CITATION@
-        </citation>
+        <citation type="doi">@TOOL_CITATION@</citation>
     </citations>
 </tool>