changeset 0:49b6d76139da draft

planemo upload for repository https://github.com/muon-spectroscopy-computational-project/muon-galaxy-tools/main/pm_muairss_read commit d130cf2c46d933fa9d0214ddbd5ddf860f322dc4
author muon-spectroscopy-computational-project
date Thu, 25 Aug 2022 16:18:39 +0000
parents
children c5fba3c9f660
files get_out_folder.py pm_muairss_read.xml test-data/clusters.txt test-data/clusters_dat.dat test-data/clustout-dftb.dat test-data/clustout-dftb.txt test-data/clustout-uep.dat test-data/clustout-uep.txt test-data/dftb-out.zip test-data/uep-out.zip
diffstat 10 files changed, 405 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/get_out_folder.py	Thu Aug 25 16:18:39 2022 +0000
@@ -0,0 +1,11 @@
+import sys
+
+import yaml
+
+
+try:
+    with open('params.yaml') as f:
+        data = yaml.safe_load(f)
+    sys.stdout.write(data['out_folder'])
+except KeyError or FileNotFoundError:
+    sys.stdout.write('muon-airss-out')
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pm_muairss_read.xml	Thu Aug 25 16:18:39 2022 +0000
@@ -0,0 +1,158 @@
+<tool id="pm_muairss_read" name="PyMuonSuite AIRSS Cluster" version="@TOOL_VERSION@+galaxy@WRAPPER_VERSION@" python_template_version="3.5" profile="22.01">
+    <description>run clustering for optimised structures</description>
+    <macros>
+        <!-- version of underlying tool (PEP 440) -->
+        <token name="@TOOL_VERSION@">0.2.1</token>
+        <!-- version of this tool wrapper (integer) -->
+        <token name="@WRAPPER_VERSION@">1</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{pymuon-suite,
+                author = {Sturniolo, Simone and Liborio, Leandro and Chadwick, Eli and Murgatroyd, Laura and Laverack, Adam and {Muon Spectroscopy Computational Project}},
+                license = {GPL-3.0},
+                title = {{pymuon-suite}},
+                url = {https://github.com/muon-spectroscopy-computational-project/pymuon-suite},
+                version = {v0.2.1},
+                month = {2},
+                year = {2022},
+                doi = {}
+            }
+        </token>
+    </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"/>
+        <organization url="https://muon-spectroscopy-computational-project.github.io/index.html" name="The Muon Spectroscopy Computational Project"/>
+    </creator>
+    <requirements>
+        <requirement type="package" version="@TOOL_VERSION@">pymuonsuite</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+        unzip "$optimisation_results" &&
+        if test -f "params.yaml"; then echo "params.yaml present"; else echo "params.yaml missing" && exit 64; fi
+        && if ( test -f input_structure.* ) ; then echo "input structure present"; else echo "input structure missing" && exit 64; fi
+        && out_folder="`python ${__tool_directory__}/get_out_folder.py`" &&
+        pm-muairss -t r input_structure.* params.yaml
+    ]]></command>
+    <inputs>
+        <param type="data" name="optimisation_results" label="optimised muonated structures (.zip)" format="zip" help="A zip folder containing a set of optimised muonated structures, the original structure, and a YAML parameter file. See below for the expected folder structure."/>
+    </inputs>
+    <outputs>
+        <data label="Cluster report for $optimisation_results.name" name="cluster_report" format="txt" from_work_dir="$out_folder/*clusters.txt"/>
+        <data label="Cluster data for $optimisation_results.name" name="cluster_data" format="txt" from_work_dir="$out_folder/*clusters.dat"/>
+    </outputs>
+    <tests>
+        <test>
+            <param name="optimisation_results" value="uep-out.zip" ftype="zip"/>
+            <output name="cluster_report" file="clustout-uep.txt" ftype="txt" lines_diff="2"/>
+            <output name="cluster_data" file="clustout-uep.dat" ftype="txt"/>
+        </test>
+        <test>
+            <param name="optimisation_results" value="dftb-out.zip" ftype="zip"/>
+            <output name="cluster_report" file="clustout-dftb.txt" ftype="txt" lines_diff="2"/>
+            <output name="cluster_data" file="clustout-dftb.dat" ftype="txt"/>
+        </test>
+    </tests>
+    <help><![CDATA[
+        Given a set of optimised muonated structures, clusters the structures based on similarity.
+
+        If you used the 'Run UEP optimisation' tool for optimisation, the output from that tool can be used as the input to this one.
+        If you are bringing files from elsewhere, make sure they fit the expected zip folder structure:
+
+        .. code-block::
+
+            optimised-structures.zip/
+            ├─ muon-airss-out/
+            │  ├─ uep/
+            │  │  ├─ struct_1/
+            │  │  │  ├─ <files for optimised struct_1 go here>
+            │  │  ├─ struct_2/
+            │  │  │  ├─ <files for optimised struct_2 go here>
+            │  │  ├─ struct_N/
+            │  │  │  ├─ <files for optimised struct_N go here>
+            ├─ input.cell
+            ├─ params.yaml
+
+        This folder represents a run with the output folder name ``muon-airss-out``, the structure name ``struct``, and the UEP calculator.
+        If you use different parameters, these names should match your own settings. (``dftb+`` and ``castep`` are used as folder names for the respective calculators)
+
+        The zip folder itself has been named ``optimised-structures.zip`` in this example, but it doesn't matter what you call it.
+
+        The files ``input.cell`` and ``params.yaml`` must have those exact names. ``input.cell`` should be your original structure file,
+        and ``params.yaml`` is the YAML parameter file used to configure the clustering (as well as any prior muonation and optimisation).
+        You should have created this YAML file using the 'Create YAML for pm-muairss' tool or written it yourself, then passed it into the
+        'Generate muon structures' tool or pm-muairss.
+
+        Command-line usage: pm-muairss [-h] -t r structures parameter_file
+    ]]></help>
+    <citations>
+        <citation type="bibtex">
+            @TOOL_CITATION@
+        </citation>
+        <citation type="bibtex">
+            @article{airss,
+                author = {Liborio, L. and Sturniolo, S. and Jochym, D.},
+                title = {Computational prediction of muon stopping sites using ab initio random structure searching (AIRSS)},
+                journal = {The Journal of Chemical Physics},
+                volume = {148},
+                pages = {134114},
+                year = {2018},
+                doi={10.1063/1.5024450},
+                URL={
+                    https://doi.org/10.1063/1.5024450
+                },
+                eprint={
+                    https://doi.org/10.1063/1.5024450
+                }
+            }
+        </citation>
+        <citation type="bibtex">
+            @article{doi:10.1063/1.5085197,
+                author = {Sturniolo,Simone  and Liborio,Leandro  and Jackson,Samuel },
+                title = {Comparison between density functional theory and density functional tight binding approaches for finding the muon stopping site in organic molecular crystals},
+                journal = {The Journal of Chemical Physics},
+                volume = {150},
+                number = {15},
+                pages = {154301},
+                year = {2019},
+                doi = {10.1063/1.5085197},
+                URL = {
+                        https://doi.org/10.1063/1.5085197
+                },
+                eprint = {
+                        https://doi.org/10.1063/1.5085197
+                }
+            }
+        </citation>
+        <citation type="bibtex">
+            @article{doi:10.1063/5.0012381,
+                author = {Sturniolo,Simone  and Liborio,Leandro },
+                title = {Computational prediction of muon stopping sites: A novel take on the unperturbed electrostatic potential method},
+                journal = {The Journal of Chemical Physics},
+                volume = {153},
+                number = {4},
+                pages = {044111},
+                year = {2020},
+                doi = {10.1063/5.0012381},
+                URL = {
+                        https://doi.org/10.1063/5.0012381
+                },
+                eprint = {
+                        https://doi.org/10.1063/5.0012381
+                },
+                abstract = { Finding the stopping site of the muon in a muon-spin relaxation experiment is one of the main problems of muon spectroscopy, and computational techniques that make use of quantum chemistry simulations can be of great help when looking for this stopping site. The most thorough approach would require the use of simulations, such as Density Functional Theory (DFT), to test and optimise multiple possible sites, accounting for the effect that the added muon has on its surroundings. However, this can be computationally expensive and sometimes unnecessary. Hence, in this work, we present a software implementation of the Unperturbed Electrostatic Potential (UEP) Method: an approach used for finding the muon stopping site in crystalline materials. The UEP method requires only one DFT calculation, necessary to compute the electronic density. This, in turn, is used to calculate the minima of the crystalline material’s electrostatic potential and the estimates of the muon stopping site, relying on the approximation that the muon’s presence does not significantly affect its surroundings. One of the main UEP’s assumptions is that the muon stopping site will be one of the crystalline material’s electrostatic potential minima. In this regard, we also propose some symmetry-based considerations about the properties of this crystalline material’s electrostatic potential, in particular, which sites are more likely to be its minima and why the unperturbed approximation may be sufficiently robust for them. We introduce the Python software package pymuon-suite and the various utilities it provides to facilitate these calculations, and finally, we demonstrate the effectiveness of the method with some chosen example systems. }
+            }
+        </citation>
+        <citation type="bibtex">
+            @article {castep,
+                author = {Clark, S. J. and Segall, M. D. and Pickard, C. J. and Hasnip, P. J. and Probert, M. I. J. and Refson, K. and Payne, M. C.},
+                title = {First principles methods using CASTEP},
+                journal = {Zeitschrift fuer Kristallographie},
+                volume = {220},
+                pages = {567},
+                year = {2005}
+            }
+        </citation>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/clusters.txt	Thu Aug 25 16:18:39 2022 +0000
@@ -0,0 +1,73 @@
+
+****************************
+|                          |
+|       PYMUON-SUITE       |
+|  MuAirss Clusters report |
+|                          |
+****************************
+
+Name: si
+Date: 2021-09-16 15:16:14.755024
+Structure file(s): input.cell
+Parameter file: params.yaml
+
+Clustering method: Hierarchical
+    t = 0.2
+
+
+*******************
+
+Clusters for si:
+CALCULATOR: uep
+	2 clusters found
+
+
+	-----------
+	Cluster 1
+	-----------
+	Structures: 40
+
+	Energy (eV):
+	Minimum		Average		StDev
+	-8.49		-8.49		0.00
+
+	Minimum energy structure: si_28
+
+
+	Structure list:
+	si_1	si_3	si_4	si_5	
+	si_6	si_7	si_9	si_10	
+	si_11	si_12	si_13	si_14	
+	si_15	si_16	si_17	si_18	
+	si_19	si_20	si_21	si_22	
+	si_24	si_25	si_27	si_28	
+	si_29	si_30	si_31	si_32	
+	si_33	si_34	si_35	si_36	
+	si_37	si_38	si_39	si_40	
+	si_41	si_42	si_43	si_44	
+
+	-----------
+	Cluster 2
+	-----------
+	Structures: 4
+
+	Energy (eV):
+	Minimum		Average		StDev
+	-8.43		-8.43		0.00
+
+	Minimum energy structure: si_8
+
+
+	Structure list:
+	si_2	si_8	si_23	si_26	
+
+	----------
+
+	Similarity (ranked):
+	1 <--> 2 (distance = 0.200)
+
+--------------------------
+
+
+==========================
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/clusters_dat.dat	Thu Aug 25 16:18:39 2022 +0000
@@ -0,0 +1,2 @@
+1	40	-8.489815283944159	-8.48953725056192	0.00024952657863316923	2.738346970780946	2.7349964592271503	2.738350577627245
+2	4	-8.434721984298898	-8.43336958648337	0.0010603634471999137	4.789371896620391	3.4238847570583855	4.7892691550320245
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/clustout-dftb.dat	Thu Aug 25 16:18:39 2022 +0000
@@ -0,0 +1,3 @@
+1	27	-280.6035855579993	-280.60202336915836	0.0014309752898857598	3.3226068	0.7423389456	3.311549515
+2	3	-284.5412648607569	-284.54031723784425	0.0008843908674425659	2.349332209	2.364682032	2.966647288
+3	14	-282.62616915666706	-282.62574079969306	0.00029348507875924686	2.648214456	2.64892216	2.79616573
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/clustout-dftb.txt	Thu Aug 25 16:18:39 2022 +0000
@@ -0,0 +1,90 @@
+
+****************************
+|                          |
+|       PYMUON-SUITE       |
+|  MuAirss Clusters report |
+|                          |
+****************************
+
+Name: Si
+Date: 2022-06-21 09:31:14.069470
+Structure file(s): input_structure.cell
+Parameter file: params.yaml
+
+Clustering method: Hierarchical
+    t = 0.2
+
+
+*******************
+
+Clusters for Si:
+CALCULATOR: dftb+
+	3 clusters found
+
+
+	-----------
+	Cluster 1
+	-----------
+	Structures: 27
+
+	Energy (eV):
+	Minimum		Average		StDev
+	-280.60		-280.60		0.00
+
+	Minimum energy structure: Si_2
+
+
+	Structure list:
+	Si_1	Si_2	Si_5	Si_7	
+	Si_8	Si_10	Si_12	Si_15	
+	Si_17	Si_19	Si_20	Si_21	
+	Si_22	Si_23	Si_27	Si_28	
+	Si_29	Si_30	Si_31	Si_32	
+	Si_33	Si_34	Si_35	Si_37	
+	Si_40	Si_41	Si_43	
+
+	-----------
+	Cluster 2
+	-----------
+	Structures: 3
+
+	Energy (eV):
+	Minimum		Average		StDev
+	-284.54		-284.54		0.00
+
+	Minimum energy structure: Si_9
+
+
+	Structure list:
+	Si_9	Si_25	Si_38	
+
+	-----------
+	Cluster 3
+	-----------
+	Structures: 14
+
+	Energy (eV):
+	Minimum		Average		StDev
+	-282.63		-282.63		0.00
+
+	Minimum energy structure: Si_42
+
+
+	Structure list:
+	Si_3	Si_4	Si_6	Si_11	
+	Si_13	Si_14	Si_16	Si_18	
+	Si_24	Si_26	Si_36	Si_39	
+	Si_42	Si_44	
+
+	----------
+
+	Similarity (ranked):
+	2 <--> 3 (distance = 1.917)
+	1 <--> 3 (distance = 2.056)
+	1 <--> 2 (distance = 3.951)
+
+--------------------------
+
+
+==========================
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/clustout-uep.dat	Thu Aug 25 16:18:39 2022 +0000
@@ -0,0 +1,2 @@
+1	12	-8.48981735648929	-8.489653583517093	0.00024027756008448932	2.737258848758643	2.7360057598043412	2.7389450032513163
+2	2	-8.434721105141751	-8.4346637258869	5.737925485060913e-05	4.793737331680057	3.4196257709744113	4.79365085189437
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/clustout-uep.txt	Thu Aug 25 16:18:39 2022 +0000
@@ -0,0 +1,66 @@
+
+****************************
+|                          |
+|       PYMUON-SUITE       |
+|  MuAirss Clusters report |
+|                          |
+****************************
+
+Name: Si
+Date: 2022-06-21 09:32:03.839222
+Structure file(s): input_structure.cell
+Parameter file: params.yaml
+
+Clustering method: Hierarchical
+    t = 0.2
+
+
+*******************
+
+Clusters for Si:
+CALCULATOR: uep
+	2 clusters found
+
+
+	-----------
+	Cluster 1
+	-----------
+	Structures: 12
+
+	Energy (eV):
+	Minimum		Average		StDev
+	-8.49		-8.49		0.00
+
+	Minimum energy structure: Si_1
+
+
+	Structure list:
+	Si_1	Si_2	Si_5	Si_6	
+	Si_7	Si_8	Si_9	Si_10	
+	Si_11	Si_12	Si_13	Si_14	
+
+	-----------
+	Cluster 2
+	-----------
+	Structures: 2
+
+	Energy (eV):
+	Minimum		Average		StDev
+	-8.43		-8.43		0.00
+
+	Minimum energy structure: Si_3
+
+
+	Structure list:
+	Si_3	Si_4	
+
+	----------
+
+	Similarity (ranked):
+	1 <--> 2 (distance = 0.218)
+
+--------------------------
+
+
+==========================
+
Binary file test-data/dftb-out.zip has changed
Binary file test-data/uep-out.zip has changed