From 002a0a7a57f267700fc17f35fcf7b582c772d67d Mon Sep 17 00:00:00 2001 From: anaik Date: Thu, 2 Nov 2023 10:25:59 +0100 Subject: [PATCH 01/49] add optional dev and test dependencies --- README.md | 52 ++++++++++++++++++++++++++++++-------------------- pyproject.toml | 2 ++ 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index d7a33ba7..119603e9 100644 --- a/README.md +++ b/README.md @@ -5,61 +5,71 @@ This is a package that enables automatic plotting and summaries of Lobster outputs. You can download Lobster on [http://www.cohp.de](http://www.cohp.de). Currently, only VASP/Lobster computations are supported. -Please note that LobsterPy relies on your Lobster outputs. Thus, please make sure that the outputs have enough information for our (automatic) analysis. +Please note that LobsterPy relies on the LOBSTER computation output files. Thus, it will be only able to analyze data that has been computed in the LOBSTER run. ![LobsterPyAnimation](https://github.com/JaGeo/LobsterPy/assets/22094846/8f06b84c-db6d-414c-8590-aa04c957c728) ## Installation +#### Plain installation +You can use ``pip install lobsterpy`` -You can now use ``pip install lobsterpy`` to install it. +Now Lobsterpy also has a featurizer module that enables one to generate features that could be used as input for Machine learning studies. +To install Lobsterpy with featurizer module capabilities use ``pip install lobsterpy[featurizer]`` -You can also pip install the package in development mode by writing ``pip install -e .``. It will then use setup.py to install the package. One requirement of this package is [pymatgen](https://github.com/materialsproject/pymatgen). ## Basic usage -* **Automatic analysis and plotting of COHPs:** +* **Automatic analysis and plotting of COHPs / COBIS / COOPs:** Output Automatic Analysis - - You can use ``lobsterpy description`` for an automated analysis of COHPs for relevant cation-anion bonds or ``lobsterpy automatic-plot`` to plot the results automatically. It will evaluate all COHPs with ICOHP values down to 10% of the strongest ICOHP. You can enforce an analysis of all bonds by using ``lobsterpy automatic-plot --allbonds`` . Currently, the computed Mulliken charges will be used to determine cations and anions. If no ``CHARGE.lobster`` is available, the algorithm will fall back to the BondValence analysis from pymatgen. Please be aware that LobsterPy can only analyze bonds that have been included in the initial Lobster computation. Thus, please use the cohpgenerator within Lobster. We have also added functionality to base the automatic analysis on the COBIs and COOPs. - - An interactive plotter is available via ``lobsterpy automatic-plot-ia``. And you can also plot densities of states from LOBSTER with ``lobsterpy plot-dos``. +You can use ``lobsterpy description`` for an automated analysis of COHPs for relevant cation-anion bonds or ``lobsterpy automatic-plot`` to plot the results automatically. +It will evaluate all COHPs with ICOHP values down to 10% of the strongest ICOHP. +You can enforce an analysis of all bonds by using ``lobsterpy automatic-plot --allbonds``. +You can also switch the automatic analysis to use the ICOBIs or ICOOPs. You need to add `--cobis` or `--coops` along with the mentioned commands +for e.g.like ``lobsterpy description --cobis`` - It is also possible to start this automatic analysis from a Python script. See "examples" for scripts. +An interactive plotter is available via ``lobsterpy automatic-plot-ia``. +Currently, the computed Mulliken charges will be used to determine cations and anions. If no ``CHARGE.lobster`` is available, the algorithm will fall back to the BondValence analysis from pymatgen. -* **Command line plotter**: +*Please be aware that LobsterPy can only analyze bonds that have been included in the initial Lobster computation. Thus, please use the cohpgenerator within Lobster.* - We included options to plot COHPs/COBIs/COOPs from the command line. - ``lobsterpy plot 1 2`` will plot COHPs of the first and second bond from ``COHPCAR.lobster``. It is possible to sum or integrate the COHPs as well (``--summed``, ``--integrated``). You can switch to COBIs or COOPs by using ``--cobis`` or ``--coops``, respectively. + +It is also possible to start this automatic analysis from a Python script. See "examples" for scripts. + +* **Plotting DOS from LOBSTER computations:** + + To plot densities of states obtained from LOBSTER use ``lobsterpy plot-dos``. + + +* **Generic COHP/ COOP / COBI plotter**: + + We included options to plot COHPs/COBIs/COOPs from the command line. +``lobsterpy plot 1 2`` will plot COHPs of the first and second bond from ``COHPCAR.lobster``. It is possible to sum or integrate the COHPs as well (``--summed``, ``--integrated``). You can switch to COBIs or COOPs by using ``--cobis`` or ``--coops``, respectively. * **Other command line tools**: ``lobsterpy create-inputs`` will create standard inputs based on existing POSCAR, POTCAR, INCAR files. It will allow to test for different basis sets that are available in Lobster. Currently only available for PBE_54 POTCARs. - * **Further help?** - You can get further information by using ``lobsterpy --help`` and also by typing ``lobsterpy description --help``, ``lobsterpy automatic-plot --help``, ``lobsterpy plot --help`` + You can get further information by using ``lobsterpy --help`` and also by typing ``lobsterpy description --help``, +``lobsterpy automatic-plot --help``, ``lobsterpy plot --help``. + +Check the documentation and tutorials therein for more details. ## How to cite? Please cite our paper: J. George, G. Petretto, A. Naik, M. Esters, A. J. Jackson, R. Nelson, R. Dronskowski, G.-M. Rignanese, G. Hautier, **ChemPlusChem**, [https://doi.org/10.1002/cplu.202200123](https://doi.org/10.1002/cplu.202200123). Please cite [pymatgen](https://github.com/materialsproject/pymatgen), [Lobster](https://www.cohp.de), and [ChemEnv](https://doi.org/10.1107/S2052520620007994) correctly as well. -## LobsterPy as part of an atomate2 workflow +## LobsterPy is now a part of an atomate2 workflow ![LobsterWorkflow](https://github.com/JaGeo/LobsterPy/assets/22094846/337615ac-542e-446c-bc63-fb5946b16544) We have now also included the automatic analysis into a fully automatic workflow using VASP and Lobster in [atomate2](https://github.com/materialsproject/atomate2). More documentation and information will follow soon. -## Future plans: -* Include orbitals into automatic plotting - -## Contributions -* Contributions and suggestions for features are also welcome. Please write an Issue to describe your potential contribution or feature request. -* We are planning to submit a paper for the code LobsterPy when more features have been added (~ mid of 2023). Major contributors will of course have the chance to be co-authors. Please talk to us if you are interested in contributing :). ## Acknowledgements The development of the program has been supported by a computing time grant. We gratefully acknowledge the Gauss Centre for Supercomputing e.V.(www.gauss-centre.eu) for funding this project by providing computing time on the GCS Supercomputer SuperMUC-NG at Leibniz Supercomputing Centre (www.lrz.de) (project pn73da). diff --git a/pyproject.toml b/pyproject.toml index 0be2a215..9647169a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,8 @@ changelog = "https://lobsterpy.readthedocs.io/en/latest/changelog_link.html" [project.optional-dependencies] featurizer = ["mendeleev==0.14.0"] +dev = ["pre-commit>=2.12.1"] +tests = ["flake8", "pytest", "pytest-mock", "pytest-split", "pytest-cov"] docs = ["Sphinx==4.5.0", "jupyter", "sphinx-argparse", From 3e0c9a77469a22cae6a7bcb391815b5c5fa3419f Mon Sep 17 00:00:00 2001 From: anaik Date: Thu, 2 Nov 2023 10:26:19 +0100 Subject: [PATCH 02/49] add contribtuing guidelines --- CONTRIBUTING.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..4caeef48 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,33 @@ +# Contributing to lobsterpy + +We would love your input to further extend and improve our code. Contribution of any kind are welcome, for example it can be: + +- Reporting a bug +- Discussing the current state of the code +- Submitting a fix +- Proposing or implementing new features +- Or simply updating the documentation + +## Reporting bugs, getting help, and discussion + +You can submit questions and bugs to the +[GitHub issues page](https://github.com/JaGeo/LobsterPy/issues). + +When creating a bug report, its best if you include some of the pointers mentioned below: + +- A quick summary and/or background. +- Steps to reproduce - be specific! **Provide sample code.** +- What was expected and what actually happened. +- Screenshots of any errors you encounter. + +## Contributing code improvements or additions through Github + +- Fork the repo and create your branch from master. +- If working using IDE, clone the repo and install the package in development mode `pip install -e lobsterpy[featurizer,dev,tests]` in a separate conda or virtual environment. +- run `pre-commit install` (This will install all the hooks from `.pre-commit-config.yaml` and make adapting your code to match linting standards) +- Commit your improvements to your branch and push to your Github fork (repo). +- Make sure you write tests and update documentation when needed. We use pytest framework and check out our existing tests for inspiration. +- Try to reuse existing test data when possible. +- When you're finished, go to your fork and make a Pull Request (PR). It will + automatically update if you need to make further changes. +- If you have raised a PR but are actively working on it, please add `[WIP] in the title.(This will let us know it is still not ready for review or merged) \ No newline at end of file From 9a939dafe002489ba8cb7bf9e4abca37ea3ed95b Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 3 Nov 2023 22:17:51 +0100 Subject: [PATCH 03/49] update files --- CHANGELOG.md | 2 ++ README.md | 8 ++++---- pyproject.toml | 18 ++++++++---------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80bdda3b..3b24e684 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +# Changelog + ## v0.3.2 - cli invert axis, add get site all orbitals dos plot by @naik-aakash in https://github.com/JaGeo/LobsterPy/pull/149 - Update README.md by @JaGeo in https://github.com/JaGeo/LobsterPy/pull/150 diff --git a/README.md b/README.md index 119603e9..15e42a77 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,11 @@ Please note that LobsterPy relies on the LOBSTER computation output files. Thus, ## Installation -#### Plain installation -You can use ``pip install lobsterpy`` +#### Standard installation +Install using ``pip install lobsterpy`` -Now Lobsterpy also has a featurizer module that enables one to generate features that could be used as input for Machine learning studies. -To install Lobsterpy with featurizer module capabilities use ``pip install lobsterpy[featurizer]`` +#### Installation with featurizer +Install using ``pip install lobsterpy[featurizer]`` ## Basic usage diff --git a/pyproject.toml b/pyproject.toml index 9647169a..a93d6e67 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,17 +42,15 @@ changelog = "https://lobsterpy.readthedocs.io/en/latest/changelog_link.html" featurizer = ["mendeleev==0.14.0"] dev = ["pre-commit>=2.12.1"] tests = ["flake8", "pytest", "pytest-mock", "pytest-split", "pytest-cov"] -docs = ["Sphinx==4.5.0", - "jupyter", - "sphinx-argparse", - "sphinx-book-theme==0.3.3", - "m2r2", - "myst-parser", - "docutils", - "mendeleev==0.14.0", - "pymatgen>=2023.9.10", +docs = [ + "sphinx-copybutton==0.5.2", + "sphinx==7.2.6", + "sphinx_design==0.5.0", + "ipython==8.16.1", + "myst-nb==0.17.2", + "sphinx-book-theme==1.0.1", "sphinx-argparse==0.4.0", - "typing"] +] [project.scripts] lobsterpy = "lobsterpy.cli:main" From 60aca57b52de5c9edcdfd64a5069cbc923a9215e Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 3 Nov 2023 22:22:41 +0100 Subject: [PATCH 04/49] update docs source files --- .../source/Lobsterpy_tutorial_files/CdF2.html | 14 - docs/source/about/changelog.md | 2 + docs/source/about/license.md | 32 + docs/source/atomateauto.rst | 5 - docs/source/changelog_link.rst | 4 - docs/source/conf.py | 47 +- docs/source/dev/contributing.md | 2 + docs/source/fundamentals/index.ipynb | 66 ++ docs/source/index.md | 81 ++ docs/source/index.rst | 26 - docs/source/installation.rst | 14 - docs/source/installation/index.md | 5 + docs/source/license_link.rst | 3 - docs/source/modules.rst | 7 - docs/source/pythoninterface.rst | 84 --- docs/source/readme_link.rst | 1 - docs/source/reference/cli.rst | 13 + docs/source/reference/cli_main.rst | 8 + .../reference/cli_subcommands/autoplot.rst | 9 + .../reference/cli_subcommands/autoplotia.rst | 8 + .../reference/cli_subcommands/calcdesc.rst | 8 + .../cli_subcommands/createinputs.rst | 9 + .../reference/cli_subcommands/plotdos.rst | 9 + .../reference/cli_subcommands/ploticohps.rst | 9 + docs/source/reference/index.rst | 15 + docs/source/tutorial/atomateauto.rst | 6 + .../{ => tutorial}/commandlineinterface.rst | 122 ++- docs/source/{ => tutorial}/computingtimes.rst | 2 +- docs/source/tutorial/index.rst | 32 + docs/source/tutorial/tutorial.ipynb | 706 ++++++++++++++++++ .../tutorial_assets}/COBI_330.png | Bin .../tutorial_assets}/COHP.png | Bin .../tutorial_assets}/COHP_330.png | Bin .../tutorial_assets}/COOP_330.png | Bin .../source/tutorial/tutorial_assets/CdF2.html | 14 + .../tutorial/tutorial_assets/CdF2_orb.html | 14 + .../tutorial_assets}/ICOHP.png | Bin .../Lobsterpy_tutorial_38_0.png | Bin docs/source/tutorials.rst | 33 - 39 files changed, 1142 insertions(+), 268 deletions(-) delete mode 100644 docs/source/Lobsterpy_tutorial_files/CdF2.html create mode 100644 docs/source/about/changelog.md create mode 100644 docs/source/about/license.md delete mode 100644 docs/source/atomateauto.rst delete mode 100644 docs/source/changelog_link.rst create mode 100644 docs/source/dev/contributing.md create mode 100755 docs/source/fundamentals/index.ipynb create mode 100644 docs/source/index.md delete mode 100644 docs/source/index.rst delete mode 100644 docs/source/installation.rst create mode 100644 docs/source/installation/index.md delete mode 100644 docs/source/license_link.rst delete mode 100644 docs/source/modules.rst delete mode 100644 docs/source/pythoninterface.rst delete mode 100644 docs/source/readme_link.rst create mode 100644 docs/source/reference/cli.rst create mode 100644 docs/source/reference/cli_main.rst create mode 100644 docs/source/reference/cli_subcommands/autoplot.rst create mode 100644 docs/source/reference/cli_subcommands/autoplotia.rst create mode 100644 docs/source/reference/cli_subcommands/calcdesc.rst create mode 100644 docs/source/reference/cli_subcommands/createinputs.rst create mode 100644 docs/source/reference/cli_subcommands/plotdos.rst create mode 100644 docs/source/reference/cli_subcommands/ploticohps.rst create mode 100644 docs/source/reference/index.rst create mode 100644 docs/source/tutorial/atomateauto.rst rename docs/source/{ => tutorial}/commandlineinterface.rst (68%) rename docs/source/{ => tutorial}/computingtimes.rst (92%) create mode 100644 docs/source/tutorial/index.rst create mode 100755 docs/source/tutorial/tutorial.ipynb rename docs/source/{Lobsterpy_tutorial_files => tutorial/tutorial_assets}/COBI_330.png (100%) rename docs/source/{Lobsterpy_tutorial_files => tutorial/tutorial_assets}/COHP.png (100%) rename docs/source/{Lobsterpy_tutorial_files => tutorial/tutorial_assets}/COHP_330.png (100%) rename docs/source/{Lobsterpy_tutorial_files => tutorial/tutorial_assets}/COOP_330.png (100%) create mode 100755 docs/source/tutorial/tutorial_assets/CdF2.html create mode 100755 docs/source/tutorial/tutorial_assets/CdF2_orb.html rename docs/source/{Lobsterpy_tutorial_files => tutorial/tutorial_assets}/ICOHP.png (100%) rename docs/source/{Lobsterpy_tutorial_files => tutorial/tutorial_assets}/Lobsterpy_tutorial_38_0.png (100%) delete mode 100644 docs/source/tutorials.rst diff --git a/docs/source/Lobsterpy_tutorial_files/CdF2.html b/docs/source/Lobsterpy_tutorial_files/CdF2.html deleted file mode 100644 index e213d8c7..00000000 --- a/docs/source/Lobsterpy_tutorial_files/CdF2.html +++ /dev/null @@ -1,14 +0,0 @@ - - - -
-
- - \ No newline at end of file diff --git a/docs/source/about/changelog.md b/docs/source/about/changelog.md new file mode 100644 index 00000000..14e66a76 --- /dev/null +++ b/docs/source/about/changelog.md @@ -0,0 +1,2 @@ +```{include} ../../../CHANGELOG.md +``` diff --git a/docs/source/about/license.md b/docs/source/about/license.md new file mode 100644 index 00000000..b5e808da --- /dev/null +++ b/docs/source/about/license.md @@ -0,0 +1,32 @@ +License +======= + +BSD 3-Clause License + +Copyright (c) 2021, LobsterPy Development Team +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/source/atomateauto.rst b/docs/source/atomateauto.rst deleted file mode 100644 index 39e7fa50..00000000 --- a/docs/source/atomateauto.rst +++ /dev/null @@ -1,5 +0,0 @@ -Automation via atomate (For high-throughput calcs) -================================================== - -Please refer to our previously published tutorial that showcases a test -case `here `_. diff --git a/docs/source/changelog_link.rst b/docs/source/changelog_link.rst deleted file mode 100644 index c0068a69..00000000 --- a/docs/source/changelog_link.rst +++ /dev/null @@ -1,4 +0,0 @@ -CHANGELOG -================ - -.. mdinclude:: ../../CHANGELOG.md diff --git a/docs/source/conf.py b/docs/source/conf.py index ccffca93..034d9664 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -33,16 +33,20 @@ "sphinx.ext.napoleon", "sphinx.ext.autodoc", "sphinx.ext.viewcode", + "sphinx.ext.autosummary", "sphinx.ext.coverage", "sphinxarg.ext", - "m2r2", + "myst_nb", + "sphinx_design", + "sphinx_copybutton", ] -napoleon_include_private_with_doc = True -napoleon_include_special_with_doc = True -autoclass_content = "both" +#napoleon_include_private_with_doc = True +#napoleon_include_special_with_doc = True +#autoclass_content = "both" -source_suffix = [".rst", ".md"] + +source_suffix = [".rst", ".md", ".ipynb"] # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] @@ -52,16 +56,32 @@ # This pattern also affects html_static_path and html_extra_path. exclude_patterns = [ - "../../lobsterpy/test", - "../../lobsterpy/cohp/test", - "../../lobsterpy/plotting/test", - "../../lobsterpy/featurize/test", - "../../lobsterpy/structuregraph/test", - "../../lobsterpy/TestData", + "**/test/*", "Thumbs.db", ".DS_Store", ] +myst_heading_anchors = 2 # enable headings as link targets +myst_enable_extensions = [ + "amsmath", + "colon_fence", + "dollarmath", + "html_admonition", + "html_image", +] + + + +# use type hints +autodoc_typehints = "description" +# autoclass_content = "both" +# autodoc_member_order = "bysource" + +# better napoleon support +napoleon_use_param = True +napoleon_use_rtype = True +napoleon_use_ivar = True + def run_apidoc(_): import subprocess @@ -108,3 +128,8 @@ def setup(app): # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] + +# hide sphinx footer +html_show_sphinx = False +html_show_sourcelink = False +html_title = "lobsterpy" diff --git a/docs/source/dev/contributing.md b/docs/source/dev/contributing.md new file mode 100644 index 00000000..004f419c --- /dev/null +++ b/docs/source/dev/contributing.md @@ -0,0 +1,2 @@ +```{include} ../../../CONTRIBUTING.md +``` diff --git a/docs/source/fundamentals/index.ipynb b/docs/source/fundamentals/index.ipynb new file mode 100755 index 00000000..5c3fac7a --- /dev/null +++ b/docs/source/fundamentals/index.ipynb @@ -0,0 +1,66 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e4746f4b", + "metadata": {}, + "source": [ + "# Fundamental Aspects" + ] + }, + { + "cell_type": "markdown", + "id": "43408e8b", + "metadata": {}, + "source": [ + "## Core machinery of LobsterPy automatic analysis explained : Lobsterenv" + ] + }, + { + "cell_type": "markdown", + "id": "44546121", + "metadata": {}, + "source": [ + "## Evaluating bonding and anti-bonding percentages" + ] + }, + { + "cell_type": "markdown", + "id": "6094b839", + "metadata": {}, + "source": [ + "## Automatic orbital-wise analysis implementation" + ] + }, + { + "cell_type": "markdown", + "id": "6f631f31", + "metadata": {}, + "source": [ + "## Featurizers implementation" + ] + } + ], + "metadata": { + "hide_input": false, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/source/index.md b/docs/source/index.md new file mode 100644 index 00000000..351568b0 --- /dev/null +++ b/docs/source/index.md @@ -0,0 +1,81 @@ +```{toctree} +:caption: User Guide +:hidden: +installation/index +tutorial/index +``` + +```{toctree} +:caption: Reference +:hidden: +reference/index +reference/cli +``` + +```{toctree} +:caption: Contributing Guide +:hidden: +dev/contributing +``` + +```{toctree} +:caption: About +:hidden: +about/changelog +about/license +``` + +# LobsterPy documentation + +**Date**: {sub-ref}`today` + +**Useful links**: +[Source Repository](https://github.com/JaGeo/LobsterPy) | +[Issues & Ideas](https://github.com/JaGeo/LobsterPy/issues) | + +LobsterPy is a package that enables automatic plotting,summaries and extracting features for machine learning studies from LOBSTER outputs. . + +::::{grid} 1 1 2 2 +:class-container: text-center +:gutter: 3 + + +:::{grid-item-card} +:link: fundamentals/index +:link-type: doc +:class-header: bg-light +**Fundamental Aspects** +^^^ +This guide contains a detailed explanation of the key functionalites on +which LobsterPy automatic analysis is based on. +::: + +:::{grid-item-card} +:link: installation/index +:link-type: doc +:class-header: bg-light +**User Guide** +^^^ +This guide provides in-depth information for getting started and tutorials for *LobsterPy*. +::: + +:::{grid-item-card} +:link: https://materialsproject.github.io/atomate2/user/codes/vasp.html#lobster +:class-header: bg-light +**LOBSTER Workflow** +^^^ +Here you can find how to use our completely automated workflow to perform bonding analysis with +LOBSTER and Lobsterpy via atomate2. +::: + + +:::{grid-item-card} +:link: dev/contributing +:link-type: doc +:class-header: bg-light +**Developer guide** +^^^ +Do you want contribute or improve existing functionalities? +Check out the developer guide. +::: +:::: diff --git a/docs/source/index.rst b/docs/source/index.rst deleted file mode 100644 index c6f8ca1d..00000000 --- a/docs/source/index.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. Lobsterpy documentation master file, created by - sphinx-quickstart on Fri Sep 23 11:23:25 2022. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to Lobsterpy's documentation! -===================================== - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - readme_link - tutorials - modules - changelog_link - license_link - - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/source/installation.rst b/docs/source/installation.rst deleted file mode 100644 index 0de9a08c..00000000 --- a/docs/source/installation.rst +++ /dev/null @@ -1,14 +0,0 @@ -Installation -============ - -1. Create a conda environment with any suitable name eg:- conda create - -n Test python==3.9 (This step is optional but it is better to have - separate environments to avoid conflicts with other packages) -2. Activate the newly created environment ``conda activate Test`` -3. Use ``pip install lobsterpy`` to install the package and all its - dependencies. - -Now that you have installed the lobsterpy, one can use the built-in -command-line interface of this package to adapt the standard VASP input -file (INCAR) and create lobster input files needed for successfully -performing bonding analysis. diff --git a/docs/source/installation/index.md b/docs/source/installation/index.md new file mode 100644 index 00000000..5e67b215 --- /dev/null +++ b/docs/source/installation/index.md @@ -0,0 +1,5 @@ +```{include} ../../../README.md +--- +start-line: 2 +--- +``` diff --git a/docs/source/license_link.rst b/docs/source/license_link.rst deleted file mode 100644 index 257b8e30..00000000 --- a/docs/source/license_link.rst +++ /dev/null @@ -1,3 +0,0 @@ -LICENSE -======== -.. mdinclude:: ../../LICENSE diff --git a/docs/source/modules.rst b/docs/source/modules.rst deleted file mode 100644 index 4c641fd8..00000000 --- a/docs/source/modules.rst +++ /dev/null @@ -1,7 +0,0 @@ -lobsterpy -========= - -.. toctree:: - :maxdepth: 4 - - lobsterpy diff --git a/docs/source/pythoninterface.rst b/docs/source/pythoninterface.rst deleted file mode 100644 index e678e773..00000000 --- a/docs/source/pythoninterface.rst +++ /dev/null @@ -1,84 +0,0 @@ -Python interface -================ - -Import the necessary modules - -.. code:: ipython3 - - import os - from lobsterpy.cohp.analyze import Analysis - from lobsterpy.cohp.describe import Description - import warnings - warnings.filterwarnings('ignore') - -.. code:: ipython3 - - directory = "Basis_0" #Directory of your VASP and Lobster computations - # Setup analysis dict - analyse = Analysis( - path_to_poscar=os.path.join(directory, "POSCAR"), - path_to_icohplist=os.path.join(directory, "ICOHPLIST.lobster"), - path_to_cohpcar=os.path.join(directory, "COHPCAR.lobster"), - path_to_charge=os.path.join(directory, "CHARGE.lobster"), - which_bonds="cation-anion", - ) - -.. code:: ipython3 - - # Setup Description dict - describe = Description(analysis_object=analyse) - describe.write_description() - - -.. parsed-literal:: - - The compound CdF2 has 1 symmetry-independent cation(s) with relevant cation-anion interactions: Cd1. - Cd1 has a cubic (CN=8) coordination environment. It has 8 Cd-F (mean ICOHP: -0.62 eV, antibonding interaction below EFermi) bonds. - - -.. code:: ipython3 - - # Automatic plots - describe.plot_cohps(ylim=[-10, 2], xlim=[-4, 4]) - -.. image:: Lobsterpy_tutorial_files/Lobsterpy_tutorial_38_0.png - -.. code:: ipython3 - - # Automatic interactive plots - describe.plot_interactive_cohps() - -.. raw:: html - :file: Lobsterpy_tutorial_files/CdF2.html - - -.. code:: ipython3 - - print(analyse.condensed_bonding_analysis) # dicts that summarize the results - - -.. parsed-literal:: - - {'formula': 'CdF2', 'max_considered_bond_length': 5.98538, 'limit_icohp': (-100000, -0.1), 'number_of_considered_ions': 1, 'sites': {0: {'env': 'C:8', 'bonds': {'F': {'ICOHP_mean': '-0.62', 'ICOHP_sum': '-4.97', 'has_antibdg_states_below_Efermi': True, 'number_of_bonds': 8}}, 'ion': 'Cd', 'charge': 1.57, 'relevant_bonds': ['29', '30', '33', '40', '53', '60', '63', '64']}}, 'type_charges': 'Mulliken'} - - -.. code:: ipython3 - - print(analyse.final_dict_bonds) # dicts that summarize the results - - -.. parsed-literal:: - - {'Cd-F': {'ICOHP_mean': -0.62125, 'has_antbdg': True}} - - -.. code:: ipython3 - - print(analyse.final_dict_ions) # dicts that summarize the results - - -.. parsed-literal:: - - {'Cd': {'C:8': 1}} - - diff --git a/docs/source/readme_link.rst b/docs/source/readme_link.rst deleted file mode 100644 index 3bd447c4..00000000 --- a/docs/source/readme_link.rst +++ /dev/null @@ -1 +0,0 @@ -.. mdinclude:: ../../README.md diff --git a/docs/source/reference/cli.rst b/docs/source/reference/cli.rst new file mode 100644 index 00000000..e5e3a818 --- /dev/null +++ b/docs/source/reference/cli.rst @@ -0,0 +1,13 @@ +CLI Reference +============== + +.. toctree:: + :maxdepth: 1 + + cli_main + cli_subcommands/autoplot + cli_subcommands/autoplotia + cli_subcommands/calcdesc + cli_subcommands/createinputs + cli_subcommands/plotdos + cli_subcommands/ploticohps diff --git a/docs/source/reference/cli_main.rst b/docs/source/reference/cli_main.rst new file mode 100644 index 00000000..4ecb0a88 --- /dev/null +++ b/docs/source/reference/cli_main.rst @@ -0,0 +1,8 @@ +lobsterpy +========= + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + diff --git a/docs/source/reference/cli_subcommands/autoplot.rst b/docs/source/reference/cli_subcommands/autoplot.rst new file mode 100644 index 00000000..aab6e398 --- /dev/null +++ b/docs/source/reference/cli_subcommands/autoplot.rst @@ -0,0 +1,9 @@ +automatic-plot +============== + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: automatic-plot + diff --git a/docs/source/reference/cli_subcommands/autoplotia.rst b/docs/source/reference/cli_subcommands/autoplotia.rst new file mode 100644 index 00000000..21fc1d38 --- /dev/null +++ b/docs/source/reference/cli_subcommands/autoplotia.rst @@ -0,0 +1,8 @@ +automatic-plot-ia +================== + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: automatic-plot-ia diff --git a/docs/source/reference/cli_subcommands/calcdesc.rst b/docs/source/reference/cli_subcommands/calcdesc.rst new file mode 100644 index 00000000..4c0fb867 --- /dev/null +++ b/docs/source/reference/cli_subcommands/calcdesc.rst @@ -0,0 +1,8 @@ +calc-description +================ + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: calc-description diff --git a/docs/source/reference/cli_subcommands/createinputs.rst b/docs/source/reference/cli_subcommands/createinputs.rst new file mode 100644 index 00000000..a85c9237 --- /dev/null +++ b/docs/source/reference/cli_subcommands/createinputs.rst @@ -0,0 +1,9 @@ +create-inputs +============== + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: create-inputs + diff --git a/docs/source/reference/cli_subcommands/plotdos.rst b/docs/source/reference/cli_subcommands/plotdos.rst new file mode 100644 index 00000000..da98917f --- /dev/null +++ b/docs/source/reference/cli_subcommands/plotdos.rst @@ -0,0 +1,9 @@ +plot-dos +========= + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: plot-dos + diff --git a/docs/source/reference/cli_subcommands/ploticohps.rst b/docs/source/reference/cli_subcommands/ploticohps.rst new file mode 100644 index 00000000..e74ae79a --- /dev/null +++ b/docs/source/reference/cli_subcommands/ploticohps.rst @@ -0,0 +1,9 @@ +plot-icohps-distances +====================== + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: plot-icohps-distances + diff --git a/docs/source/reference/index.rst b/docs/source/reference/index.rst new file mode 100644 index 00000000..053b7a14 --- /dev/null +++ b/docs/source/reference/index.rst @@ -0,0 +1,15 @@ +Python API reference +==================== + + +.. currentmodule:: lobsterpy + +.. autosummary:: + :recursive: + :toctree: + :nosignatures: + + cohp + featurize + plotting + structuregraph diff --git a/docs/source/tutorial/atomateauto.rst b/docs/source/tutorial/atomateauto.rst new file mode 100644 index 00000000..a0e9e8da --- /dev/null +++ b/docs/source/tutorial/atomateauto.rst @@ -0,0 +1,6 @@ +High-throughput LOBSTER calcs +============================== + + 1. In *atomate_v2*, the LobsterPy is has been made an integral part of LOBSTER workflow. Check the link which shows how to use our this workflow to perform bonding analysis with LOBSTER via atomate2 `here `_. + + 2. Older *atomate_v1* workflow tutorial can be found `here `_. diff --git a/docs/source/commandlineinterface.rst b/docs/source/tutorial/commandlineinterface.rst similarity index 68% rename from docs/source/commandlineinterface.rst rename to docs/source/tutorial/commandlineinterface.rst index 95224945..f36d3ab1 100644 --- a/docs/source/commandlineinterface.rst +++ b/docs/source/tutorial/commandlineinterface.rst @@ -6,45 +6,33 @@ Creating input files .. note:: - Important tags in INCAR of VASP to be paid attention before - performing lobster runs are NBANDS, NSW and ISYM. It is absolutely - necessary that VASP static run is performed (no movements of atoms, - NSW = 0) before running lobster program. LOBSTER can only deal with - VASP WAVECAR that contain results for the entire mesh or only half of - it. To do this, in the INCAR set ISYM = -1 (entire mesh / symmetry - switched off) or ISYM = 0 (half mesh/time-reversal). And to make sure - WAVECAR are written set LWAVE = .TRUE. For pCOHP analyses one needs - to have as many bands as there are orbitals in local basis. For pCOHP - analyses using LOBSTER, however, you need to manually set NBANDS in - the INCAR file. - -With lobsterpy these intricate details are taken care of with single -command. We need the standard VASP input files i.e -``INCAR, KPOINTS, POTCAR and POSCAR`` in the calculation directory. Once -you have these files, one simply needs to run the following command : + Important tags in INCAR of VASP to be paid attention before performing lobster runs are NBANDS, NSW and ISYM. It is absolutely necessary + that VASP static run is performed (no movements of atoms, NSW = 0) before running lobster program. LOBSTER can only deal with VASP WAVECAR + that contain results for the entire mesh or only half of it. + + To do this, in the INCAR set ISYM = -1 (entire mesh / symmetry switched off) or ISYM = 0 (half mesh/time-reversal). And to make sure WAVECAR + are written set LWAVE = .TRUE. For pCOHP analyses one needs to have as many bands as there are orbitals in local basis. + + And for pCOHP analyses using LOBSTER, however, you need to manually set NBANDS in the INCAR file. + + +With lobsterpy these intricate details are taken care of with single command. We need the standard VASP input files i.e +``INCAR, KPOINTS, POTCAR and POSCAR`` in the calculation directory. Once you have these files, one simply needs to run the following command : ``lobsterpy create-inputs`` -The above command will create set of input files (INCAR and lobsterin) -depending on the basis sets that are available in Lobster. +The above command will create set of input files (INCAR and lobsterin) depending on the basis sets that are available in Lobster. -The NBANDS, NSW, ISYM tag will be changed in existing INCAR file and new -INCAR files will be written in the existing directory. The newly created -INCAR file will be named ``INCAR.lobsterpy``\ by default. Simultaneously -``lobsterin.lobsterpy`` files are created that is necessary for lobster -run (this is the file that instructs lobster program what computations -needed to be performed). +The NBANDS, NSW, ISYM tag will be changed in existing INCAR file and new INCAR files will be written in the existing directory. +The newly created INCAR file will be named ``INCAR.lobsterpy`` by default. +Simultaneously ``lobsterin.lobsterpy`` files are created that is necessary for lobster run (this is the file that instructs lobster program what computations needed to be performed). -You can also change the names of output files and path where they are -saved using following optional tags: +You can also change the names of output files and path where they are saved using following optional tags: ``lobsterpy create-inputs --incar-out /INCAR --lobsterin-out /lobsterin`` -You can also use help to know addtional options using -``lobsterpy create-inputs -h`` -In our example ``Cd`` element has two basis sets ``4d 5s`` ``4d 5s 5p``, -thus following files are created: +For example if ``Cd`` element has two basis sets ``4d 5s`` ``4d 5s 5p``, thus following files are created: :: @@ -53,15 +41,12 @@ thus following files are created: lobsterin.lobsterpy-0 lobsterin.lobsterpy-1 -The suffix “-0” & “-1” indicate input files corresponding to smaller and -larger basis of ``Cd`` respectively. +The suffix “-0” & “-1” indicate input files corresponding to smaller and larger basis of ``Cd`` respectively. .. warning:: - The ‘KPOINTS’ file is not adapted, it is important for user - to select appropriate grid density before starting VASP - computations. Usually a factor of 50 x reciprocal lattice vectors - is sufficient to get reliable bonding analysis results. + The ‘KPOINTS’ file is not adapted, it is important for user to select appropriate grid density before starting VASP + computations. Usually a factor of 50 x reciprocal lattice vectors is sufficient to get reliable bonding analysis results. Running VASP and Lobster program -------------------------------- @@ -152,6 +137,7 @@ Analyze the lobster outputs with automation lobsterpy description --json description.json + Following is the json file produced. .. code:: json @@ -199,6 +185,24 @@ Following is the json file produced. }, "type_charges": "Mulliken" } + + +- ``lobsterpy calc-description --potcar-symbols "Na_pv Cl" --bvacomp --doscomp`` command will perform an automated analysis of your lobster calculation quality. + +.. note:: + The LOBSTER calculation directory need to have POTCAR, POSCAR, LOBSTER calculation input and output files to run the **lobsterpy calc-description** command sucessfully. + If POTCAR is not available then you need to suppy **--potcar-symbols** along with the command. Other optional files are vasprun.xml if **--doscomp** is switched on. + +.. code:: bash + + The LOBSTER calculation used minimal basis. The absolute and total charge spilling for the calculation is 0.3 and 5.58 %, respectively. The projected wave function is completely orthonormalized as no + bandOverlaps.lobster file is generated during the LOBSTER run. The atomic charge signs from Mulliken population analysis agree with the bond valence analysis. The atomic charge signs from Loewdin + population analysis agree with the bond valence analysis. The Tanimoto index from DOS comparisons in the energy range between -5, 0 eV for s, p, summed orbitals are: 0.9785, 0.9973, 0.9953. + +:: + + lobsterpy calc-description --potcar-symbols "Na_pv Cl" --bvacomp --doscomp --calcqualityjson calc_quality_description.json + - ``lobsterpy automatic-plot`` command will plot the results automatically. It will evaluate all COHPs with ICOHP values down to @@ -215,7 +219,7 @@ Following is the json file produced. lobsterpy automatic-plot --title 'Automatic COHP plot' --save-plot COHP.png -.. image:: Lobsterpy_tutorial_files/COHP.png +.. image:: tutorial_assets/COHP.png You can also plot integrated ICOHP computed by lobster by turning on ``--integrated`` flag when executing ``lobsterpy automatic-plot`` @@ -225,7 +229,7 @@ command. Below is an example and sample output using this command. lobsterpy automatic-plot --title 'Automatic ICOHP plot' --integrated --save-plot ICOHP.png -.. image:: Lobsterpy_tutorial_files/ICOHP.png +.. image:: tutorial_assets/ICOHP.png - ``lobsterpy automatic-plot-ia`` command can be used to obtain a interactive plot of analysis automatically. It will evaluate all COHPs with ICOHP values down to 10% of the strongest ICOHP. You can enforce an analysis of all bonds @@ -239,7 +243,9 @@ command. Below is an example and sample output using this command. ``lobsterpy automatic-plot-ia --allbonds --label-resolved`` option .. raw:: html - :file: Lobsterpy_tutorial_files/CdF2.html + + :file: tutorial_assets/CdF2.html + 2. Plotting of COHPs/COBIs/COOPs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -256,36 +262,18 @@ plot COHP and COOP for bond 3 and 30. ``lobsterpy plot 3 30 --coops --save-plot COOP_330.png`` -.. image:: Lobsterpy_tutorial_files/COHP_330.png +.. image:: tutorial_assets/COHP_330.png :width: 49 % -.. image:: Lobsterpy_tutorial_files/COOP_330.png +.. image:: tutorial_assets/COOP_330.png :width: 49 % -.. raw:: html - - - -.. raw:: html - - -.. raw:: html - - - -.. raw:: html +3. Plotting of DOS +~~~~~~~~~~~~~~~~~~~ - +- ``lobsterpy plot-dos --summedspins`` will plot total and element DOS. -.. raw:: html - - - -.. raw:: html - - - -3. Additional Options +4. Additional Options ~~~~~~~~~~~~~~~~~~~~~ You can also customize the style and parameters of the plots generated @@ -294,9 +282,13 @@ either of these commands: .. code:: bash - lobsterpy automatic-plot --help + lobsterpy automatic-plot --help + lobsterpy automatic-plot-ia --help + lobsterpy calc-description -h + lobsterpy create-inputs --help + lobsterpy plot-dos --help lobsterpy plot --help - + .. code:: ipython3 diff --git a/docs/source/computingtimes.rst b/docs/source/tutorial/computingtimes.rst similarity index 92% rename from docs/source/computingtimes.rst rename to docs/source/tutorial/computingtimes.rst index 29586480..1def3378 100644 --- a/docs/source/computingtimes.rst +++ b/docs/source/tutorial/computingtimes.rst @@ -1,7 +1,7 @@ Computing times ================ -The reported computing times below are for CdF\ :sub:`2` \(Materials project ID : mp-241) +Exemplar computing time for CdF\ :sub:`2` \(Materials project ID : mp-241) +-----------------+------------------------+---------+--------+-------------------------+--------------------+ | Calc Type | Computing time (secs) | NCORES | NODES | CPU | RAM per Node (GB) | diff --git a/docs/source/tutorial/index.rst b/docs/source/tutorial/index.rst new file mode 100644 index 00000000..b70904ed --- /dev/null +++ b/docs/source/tutorial/index.rst @@ -0,0 +1,32 @@ +Tutorial +========= + +Written by Aakash Naik (aakash.naik@bam.de) based on suggestions provided by Dr. Janine George (janine.george@bam.de) + +.. note:: + + To download Lobster, please visit http://www.cohp.de. Currently, only VASP/Lobster computations are supported. + + +Prerequisites + +* Familiar with LOBSTER software and its output files +* Familiar fundamental aspects guide of the LobsterPy package. If not please read the guide before proceeding. +* Basic Python knowledge + + +This tutorial will demonstrate how to use the Lobsterpy package using example code snippets. By the end of this tutorial you will be able to use the package to: + +1. Automatically analyze the lobster outputs using python interface +2. Generate custom plots via plotting utilities +3. Use featurizer to extract LOBSTER bonding analysis data as features for ML studies +4. Use structuregraph to generate graph objects consisiting of LOBSTER data +5. Get automatic analysis results and plots using command line utilities + +.. toctree:: + :maxdepth: 2 + + tutorial + commandlineinterface + atomateauto + computingtimes diff --git a/docs/source/tutorial/tutorial.ipynb b/docs/source/tutorial/tutorial.ipynb new file mode 100755 index 00000000..e94568ff --- /dev/null +++ b/docs/source/tutorial/tutorial.ipynb @@ -0,0 +1,706 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a711d82b", + "metadata": {}, + "source": [ + "# Python interface" + ] + }, + { + "cell_type": "markdown", + "id": "42969be6", + "metadata": {}, + "source": [ + "## Using Analysis, Description class and plotting utilities\n", + "\n", + "For this tutorial we will use the [test data](https://github.com/JaGeo/LobsterPy/tests/test_data) available that can be downloaded from our git repository.\n", + "\n", + ":innocent: Lets first import the necessary modules" + ] + }, + { + "cell_type": "markdown", + "id": "33ffc7dc", + "metadata": {}, + "source": [ + "### Basic usage : Analysis, Description" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "30e6f55a", + "metadata": { + "hide_input": false + }, + "outputs": [], + "source": [ + "import os\n", + "from lobsterpy.cohp.analyze import Analysis\n", + "from lobsterpy.cohp.describe import Description\n", + "import warnings\n", + "warnings.filterwarnings('ignore')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2ca066a3", + "metadata": {}, + "outputs": [], + "source": [ + "# Directory of your VASP and Lobster computations\n", + "directory = \"/home/anaik/Downloads/LobsterPy/tests/test_data/CdF_comp_range/\"\n", + "\n", + "# Initialize Analysis object\n", + "analyse = Analysis(\n", + " path_to_poscar=os.path.join(directory, \"POSCAR.gz\"),\n", + " path_to_icohplist=os.path.join(directory, \"ICOHPLIST.lobster.gz\"),\n", + " path_to_cohpcar=os.path.join(directory, \"COHPCAR.lobster.gz\"),\n", + " path_to_charge=os.path.join(directory, \"CHARGE.lobster.gz\"),\n", + " which_bonds=\"cation-anion\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87f41407", + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize Description object and get text description of the analysis\n", + "describe = Description(analysis_object=analyse)\n", + "describe.write_description()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6a0e3916", + "metadata": {}, + "outputs": [], + "source": [ + "# Get static plots for relevant bonds\n", + "describe.plot_cohps(ylim=[-10, 2], xlim=[-4, 4])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89b6a906", + "metadata": {}, + "outputs": [], + "source": [ + "# Get interactive plots of relevant bonds, \n", + "# Setting label_resolved arg to True will plot each COHP curve seperately, alongside summed COHP for the bonds.\n", + "fig = describe.plot_interactive_cohps(label_resolved=True, hide=True)\n", + "fig.show(renderer='notebook')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3c695d06", + "metadata": {}, + "outputs": [], + "source": [ + "# Dict summarizing the automaitic analysis results\n", + "analyse.condensed_bonding_analysis" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b079043b", + "metadata": {}, + "outputs": [], + "source": [ + "# Dict with bonds identified\n", + "analyse.final_dict_bonds" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bcab3c31", + "metadata": {}, + "outputs": [], + "source": [ + "# Dict with ions and thier co-ordination environments\n", + "analyse.final_dict_ions" + ] + }, + { + "cell_type": "markdown", + "id": "af3bba2b", + "metadata": {}, + "source": [ + ":::{note}\n", + "You can also perform automatic analysis using `COBICAR(ICOBILIST.lobster)` or `COOPCAR(ICOOPLIST.lobster)`. You would need to set `are_cobis`/`are_coops` to `True` depending on type of file you decide to analyze when you initialize Analysis object. And also change the default `noise_cutoff` value to 0.001 or lower as ICOOP and ICOBI have lower values. Below is an example code snippet\n", + ":::\n", + "\n", + "```python\n", + "analyse = Analysis(\n", + " path_to_poscar=os.path.join(directory, \"POSCAR.gz\"),\n", + " path_to_icohplist=os.path.join(directory, \"ICOBILIST.lobster.gz\"),\n", + " path_to_cohpcar=os.path.join(directory, \"COBICAR.lobster.gz\"),\n", + " path_to_charge=os.path.join(directory, \"CHARGE.lobster.gz\"),\n", + " which_bonds=\"cation-anion\",\n", + " are_cobis=True,\n", + " noise_cutoff=0.001,\n", + ")\n", + "```\n", + "\n", + "Rest of the things to access the results are same as above." + ] + }, + { + "cell_type": "markdown", + "id": "bb1c58c6", + "metadata": {}, + "source": [ + "### Advanced usage : Analysis, Description" + ] + }, + { + "cell_type": "markdown", + "id": "de5ee6ab", + "metadata": {}, + "source": [ + "LobsterPy, now also provides the possibility to also perform automatic orbialtwise analysis and plotting of COHPs, COBIs and COOPs. To switch on orbialtwise analysis, one needs to set `orbital_resolved` arg to `True`. By default orbitals contributing 5% or more relative to summed ICOHPs are considered in analysis. One can change this default threshold using `orbital_cutoff` argument. Here we will set this cutoff value to 3%" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae5c791f", + "metadata": {}, + "outputs": [], + "source": [ + "analyse = Analysis(\n", + " path_to_poscar=os.path.join(directory, \"POSCAR.gz\"),\n", + " path_to_icohplist=os.path.join(directory, \"ICOHPLIST.lobster.gz\"),\n", + " path_to_cohpcar=os.path.join(directory, \"COHPCAR.lobster.gz\"),\n", + " path_to_charge=os.path.join(directory, \"CHARGE.lobster.gz\"),\n", + " which_bonds=\"cation-anion\",\n", + " orbital_resolved=True,\n", + " orbital_cutoff=0.03,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "468a2478", + "metadata": {}, + "outputs": [], + "source": [ + "# Access the dict summarizing the results including orbital wise analysis data \n", + "analyse.condensed_bonding_analysis" + ] + }, + { + "cell_type": "markdown", + "id": "ea49c3d4", + "metadata": {}, + "source": [ + "In the above ouput you will see, now a field named `orbital_data` associated to each relevant bond identified. The `orbital_summary_stats` field contains the orbitals that contribute the most to the bonding and antibonding interactions and values are reported there in percent." + ] + }, + { + "cell_type": "markdown", + "id": "90503028", + "metadata": {}, + "source": [ + ":::{note}\n", + "You can get plots from orbital resolved anaylsis only when `orbital_resolved` arg to `True` when initializing Analysis object. If this is not done, you will run into errors. Also only interactive plotter will plot the results of orbital resolved anaylsis as static plots will not be much readable. In anycase you can generate static plots if you need to, you will find how to use the plotters below in the tutorial\n", + ":::" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2df4b44a", + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize Description object\n", + "describe = Description(analysis_object=analyse)\n", + "describe.write_description()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15606ec3", + "metadata": {}, + "outputs": [], + "source": [ + "# Automatic interactive plots\n", + "fig = describe.plot_interactive_cohps(orbital_resolved=True, ylim=[-15,5], hide=True)\n", + "fig.show(renderer='notebook')" + ] + }, + { + "cell_type": "markdown", + "id": "c1b80a34", + "metadata": {}, + "source": [ + "#### Get LOBSTER calculation quality and description" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a968f712", + "metadata": {}, + "outputs": [], + "source": [ + "# Directory to your VASP and Lobster computations\n", + "directory = \"/home/anaik/Downloads/LobsterPy/tests/test_data/K3Sb/\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87a8eb35", + "metadata": {}, + "outputs": [], + "source": [ + "# Get calculation quality summary dict\n", + "calc_quality_K3Sb = Analysis.get_lobster_calc_quality_summary(\n", + " path_to_poscar=os.path.join(directory, \"POSCAR.gz\"),\n", + " path_to_charge=os.path.join(directory, \"CHARGE.lobster.gz\"),\n", + " path_to_lobsterin=os.path.join(directory,\"lobsterin.gz\"),\n", + " path_to_lobsterout=os.path.join(directory,\"lobsterout.gz\"),\n", + " potcar_symbols=[\"K_sv\", \"Sb\"], # if POTCAR exists, then provide path_to_potcar and set this to None \n", + " path_to_bandoverlaps=os.path.join(directory,\"bandOverlaps.lobster.gz\"),\n", + " dos_comparison=True, # set to false to disable DOS comparisons \n", + " bva_comp=True, # set to false to disable LOBSTER charge classification comparisons with BVA method\n", + " path_to_doscar=os.path.join(directory,\"DOSCAR.LSO.lobster.gz\"),\n", + " e_range=[-20, 0],\n", + " path_to_vasprun=os.path.join(directory,\"vasprun.xml.gz\"),\n", + " n_bins=256,\n", + " )\n", + "calc_quality_K3Sb" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8bca8893", + "metadata": {}, + "outputs": [], + "source": [ + "# Get a text description from calculation quality summary dictionary\n", + "calc_quality_k3sb_des = Description.get_calc_quality_description(\n", + " calc_quality_K3Sb\n", + " )\n", + "Description.write_calc_quality_description(calc_quality_k3sb_des)" + ] + }, + { + "cell_type": "markdown", + "id": "952f79a1", + "metadata": {}, + "source": [ + "## Using plotting utilities" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "240ae59d", + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import style\n", + "from pymatgen.io.lobster import Doscar\n", + "from lobsterpy.plotting import InteractiveCohpPlotter, PlainCohpPlotter, PlainDosPlotter, get_style_list" + ] + }, + { + "cell_type": "markdown", + "id": "5a0318f2", + "metadata": {}, + "source": [ + "You can alter the apperance of the static plots using the style sheet that comes with LobsterPy or use any of the readily available matplotlib style sheets" + ] + }, + { + "cell_type": "markdown", + "id": "affedb37", + "metadata": {}, + "source": [ + "### Plot COHPs / COBIS / COOPs from Analysis object\n", + "\n", + "It is important the `are_cobis`/`are_coops` to `True` in the plotter depending on type of files you analyzed or want to plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3da81099", + "metadata": {}, + "outputs": [], + "source": [ + "# Using PlainCohpPlotter to get static plots of relevant bonds from Analysis object\n", + "style.use(get_style_list()[0]) # Use the LobsterPy style sheet for the generated plots\n", + "cohp_plot_static = PlainCohpPlotter(are_cobis=False, are_coops=True)\n", + "for plot_label, label_list in analyse.get_site_bond_resolved_labels().items():\n", + " cohp = analyse.chemenv.completecohp.get_summed_cohp_by_label_list(label_list=label_list)\n", + " cohp_plot_static.add_cohp(plot_label, cohp)\n", + "cohp_plot_static.get_plot(ylim=[-15,2]);" + ] + }, + { + "cell_type": "markdown", + "id": "ee858f84", + "metadata": {}, + "source": [ + ":::{note}\n", + "You can get plots from orbital resolved anaylsis only when `orbital_resolved` arg to `True` when initializing Analysis object.\n", + ":::" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b01bf48a", + "metadata": {}, + "outputs": [], + "source": [ + "# Using PlainCohpPlotter to get static plots of relevant orbitals COHPs from Analysis object\n", + "style.use('default') # Complete reset the matplotlib figure style\n", + "style.use('seaborn-v0_8-ticks') # use exsiting matplotlib style\n", + "cohp_plot_static = PlainCohpPlotter()\n", + "for plot_label , orb_data in analyse.get_site_orbital_resolved_labels().items():\n", + " for orb, label_list in orb_data.items():\n", + " cohp = analyse.chemenv.completecohp.get_summed_cohp_by_label_and_orbital_list(label_list=label_list, \n", + " orbital_list=[orb]*len(label_list))\n", + " cohp_plot_static.add_cohp(orb, cohp)\n", + "cohp_plot_static.get_plot(ylim=[-15,2]);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "866cd67a", + "metadata": {}, + "outputs": [], + "source": [ + "# Using interactive plotter to add relevant cohps\n", + "interactive_cohp_plot = InteractiveCohpPlotter()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60f64578", + "metadata": {}, + "outputs": [], + "source": [ + "interactive_cohp_plot.add_all_relevant_cohps(analyse=analyse, label_resolved=False,orbital_resolved=True,suffix='')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b180bdfe", + "metadata": {}, + "outputs": [], + "source": [ + "fig = interactive_cohp_plot.get_plot()\n", + "fig.show(renderer='notebook')" + ] + }, + { + "cell_type": "markdown", + "id": "62780a77", + "metadata": {}, + "source": [ + "### Plot DOS from Lobster" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b3a9758b", + "metadata": {}, + "outputs": [], + "source": [ + "# Load Lobster DOS\n", + "dos = Doscar(doscar='/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/DOSCAR.lobster.gz',\n", + " structure_file='/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/POSCAR.gz')" + ] + }, + { + "cell_type": "markdown", + "id": "6b75cf61", + "metadata": {}, + "source": [ + "Plot total, element and spd dos" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f0c863e3", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "style.use('default') # Complete reset the matplotlib figure style\n", + "style.use(get_style_list()[0]) # Use the LobsterPy style sheet for the generated plots\n", + "dos_plotter = PlainDosPlotter(summed=True, stack=False, sigma=None)\n", + "dos_plotter.add_dos(dos=dos.completedos, label='Total DOS')\n", + "dos_plotter.add_dos_dict(dos_dict=dos.completedos.get_element_dos()) # Add element dos\n", + "dos_plotter.add_dos_dict(dos_dict=dos.completedos.get_spd_dos()) # add spd dos\n", + "dos_plotter.get_plot(xlim=[-10, 3]);" + ] + }, + { + "cell_type": "markdown", + "id": "0c06ae48", + "metadata": {}, + "source": [ + "Plotting DOS at particular site and orbital" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "660b35ad", + "metadata": {}, + "outputs": [], + "source": [ + "dos_plotter = PlainDosPlotter(summed=True, stack=False, sigma=0.03)\n", + "dos_plotter.add_site_orbital_dos(dos = dos.completedos, site_index=0, orbital='3s')\n", + "dos_plotter.get_plot(xlim=[-10, 3]);" + ] + }, + { + "cell_type": "markdown", + "id": "b308aea8", + "metadata": {}, + "source": [ + "## Use featurizer to extract LOBSTER bonding analysis data as feature for ML studies" + ] + }, + { + "cell_type": "markdown", + "id": "8ae894fc", + "metadata": {}, + "source": [ + ":::{note}\n", + "To use the batch featurizers, the path to parent directory containing LOBSTER calculation outputs needs to be provided. For example your directory structure needs to be like this: \n", + "\n", + "parent_dir/lobster_calc_output_dir_for_compound_1/\n", + "parent_dir/lobster_calc_output_dir_for_compound_2/\n", + "parent_dir/lobster_calc_output_dir_for_compound_3/\n", + "\n", + "the `lobster_calc_output_dir_for_compound_*` directory should contain all your LOBSTER outputs and POSCAR file.\n", + "\n", + "In such a case `path_to_lobster_calcs=\"parent_dir\"` needs to be set \n", + ":::" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8882b3f5", + "metadata": {}, + "outputs": [], + "source": [ + "from lobsterpy.featurize.batch import BatchSummaryFeaturizer, BatchCoxxFingerprint" + ] + }, + { + "cell_type": "markdown", + "id": "8f6886ef", + "metadata": {}, + "source": [ + "`BatchSummaryFeaturizer` provides an convenient way to directly extract summary stats in the form of pandas dataframe directly from LOBSTER calculation directory. The summary stats consist of following:\n", + "\n", + "1. ICOHP, bonding , antibonding percent (mean, min, max , standard deviation) of relevant bonds from LobsterPy analysis (Orbital wise anaylsis stats data can also be included : Optional)\n", + "2. Weighted ICOHP ( ICOOP/ ICOBI : Optional)\n", + "3. COHP center, width, skewness , kurtosis, edge (COOP/ COBI : Optional)\n", + "4. Ionicity and Madelung energies for the structure based on Mulliken and Loewdin charges" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f4f0b721", + "metadata": {}, + "outputs": [], + "source": [ + "summary_features = BatchSummaryFeaturizer(\n", + " path_to_lobster_calcs=\"/home/anaik/Downloads/LobsterPy/tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", + " bonds=\"all\",\n", + " include_cobi_data=False,\n", + " include_coop_data=False,\n", + " e_range=[-15, 0],\n", + " n_jobs=3,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "823768ca", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "summary_features.get_df()" + ] + }, + { + "cell_type": "markdown", + "id": "54277969", + "metadata": {}, + "source": [ + "`BatchCoxxFingerprint` provides an convenient way to directly generate fingerprint objects from COHP / COBI/ COOPCAR.lobster data. Generating fingerprints specificaly for `bonding`, `antibonding` and `overall` interactions is feasible. \n", + "\n", + "One can also generate a pair-wise fingerprint similarity matrix dataframe (currently only simple vector dot product or tanimoto index are implemented)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37e0c3b9", + "metadata": {}, + "outputs": [], + "source": [ + "fp_cohp_bonding = BatchCoxxFingerprint(\n", + " path_to_lobster_calcs=\"/home/anaik/Downloads/LobsterPy/tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", + " e_range=[-15, 0], \n", + " feature_type=\"bonding\",\n", + " normalize=True, # affects the fingerprint similarity matrix computation\n", + " tanimoto=True, # affects the fingerprint similarity matrix computation\n", + " n_jobs=3,\n", + " fingerprint_for='cohp' # changing this to cobi/coop will result in reading cobicar/coopcar file\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3b958625", + "metadata": {}, + "outputs": [], + "source": [ + "# Access fingerprint dataframe\n", + "fp_cohp_bonding.fingerprint_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b9ad30a1", + "metadata": {}, + "outputs": [], + "source": [ + "# Get fingerprint similarity matrix\n", + "fp_cohp_bonding.get_similarity_matrix_df()" + ] + }, + { + "cell_type": "markdown", + "id": "b3579e53", + "metadata": {}, + "source": [ + "## Generate structure graph objects with LOBSTER data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "07b0a7ed", + "metadata": {}, + "outputs": [], + "source": [ + "from lobsterpy.structuregraph.graph import LobsterGraph" + ] + }, + { + "cell_type": "markdown", + "id": "13e2e7e6", + "metadata": {}, + "source": [ + "Below code snippet will generate a networkx graph object with ICOHP, ICOOP and ICOBI data as edge properites and charges as node properties." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6599b2ae", + "metadata": {}, + "outputs": [], + "source": [ + "graph_NaCl_all = LobsterGraph(\n", + " path_to_poscar=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/POSCAR.gz\",\n", + " path_to_charge=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/CHARGE.lobster.gz\",\n", + " path_to_cohpcar=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/COHPCAR.lobster.gz\",\n", + " path_to_icohplist=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/ICOHPLIST.lobster.gz\",\n", + " add_additional_data_sg=True,\n", + " path_to_icooplist=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/ICOOPLIST.lobster.gz\",\n", + " path_to_icobilist=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/ICOBILIST.lobster.gz\",\n", + " path_to_madelung=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/MadelungEnergies.lobster.gz\",\n", + " which_bonds=\"all\",\n", + " start=None,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd0a22d9", + "metadata": {}, + "outputs": [], + "source": [ + "graph_NaCl_all.sg.graph.nodes.data() # view node data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1c1ea58f", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "graph_NaCl_all.sg.graph.edges.data() # view edge data" + ] + } + ], + "metadata": { + "hide_input": false, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/source/Lobsterpy_tutorial_files/COBI_330.png b/docs/source/tutorial/tutorial_assets/COBI_330.png similarity index 100% rename from docs/source/Lobsterpy_tutorial_files/COBI_330.png rename to docs/source/tutorial/tutorial_assets/COBI_330.png diff --git a/docs/source/Lobsterpy_tutorial_files/COHP.png b/docs/source/tutorial/tutorial_assets/COHP.png similarity index 100% rename from docs/source/Lobsterpy_tutorial_files/COHP.png rename to docs/source/tutorial/tutorial_assets/COHP.png diff --git a/docs/source/Lobsterpy_tutorial_files/COHP_330.png b/docs/source/tutorial/tutorial_assets/COHP_330.png similarity index 100% rename from docs/source/Lobsterpy_tutorial_files/COHP_330.png rename to docs/source/tutorial/tutorial_assets/COHP_330.png diff --git a/docs/source/Lobsterpy_tutorial_files/COOP_330.png b/docs/source/tutorial/tutorial_assets/COOP_330.png similarity index 100% rename from docs/source/Lobsterpy_tutorial_files/COOP_330.png rename to docs/source/tutorial/tutorial_assets/COOP_330.png diff --git a/docs/source/tutorial/tutorial_assets/CdF2.html b/docs/source/tutorial/tutorial_assets/CdF2.html new file mode 100755 index 00000000..7fe4e694 --- /dev/null +++ b/docs/source/tutorial/tutorial_assets/CdF2.html @@ -0,0 +1,14 @@ + + + +
+
+ + \ No newline at end of file diff --git a/docs/source/tutorial/tutorial_assets/CdF2_orb.html b/docs/source/tutorial/tutorial_assets/CdF2_orb.html new file mode 100755 index 00000000..b0b16460 --- /dev/null +++ b/docs/source/tutorial/tutorial_assets/CdF2_orb.html @@ -0,0 +1,14 @@ + + + +
+
+ + \ No newline at end of file diff --git a/docs/source/Lobsterpy_tutorial_files/ICOHP.png b/docs/source/tutorial/tutorial_assets/ICOHP.png similarity index 100% rename from docs/source/Lobsterpy_tutorial_files/ICOHP.png rename to docs/source/tutorial/tutorial_assets/ICOHP.png diff --git a/docs/source/Lobsterpy_tutorial_files/Lobsterpy_tutorial_38_0.png b/docs/source/tutorial/tutorial_assets/Lobsterpy_tutorial_38_0.png similarity index 100% rename from docs/source/Lobsterpy_tutorial_files/Lobsterpy_tutorial_38_0.png rename to docs/source/tutorial/tutorial_assets/Lobsterpy_tutorial_38_0.png diff --git a/docs/source/tutorials.rst b/docs/source/tutorials.rst deleted file mode 100644 index 52f724d3..00000000 --- a/docs/source/tutorials.rst +++ /dev/null @@ -1,33 +0,0 @@ -Tutorial -========= - -.. raw:: html - -
- -Written by Aakash Naik (aakash.naik@bam.de) based on suggestions -provided by Dr. Janine George (janine.george@bam.de) - -.. raw:: html - -
- -.. note:: - - To download Lobster, please visit http://www.cohp.de. Currently, only VASP/Lobster computations are supported. - - -This tutorial will demonstrate how the Lobsterpy package can be used to: - -1. Create input files necessary for VASP and lobster runs -2. Use generated inputs files to run VASP and Lobster -3. Analyze the lobster outputs with automation - -.. toctree:: - :maxdepth: 2 - - installation.rst - commandlineinterface - pythoninterface - computingtimes - atomateauto From 11ab2520e4224a877d7a7a9292b34c412dea141f Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 3 Nov 2023 22:23:04 +0100 Subject: [PATCH 05/49] fix sphinx version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a93d6e67..c11165a3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,7 +44,7 @@ dev = ["pre-commit>=2.12.1"] tests = ["flake8", "pytest", "pytest-mock", "pytest-split", "pytest-cov"] docs = [ "sphinx-copybutton==0.5.2", - "sphinx==7.2.6", + "sphinx>=5,<6", "sphinx_design==0.5.0", "ipython==8.16.1", "myst-nb==0.17.2", From a3a2f48ca0cadb77c646c8e84bb85b4ddba6c67b Mon Sep 17 00:00:00 2001 From: anaik Date: Sat, 4 Nov 2023 13:35:58 +0100 Subject: [PATCH 06/49] update docs, tutorials, layout --- docs/Makefile | 20 -- docs/about/changelog.md | 2 + docs/{source => }/about/license.md | 0 docs/{source => }/conf.py | 46 +--- docs/dev/contributing.md | 2 + .../fundamentals_assets/LobsterEnv_schema.png | Bin 0 -> 179574 bytes docs/fundamentals/index.ipynb | 236 ++++++++++++++++++ docs/{source => }/index.md | 1 + docs/installation/index.md | 5 + docs/make.bat | 35 --- docs/{source => }/reference/cli.rst | 2 + docs/{source => }/reference/cli_main.rst | 0 .../reference/cli_subcommands/autoplot.rst | 0 .../reference/cli_subcommands/autoplotia.rst | 0 .../reference/cli_subcommands/calcdesc.rst | 0 .../cli_subcommands/createinputs.rst | 0 .../reference/cli_subcommands/description.rst | 9 + docs/reference/cli_subcommands/plot.rst | 9 + .../reference/cli_subcommands/plotdos.rst | 0 .../reference/cli_subcommands/ploticohps.rst | 0 docs/{source => }/reference/index.rst | 0 docs/source/about/changelog.md | 2 - docs/source/dev/contributing.md | 2 - docs/source/fundamentals/index.ipynb | 66 ----- docs/source/installation/index.md | 5 - docs/{source => }/tutorial/atomateauto.rst | 2 +- .../tutorial/commandlineinterface.rst | 17 +- docs/{source => }/tutorial/computingtimes.rst | 0 docs/{source => }/tutorial/index.rst | 2 +- docs/{source => }/tutorial/tutorial.ipynb | 43 ++-- .../tutorial/tutorial_assets/COBI_330.png | Bin .../tutorial/tutorial_assets/COHP.png | Bin .../tutorial/tutorial_assets/COHP_330.png | Bin .../tutorial/tutorial_assets/COOP_330.png | Bin .../tutorial/tutorial_assets/CdF2.html | 0 .../tutorial/tutorial_assets/CdF2_orb.html | 0 docs/tutorial/tutorial_assets/DOS_example.png | Bin 0 -> 77222 bytes .../tutorial/tutorial_assets/ICOHP.png | Bin .../ICOHPs_distance_example.png | Bin 0 -> 32307 bytes .../Lobsterpy_tutorial_38_0.png | Bin 40 files changed, 313 insertions(+), 193 deletions(-) delete mode 100644 docs/Makefile create mode 100644 docs/about/changelog.md rename docs/{source => }/about/license.md (100%) rename docs/{source => }/conf.py (68%) create mode 100644 docs/dev/contributing.md create mode 100755 docs/fundamentals/fundamentals_assets/LobsterEnv_schema.png create mode 100755 docs/fundamentals/index.ipynb rename docs/{source => }/index.md (98%) create mode 100644 docs/installation/index.md delete mode 100644 docs/make.bat rename docs/{source => }/reference/cli.rst (81%) rename docs/{source => }/reference/cli_main.rst (100%) rename docs/{source => }/reference/cli_subcommands/autoplot.rst (100%) rename docs/{source => }/reference/cli_subcommands/autoplotia.rst (100%) rename docs/{source => }/reference/cli_subcommands/calcdesc.rst (100%) rename docs/{source => }/reference/cli_subcommands/createinputs.rst (100%) create mode 100644 docs/reference/cli_subcommands/description.rst create mode 100644 docs/reference/cli_subcommands/plot.rst rename docs/{source => }/reference/cli_subcommands/plotdos.rst (100%) rename docs/{source => }/reference/cli_subcommands/ploticohps.rst (100%) rename docs/{source => }/reference/index.rst (100%) delete mode 100644 docs/source/about/changelog.md delete mode 100644 docs/source/dev/contributing.md delete mode 100755 docs/source/fundamentals/index.ipynb delete mode 100644 docs/source/installation/index.md rename docs/{source => }/tutorial/atomateauto.rst (80%) rename docs/{source => }/tutorial/commandlineinterface.rst (95%) rename docs/{source => }/tutorial/computingtimes.rst (100%) rename docs/{source => }/tutorial/index.rst (94%) rename docs/{source => }/tutorial/tutorial.ipynb (91%) rename docs/{source => }/tutorial/tutorial_assets/COBI_330.png (100%) rename docs/{source => }/tutorial/tutorial_assets/COHP.png (100%) rename docs/{source => }/tutorial/tutorial_assets/COHP_330.png (100%) rename docs/{source => }/tutorial/tutorial_assets/COOP_330.png (100%) rename docs/{source => }/tutorial/tutorial_assets/CdF2.html (100%) rename docs/{source => }/tutorial/tutorial_assets/CdF2_orb.html (100%) create mode 100644 docs/tutorial/tutorial_assets/DOS_example.png rename docs/{source => }/tutorial/tutorial_assets/ICOHP.png (100%) create mode 100644 docs/tutorial/tutorial_assets/ICOHPs_distance_example.png rename docs/{source => }/tutorial/tutorial_assets/Lobsterpy_tutorial_38_0.png (100%) diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index d0c3cbf1..00000000 --- a/docs/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = source -BUILDDIR = build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/about/changelog.md b/docs/about/changelog.md new file mode 100644 index 00000000..3139cd42 --- /dev/null +++ b/docs/about/changelog.md @@ -0,0 +1,2 @@ +```{include} ../../CHANGELOG.md +``` diff --git a/docs/source/about/license.md b/docs/about/license.md similarity index 100% rename from docs/source/about/license.md rename to docs/about/license.md diff --git a/docs/source/conf.py b/docs/conf.py similarity index 68% rename from docs/source/conf.py rename to docs/conf.py index 034d9664..d63cfabc 100644 --- a/docs/source/conf.py +++ b/docs/conf.py @@ -13,7 +13,7 @@ import os import sys -sys.path.insert(0, os.path.abspath("../")) +sys.path.insert(0, os.path.abspath("../../")) # -- Project information ----------------------------------------------------- @@ -41,9 +41,9 @@ "sphinx_copybutton", ] -#napoleon_include_private_with_doc = True -#napoleon_include_special_with_doc = True -#autoclass_content = "both" +# napoleon_include_private_with_doc = True +# napoleon_include_special_with_doc = True +# autoclass_content = "both" source_suffix = [".rst", ".md", ".ipynb"] @@ -56,7 +56,8 @@ # This pattern also affects html_static_path and html_extra_path. exclude_patterns = [ - "**/test/*", + "test*.py", + "test", "Thumbs.db", ".DS_Store", ] @@ -71,7 +72,6 @@ ] - # use type hints autodoc_typehints = "description" # autoclass_content = "both" @@ -83,40 +83,6 @@ napoleon_use_ivar = True -def run_apidoc(_): - import subprocess - import glob - - output_path = os.path.abspath(os.path.dirname(__file__)) - excludes = glob.glob(os.path.join(output_path, "../../lobsterpy/cohp/test")) - excludes1 = glob.glob(os.path.join(output_path, "../../lobsterpy/test")) - excludes2 = glob.glob(os.path.join(output_path, "../../lobsterpy/plotting/test")) - excludes3 = glob.glob(os.path.join(output_path, "../../lobsterpy/featurize/test")) - excludes4 = glob.glob( - os.path.join(output_path, "../../lobsterpy/structuregraph/test") - ) - module = os.path.join(output_path, "../../lobsterpy") - cmd_path = "sphinx-apidoc" - command = [ - cmd_path, - "-e", - "-o", - output_path, - module, - " ".join(excludes), - " ".join(excludes1), - " ".join(excludes2), - " ".join(excludes3), - " ".join(excludes4), - "--force", - ] - subprocess.check_call(command) - - -def setup(app): - app.connect("builder-inited", run_apidoc) - - # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for diff --git a/docs/dev/contributing.md b/docs/dev/contributing.md new file mode 100644 index 00000000..ef6daa82 --- /dev/null +++ b/docs/dev/contributing.md @@ -0,0 +1,2 @@ +```{include} ../../CONTRIBUTING.md +``` diff --git a/docs/fundamentals/fundamentals_assets/LobsterEnv_schema.png b/docs/fundamentals/fundamentals_assets/LobsterEnv_schema.png new file mode 100755 index 0000000000000000000000000000000000000000..2ec580ae1ccd8f2287d8092f965a68162b81bbd6 GIT binary patch literal 179574 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 z ze{Fnl{1CDag&Xrd0g&=>Ms#)2abqw_r7G#%%>2@Gkf_r~TjRc|Vprp{=3_GMwV8ZT zkQ7Fys?qnmdwJOu zi&4F$u?241DL3I!4b*T<6i!%%e^R-$Xc^S546!PVkgN={ zT`r%}xSpf!3AU?@rAo;@mqv4YD+tpAP;H<2`8G!!#WL@Ly+$Lr+Xt$aHT%G{?=+cF ztbe-N{BxI$dg1{;T%+=&4Yi^kc)VTTk3yFywQnG55^_RW%3K!ml=TQOf*)e}CfUL& zUVy2h!Ek@Vbbj+IMb|xD>bM(a8Y4NT!dH1xD*bX^g`3BjIzx|7nPEW$*=oA4KMzZz zrvu*>$u#P{%j_(5rrUeAtI=DZ>;~6_2tK7~-e-oik37Ui*LoTKNA7sOj@W+Fd%Z?~ zkMDJ{#rJ&n+2rvKs@{$*Q^xZ;1>L%T2nx{C)@Va_+hyN8yH}G+#;~hSo@-Kwu446j zH=0vIFK%T*d_Y1x9#DA@34D?_d_5K(K%pi#gP0FGuPYAt0`6Cq1W<3*a9C+_R^1-Z zt)^e1)~Y%US!{U}5}n8DOSk&=5;&4&AS4?4gONzOOJ`DlJYX;~xllZ6Y25<6ylQ1z zCHDIDCp^*CSxP<9M5Vs|@ej=E5QT!mjLVnIRSg+T-v&ZK+Au-|?Doq6;~)ip92 zSGY+c!jL7_@Ga1UB~F~iQvXgqw*&jW`x5k%zBDhl>+HfK`R{<+;rN+w63y$k0h(zn z+Ldq@zDm$@$2#i^)LDStC=oTbs414z$0jbRKkXssy5UD+W6!;HLtfUwYUy?=*Zu*zp&6D1zwaq7KW_bRHW&2OhvE2jis{J52?{RGv&s-bCh zH**@tcYTBko_n+S)^*#3t!I);aZD#TtV^8=g^B}00TI`iqQh$a%z;2Icc>c5!N?w1 z%1%;oUOxCi$wzs%WJ%ftX>j30H03~CCua}d?zzx`8z6En#~==j&;uJ$AM`HB5`#;W z0;(`i>bG%~LtG5fFTA3GAz+YWvRF*ul8^zNuu7y)2F(N0P1jPE^MFgt9)T6b^pcUR z@smgK+dMJSMrZEsJxSn&BjM?P$-Ov`C8`eeWEG3O$XEzuGZ@n`)V*52e*<4!9qO9{ zpd=D0-E;eA6Fm5sl{n4QR+DSCPRj$mK0=wue1Xr(ea!n9m_;751F(;@>f(vXo)vPYTdxT_4T9rob zs|oLOAK>k^iCaaOY$>!`+5N;G%@i#wM zAVN33T zfz*1P-`uvGigdp%+JoU(sn|xj00jbk?!*fC-UlCix4DMiI+IHc%2jXTwtOvArn-Gw zqV=%gi2ho#c+7!$v>u553~)O(3-+lp1i!V@4Xa>a8yg-xdf@=K;XxH^23(a^&eS!< zFAr@-xxUG@R<)Ds3TMe-BnDHN%-?Nm2a)_3$q2t9=NeypvzPW!LI`tmCb8Rm47Mjy ze9_CO%s}`>w;%?|wWr7tSB5WPTtVk7v`0~5N)T2}@5PGb=!Cw%9aP-v=6dYvGGONk zvarXgJ`L=yOyWsoOq5Bi)J5Aic31H`IVXv=x8Swo{R5#chab5bz6J;fNMDNP;zt(8 z6Rd}wF9_nVen87@z5GmXKg#;naI2)M%@k*WoABkfb2V9vy8ZKb$e6WT24{rT^pZgC zIS0^7Bey?urS-^dodKNy5yx#--*BM*&N*z%w$ph7;@r=b@uOhc4F$b@i)N?g8tQd} z(Rq|cw9V}*grgMADz=OPnbT%ot&GQfq^^hWnipBb#g_TZhVSduZdm>%CC7mOzW zlr*AIHy8J(0DiN!N!{F|+Ro5Kj!{niNex<)QWbh(zz#*8%~AT>qPLbe$-7zh_^c@D zLw!P4kI1})0c*`P?DeDtGl^7XPq43X%F{p>Vk5>6yaXmW%G5mYbO$?7l~|v*CD3h? zt)*SeAI`U{G*=)(gfW^ug`P_emfkwhKuR~GgBp1$rIE{lVrJ@0!L%xiz9b-pjpzt` z@>v{-KAL39x)s@BAH)6sH;cj^kAl}bur0)%Z?-zpzn53GlC0ecX-*!3pArM|0XqhT zpM-1{ujo_%j{db>pQ8=$NTK*FVPnz|#7ah|RgEzx8J;zaAK;s&fiZ>RyVfZV zL>z&&Rc6PN=HStDy2P&O;+^KFmk8bpMn>1}-1R$O=W>_su#0_RQgkV-GFBe&DH#C0 zR$Y>vK&&NxXzGDf)XY2iszU2=FI~rS=V^bOXAssQ{1iNG`2J*2%6^Aw#b`czwv-{P zypq8x=NY#vke&vUHl-qBD62cMS6>br9xE6Psl8AIs@;l3C<)-;yDNihdD)g|vQFVp5UM^P=E#o2o_ zU|#F`z+7MbwC;X#D;Oc$lEHqNbI_P=Bdveh>xI@_x^$i?m*SnG>vB1D%$tk@!BQjT1~f_LyBcp=p2D8n60*D=Snz7C2zX2Q@?&n%FyqSk-vZ=^%NI7( z*$ntuN2xL8Y8BaxE8;1Tr;LI1^m4|2ntdVQwJR{!nucaHA+sBr<@4KoZ*$Wcw`R88 z^ziI(Rtr$2&35Y^xmcL^B(r_(wnb`(47-D8kR``;sivAD^C;>%A&ilDr` z_wJ;fYS%B*!!w%qOUHfi+B_fI)Sz#ln9XX_e^o!y^tTF zCQ%{m2_v~i@U3gdiAhau-Z@88N;SVL)DHHQh;s=COoU?8S%Zb$->nwz2s6!fl^jhD@>W1_h|3J!<4b~-5&s?F9TuoUjQiBwnVr8~_+(z8iEQ%+{ zmup?cHw@y%Z(5BV zwaWXaqhePj>pjQ`t8x|FW6_7~K`t%N8B)l+Q{?i9C|rj4tk`@xNvKkMhs zt#|rlN0=C5j<>Kc}Kk^F4vQ(L4P|L0;cE!ieopMr{y+aP45;htHo zW+GrU&t1zyNBI150G7zEdSIT4tx?5T*YlWouV>eU?K{#t(@RSTe`s!ldgYaWjO`8n$2=n14*THeO*^VM6bl?C-ZiohH`mN4Q)M5kKF<+#+5$)L?r!)#7BZ z<-{RUUK9$NT=r8`^SAD^YjPFs7CqwLGygWp)+$568yHR6y8d{lG7h#xltL-d z?qN1WlI5k$wuUQ3R;XycotGjKs36D5COaIDA{_@QZ7h&qNEih9aFGZisS%4;f zvb4^t$bU9!Z>PuI6@!&o)zQoj+BTO_fnPiuJmsQ)!b9D-(UH5H;4mUPVVn~T$O$*J z@(is|};fo$+4+!vmqq_C}tY0bj_7m*S#hLnq z6_Y?zf}wDjF!7T@@a_xJi*Vq=g3r6&mXN-1cc9u*q1$%-6wdPABHF7=R|Jwn9 zTbD5K-?j*?dPR}`R?x_D=dC*0 zdE{aCr8QN-ul*YphvNcwPk)k9dd3t9?tIV5VdbU zc@3eiJ^Fg%OW^pSa378=Ae#`CMAzIpg~fB4>BRj;Rl$AF;%zm zhwW(&rzanu?4PJPu|Ily2E8qBD7K*^HHc`x+ADjD#UM%--O#0)VE``&7GSpn4kkL! zeQI$^569i_eiM-SIxOS7)M{6%acW3hV_Gz8Z|t);fUGL*rX2JdDDRU&OkguNY4k2>l1IvZ`J+iUzxn6y^MHRO8CbjMt z!Ane=ZZpoHK-PGsxtN_R@zC4rG3+PAFTb#^Z)90B5*?YrAvL({=Q1Lzt$uk!U+2E) zqn>q>kk=HX^DSD9o3v4r;IlOUP^$hl$1Rq9G2@q~qHCw;{WpzrkBHk4`^lds=1O_j zV)5*lTj#5wWa+wC7Es(Oxxr)^d#^ZjQdw#Lkx3 z4UnEdY+9I}AwwL7@`(v8)rl7%STWMWw6MzOX18^@e&Km|lK)yK!`^nu8>eEkgyLV% zySB)p|FRHehgi3_pL(+b9?g-)<2ZH&463weSwRv1S=W?!n@FqoJ{`BHV#!wkSO#Dnj_FcBkJWy+}o>>Qvya4BGkJ-;aqas-d^s+=1Hz<`wRm05yp)q%v&QN@=mO zU(I91E5bhJr~pW61dBby_$_~C}CHo9tobUE^r+R}x;O97Ny6$g+9>cGa3 zg46@H?w#8E_#7~M#qgI#8jGoI47Y9dAT}y951D7N#Wwi24KU3H8y1L4gzMcdLxH0M zN%w6OL@_lk1JhP!Rt2ux0@s|z#R@MnoRwnOH7QZJqR!dZLHbNFyr9A=S!@1YY68!6 zxzsb$l^*u7Q5-O+62W&7+Gd#YHw%3)#CmngdX91b%yRR3W{x!512$xW%? zxHEv1dQZr5rKVtGxLxHr5fn1rxlbcP{!NU6G%1z{OE&a2{DlbC$hclrlb8E1fFXA@ z&o1U<@7Ah2jFGftVz>oNBkFK3c}F!vs(~L22rEyl)(QI#NPJrt>bo4WJR=}c$TpaC z^GpPn$dO!rC1&{%hA~w=-eVoY0i}Mui{Pd|3q|KXuE&{idZ07FgHBE-w+#9;&^9FN=>_JB?AoC^GwoKv? zcB7Vwks+YY8L5+%?PP6e<{QY_d>XtZ=uYT5;fCdsK<;>~#G4#r&CWjjO2y-~KQFbT zRw=FMk$|vs-uduVP!ui%NrPRb@70QEnnb6o9KH{E#*&>&lM{(eEQBc)rVPrCZs+F+ z^2ni*B@l}DJE%v7kx@ByW`)05#VxLx?UWpg6EB0%$fIzt(JssP-SkL&^j{(1DzO{p*CUBRF0349BK8UWTVp2@RZQUWxsT z$L$r`jK&po_Ai_!$>z4hro_W$KRD`!MRk7El{2{zU^pM9j$pG}|2<>*)YW!rcZkr% z6Ulg}<)T^J!l}LA=gtl>LKPmYn)y&tq>^Hg*D!BB|H|K-?PPB>GFwJ#sgyJ@zc)unFOJ878K+K#EFiPGq(;XThx zygwO1C)mJHx&b@4HeW9GS_ojewC#5*FLO-|UB1K(Dkh}l6-hkt9*7M97F%Ed+HqY- zR+ISV$o<YaI2%8ebHqgfau;MQ9F zI$9~0J0>u;aGjotiaH4WK2Vn`pFQ%Lpt1nBcF3@?+jHj*xN%jqmt24;7(ZjpjxK1jMxvB6 z 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

Average features
\n", + "\n", + "The $\\overline{\\mathrm{ICOHP}}$ can be interpreted as the average bond strength inside the given material.\n", + "\n", + "$\\overline{\\mathrm{COHP}}(E) =\\sum_i\\left(w_i \\cdot \\operatorname{COHP}_i(E)\\right)$ \n", + "\n", + "$w_i =\\frac{\\mathrm{ICOHP}_i}{\\mathrm{ICOHP}_{\\text {total}}}$\n", + "\n", + "$\\overline{\\mathrm{ICOHP}}=\\int_{-\\infty}^{\\varepsilon_{\\mathrm{F}}} \\overline{\\mathrm{COHP}}(E) \\mathrm{d}E $\n", + "\n", + "The EIN is comparable to a coordination number\n", + "\n", + "$\\mathrm{EIN}=\\frac{\\mathrm{ICOHP}_{\\text {total }}}{\\overline{\\mathrm{ICOHP}}} \\cdot \\frac{2}{N_{\\text {Atoms }}}$\n" + ] + }, + { + "cell_type": "markdown", + "id": "b486f6f8", + "metadata": {}, + "source": [ + "

Moment based features and fingerprints

\n", + "\n", + "These features are inspired from similar set of features implemented for DOS in [pymatgen](https://github.com/materialsproject/pymatgen/tree/master) with some additional functionalities. Namely\n", + "1. [Center](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L833)\n", + "2. [Width](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L862)\n", + "3. [Skewness](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L889)\n", + "4. [Kurtosis](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L919)\n", + "5. [Fingerprints](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L1093)\n", + "\n", + "For the case of COHPs, the $n^{th}$ moment is computed using following relation\n", + "\n", + "$n^{th}_{moment} = \\frac{\\int (p^n \\cdot \\text{COHPs} \\, dE)}{\\int \\text{COHPs} \\, dE}$\n", + "\n", + "The resulting $1^{st}$, $2^{nd}$, $3^{rd}$ and $4^{th}$ moment are named as center_COHP, width_COHP, skewness_COHP, kurtosis_COHP, respectively.\n", + "\n", + "And Fingerprints are basically COHP data discretized into histograms that will allow to compute similarity between COHP curves of different materials numerically.\n", + "\n", + ":::{note}\n", + "One can select the range of energy, type of interactions (bonding, antibonding, overall) one would like to compute these features.\n", + ":::" + ] + }, + { + "cell_type": "markdown", + "id": "2a1f1a31", + "metadata": {}, + "source": [ + "

Summary stats features from LobsterPy condensed bonding analysis dicts

\n", + "\n", + "These features were first implemented as part of our Database publication : [A. A. Naik, C. Ertural, N. Dhamrait, P. Benner, J. George, Sci. Data 2023, 10, 610.](https://doi.org/10.1038/s41597-023-02477-5)\n", + "\n", + "The source code can be found [here](https://github.com/naik-aakash/lobster-database-paper-analysis-scripts/blob/e274cc66fe5cdef981c9de0609eaba4368226c9a/ML_model/featurizer/lobster_featurizer.py#L33).\n", + "\n", + "This is code have been intergrated in our Package and it is extended to also work for COBI/COOP condensed bonding analysis dicts and can also include orbital wise analysis summary stats as well if enabled." + ] + }, + { + "cell_type": "markdown", + "id": "7d4e224f", + "metadata": {}, + "source": [ + "### Charge based features\n", + "\n", + "As Ionicity quantifies the strength of an ionic bond in the compound, there are several approaches to quantify it. Here we use the formulation as per [R. Nelson, C. Ertural, P. C. Müller, R. Dronskowski, in Compr. Inorg. Chem. III, Elsevier, 2023, pp. 141–201.](https://linkinghub.elsevier.com/retrieve/pii/B9780128231449001205), which use following relation: \n", + "\n", + "$I_{\\text {Charges }}=\\frac{1}{N_{\\text {Atoms }}} \\sum_i^{N_{\\text {Atoms }}}\\left(\\frac{q_i}{v_{\\text {eff }, i}}\\right)$\n", + "\n", + "It is possible to compute ionicity based on above mentioned formula using either the Mulliken or Löwdin charges obtained from LOBSTER run." + ] + } + ], + "metadata": { + "hide_input": false, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/source/index.md b/docs/index.md similarity index 98% rename from docs/source/index.md rename to docs/index.md index 351568b0..9fd36ea2 100644 --- a/docs/source/index.md +++ b/docs/index.md @@ -2,6 +2,7 @@ :caption: User Guide :hidden: installation/index +fundamentals/index tutorial/index ``` diff --git a/docs/installation/index.md b/docs/installation/index.md new file mode 100644 index 00000000..2c19fbcf --- /dev/null +++ b/docs/installation/index.md @@ -0,0 +1,5 @@ +```{include} ../../README.md +--- +start-line: 2 +--- +``` diff --git a/docs/make.bat b/docs/make.bat deleted file mode 100644 index dc1312ab..00000000 --- a/docs/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=source -set BUILDDIR=build - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.https://www.sphinx-doc.org/ - exit /b 1 -) - -if "%1" == "" goto help - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/docs/source/reference/cli.rst b/docs/reference/cli.rst similarity index 81% rename from docs/source/reference/cli.rst rename to docs/reference/cli.rst index e5e3a818..746071be 100644 --- a/docs/source/reference/cli.rst +++ b/docs/reference/cli.rst @@ -8,6 +8,8 @@ CLI Reference cli_subcommands/autoplot cli_subcommands/autoplotia cli_subcommands/calcdesc + cli_subcommands/description cli_subcommands/createinputs cli_subcommands/plotdos cli_subcommands/ploticohps + cli_subcommands/plot diff --git a/docs/source/reference/cli_main.rst b/docs/reference/cli_main.rst similarity index 100% rename from docs/source/reference/cli_main.rst rename to docs/reference/cli_main.rst diff --git a/docs/source/reference/cli_subcommands/autoplot.rst b/docs/reference/cli_subcommands/autoplot.rst similarity index 100% rename from docs/source/reference/cli_subcommands/autoplot.rst rename to docs/reference/cli_subcommands/autoplot.rst diff --git a/docs/source/reference/cli_subcommands/autoplotia.rst b/docs/reference/cli_subcommands/autoplotia.rst similarity index 100% rename from docs/source/reference/cli_subcommands/autoplotia.rst rename to docs/reference/cli_subcommands/autoplotia.rst diff --git a/docs/source/reference/cli_subcommands/calcdesc.rst b/docs/reference/cli_subcommands/calcdesc.rst similarity index 100% rename from docs/source/reference/cli_subcommands/calcdesc.rst rename to docs/reference/cli_subcommands/calcdesc.rst diff --git a/docs/source/reference/cli_subcommands/createinputs.rst b/docs/reference/cli_subcommands/createinputs.rst similarity index 100% rename from docs/source/reference/cli_subcommands/createinputs.rst rename to docs/reference/cli_subcommands/createinputs.rst diff --git a/docs/reference/cli_subcommands/description.rst b/docs/reference/cli_subcommands/description.rst new file mode 100644 index 00000000..9cd87a2d --- /dev/null +++ b/docs/reference/cli_subcommands/description.rst @@ -0,0 +1,9 @@ +description +============ + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: description + diff --git a/docs/reference/cli_subcommands/plot.rst b/docs/reference/cli_subcommands/plot.rst new file mode 100644 index 00000000..4c95adfe --- /dev/null +++ b/docs/reference/cli_subcommands/plot.rst @@ -0,0 +1,9 @@ +plot +==== + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: plot + diff --git a/docs/source/reference/cli_subcommands/plotdos.rst b/docs/reference/cli_subcommands/plotdos.rst similarity index 100% rename from docs/source/reference/cli_subcommands/plotdos.rst rename to docs/reference/cli_subcommands/plotdos.rst diff --git a/docs/source/reference/cli_subcommands/ploticohps.rst b/docs/reference/cli_subcommands/ploticohps.rst similarity index 100% rename from docs/source/reference/cli_subcommands/ploticohps.rst rename to docs/reference/cli_subcommands/ploticohps.rst diff --git a/docs/source/reference/index.rst b/docs/reference/index.rst similarity index 100% rename from docs/source/reference/index.rst rename to docs/reference/index.rst diff --git a/docs/source/about/changelog.md b/docs/source/about/changelog.md deleted file mode 100644 index 14e66a76..00000000 --- a/docs/source/about/changelog.md +++ /dev/null @@ -1,2 +0,0 @@ -```{include} ../../../CHANGELOG.md -``` diff --git a/docs/source/dev/contributing.md b/docs/source/dev/contributing.md deleted file mode 100644 index 004f419c..00000000 --- a/docs/source/dev/contributing.md +++ /dev/null @@ -1,2 +0,0 @@ -```{include} ../../../CONTRIBUTING.md -``` diff --git a/docs/source/fundamentals/index.ipynb b/docs/source/fundamentals/index.ipynb deleted file mode 100755 index 5c3fac7a..00000000 --- a/docs/source/fundamentals/index.ipynb +++ /dev/null @@ -1,66 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e4746f4b", - "metadata": {}, - "source": [ - "# Fundamental Aspects" - ] - }, - { - "cell_type": "markdown", - "id": "43408e8b", - "metadata": {}, - "source": [ - "## Core machinery of LobsterPy automatic analysis explained : Lobsterenv" - ] - }, - { - "cell_type": "markdown", - "id": "44546121", - "metadata": {}, - "source": [ - "## Evaluating bonding and anti-bonding percentages" - ] - }, - { - "cell_type": "markdown", - "id": "6094b839", - "metadata": {}, - "source": [ - "## Automatic orbital-wise analysis implementation" - ] - }, - { - "cell_type": "markdown", - "id": "6f631f31", - "metadata": {}, - "source": [ - "## Featurizers implementation" - ] - } - ], - "metadata": { - "hide_input": false, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.0" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/source/installation/index.md b/docs/source/installation/index.md deleted file mode 100644 index 5e67b215..00000000 --- a/docs/source/installation/index.md +++ /dev/null @@ -1,5 +0,0 @@ -```{include} ../../../README.md ---- -start-line: 2 ---- -``` diff --git a/docs/source/tutorial/atomateauto.rst b/docs/tutorial/atomateauto.rst similarity index 80% rename from docs/source/tutorial/atomateauto.rst rename to docs/tutorial/atomateauto.rst index a0e9e8da..46924df0 100644 --- a/docs/source/tutorial/atomateauto.rst +++ b/docs/tutorial/atomateauto.rst @@ -1,6 +1,6 @@ High-throughput LOBSTER calcs ============================== - 1. In *atomate_v2*, the LobsterPy is has been made an integral part of LOBSTER workflow. Check the link which shows how to use our this workflow to perform bonding analysis with LOBSTER via atomate2 `here `_. + 1. In *atomate_v2*, the LobsterPy is has been made an integral part of LOBSTER workflow. Check the link which shows how to use our this workflow to perform bonding analysis with LOBSTER via `atomate2 `_. 2. Older *atomate_v1* workflow tutorial can be found `here `_. diff --git a/docs/source/tutorial/commandlineinterface.rst b/docs/tutorial/commandlineinterface.rst similarity index 95% rename from docs/source/tutorial/commandlineinterface.rst rename to docs/tutorial/commandlineinterface.rst index f36d3ab1..d63a7ed8 100644 --- a/docs/source/tutorial/commandlineinterface.rst +++ b/docs/tutorial/commandlineinterface.rst @@ -271,9 +271,18 @@ plot COHP and COOP for bond 3 and 30. 3. Plotting of DOS ~~~~~~~~~~~~~~~~~~~ -- ``lobsterpy plot-dos --summedspins`` will plot total and element DOS. +- ``lobsterpy plot-dos --summedspins`` will plot total and element DOS. Example output plot is shown below. -4. Additional Options +.. image:: tutorial_assets/DOS_example.png + +4. Plotting of ICOHPs/ ICOOPs/ICOBIS againsts bond lengths +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- ``lobsterpy plot-icohps-distances`` will plot ICOHPs against bond lengths. Example output plot is shown below. + +.. image:: tutorial_assets/ICOHPs_distance_example.png + +5. Additional Options ~~~~~~~~~~~~~~~~~~~~~ You can also customize the style and parameters of the plots generated @@ -286,7 +295,9 @@ either of these commands: lobsterpy automatic-plot-ia --help lobsterpy calc-description -h lobsterpy create-inputs --help - lobsterpy plot-dos --help + lobsterpy description --help + lobsterpy plot-dos --help + lobsterpy plot-icohps-distances --help lobsterpy plot --help diff --git a/docs/source/tutorial/computingtimes.rst b/docs/tutorial/computingtimes.rst similarity index 100% rename from docs/source/tutorial/computingtimes.rst rename to docs/tutorial/computingtimes.rst diff --git a/docs/source/tutorial/index.rst b/docs/tutorial/index.rst similarity index 94% rename from docs/source/tutorial/index.rst rename to docs/tutorial/index.rst index b70904ed..dc98c160 100644 --- a/docs/source/tutorial/index.rst +++ b/docs/tutorial/index.rst @@ -1,7 +1,7 @@ Tutorial ========= -Written by Aakash Naik (aakash.naik@bam.de) based on suggestions provided by Dr. Janine George (janine.george@bam.de) +Written by Aakash Naik (aakash.naik@bam.de) based on suggestions provided by Prof. Dr. Janine George (janine.george@bam.de) .. note:: diff --git a/docs/source/tutorial/tutorial.ipynb b/docs/tutorial/tutorial.ipynb similarity index 91% rename from docs/source/tutorial/tutorial.ipynb rename to docs/tutorial/tutorial.ipynb index e94568ff..72ffc932 100755 --- a/docs/source/tutorial/tutorial.ipynb +++ b/docs/tutorial/tutorial.ipynb @@ -13,11 +13,11 @@ "id": "42969be6", "metadata": {}, "source": [ - "## Using Analysis, Description class and plotting utilities\n", + "## Using Analysis, Description class and automatic plotting\n", "\n", "For this tutorial we will use the [test data](https://github.com/JaGeo/LobsterPy/tests/test_data) available that can be downloaded from our git repository.\n", "\n", - ":innocent: Lets first import the necessary modules" + "Lets first import the necessary modules" ] }, { @@ -52,7 +52,7 @@ "outputs": [], "source": [ "# Directory of your VASP and Lobster computations\n", - "directory = \"/home/anaik/Downloads/LobsterPy/tests/test_data/CdF_comp_range/\"\n", + "directory = \"../../lobsterpy/TestData/CdF_comp_range/\"\n", "\n", "# Initialize Analysis object\n", "analyse = Analysis(\n", @@ -95,7 +95,9 @@ "outputs": [], "source": [ "# Get interactive plots of relevant bonds, \n", + "\n", "# Setting label_resolved arg to True will plot each COHP curve seperately, alongside summed COHP for the bonds.\n", + "\n", "fig = describe.plot_interactive_cohps(label_resolved=True, hide=True)\n", "fig.show(renderer='notebook')" ] @@ -260,7 +262,7 @@ "outputs": [], "source": [ "# Directory to your VASP and Lobster computations\n", - "directory = \"/home/anaik/Downloads/LobsterPy/tests/test_data/K3Sb/\"" + "directory = \"../../lobsterpy/TestData/K3Sb/\"" ] }, { @@ -337,7 +339,7 @@ "source": [ "### Plot COHPs / COBIS / COOPs from Analysis object\n", "\n", - "It is important the `are_cobis`/`are_coops` to `True` in the plotter depending on type of files you analyzed or want to plot." + "It is important the `are_cobis`/`are_coops` args are set to `True` in the plotter depending on type of files you analyzed or want to plot. Here we will keep them false are we are plotting COHPs" ] }, { @@ -348,8 +350,10 @@ "outputs": [], "source": [ "# Using PlainCohpPlotter to get static plots of relevant bonds from Analysis object\n", + "\n", "style.use(get_style_list()[0]) # Use the LobsterPy style sheet for the generated plots\n", - "cohp_plot_static = PlainCohpPlotter(are_cobis=False, are_coops=True)\n", + "\n", + "cohp_plot_static = PlainCohpPlotter(are_cobis=False, are_coops=False)\n", "for plot_label, label_list in analyse.get_site_bond_resolved_labels().items():\n", " cohp = analyse.chemenv.completecohp.get_summed_cohp_by_label_list(label_list=label_list)\n", " cohp_plot_static.add_cohp(plot_label, cohp)\n", @@ -362,7 +366,7 @@ "metadata": {}, "source": [ ":::{note}\n", - "You can get plots from orbital resolved anaylsis only when `orbital_resolved` arg to `True` when initializing Analysis object.\n", + "You can get plots from orbital resolved anaylsis only when `orbital_resolved` arg is set to `True` when initializing Analysis object.\n", ":::" ] }, @@ -374,8 +378,10 @@ "outputs": [], "source": [ "# Using PlainCohpPlotter to get static plots of relevant orbitals COHPs from Analysis object\n", + "\n", "style.use('default') # Complete reset the matplotlib figure style\n", "style.use('seaborn-v0_8-ticks') # use exsiting matplotlib style\n", + "\n", "cohp_plot_static = PlainCohpPlotter()\n", "for plot_label , orb_data in analyse.get_site_orbital_resolved_labels().items():\n", " for orb, label_list in orb_data.items():\n", @@ -433,8 +439,8 @@ "outputs": [], "source": [ "# Load Lobster DOS\n", - "dos = Doscar(doscar='/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/DOSCAR.lobster.gz',\n", - " structure_file='/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/POSCAR.gz')" + "dos = Doscar(doscar='../../lobsterpy/TestData/NaCl_comp_range/DOSCAR.lobster.gz',\n", + " structure_file='../../lobsterpy/TestData/NaCl_comp_range/POSCAR.gz')" ] }, { @@ -456,6 +462,7 @@ "source": [ "style.use('default') # Complete reset the matplotlib figure style\n", "style.use(get_style_list()[0]) # Use the LobsterPy style sheet for the generated plots\n", + "\n", "dos_plotter = PlainDosPlotter(summed=True, stack=False, sigma=None)\n", "dos_plotter.add_dos(dos=dos.completedos, label='Total DOS')\n", "dos_plotter.add_dos_dict(dos_dict=dos.completedos.get_element_dos()) # Add element dos\n", @@ -540,7 +547,7 @@ "outputs": [], "source": [ "summary_features = BatchSummaryFeaturizer(\n", - " path_to_lobster_calcs=\"/home/anaik/Downloads/LobsterPy/tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", + " path_to_lobster_calcs=\"../../lobsterpy/TestData/Featurizer_test_data/Lobster_calcs\",\n", " bonds=\"all\",\n", " include_cobi_data=False,\n", " include_coop_data=False,\n", @@ -579,7 +586,7 @@ "outputs": [], "source": [ "fp_cohp_bonding = BatchCoxxFingerprint(\n", - " path_to_lobster_calcs=\"/home/anaik/Downloads/LobsterPy/tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", + " path_to_lobster_calcs=\"../../lobsterpy/TestData/Featurizer_test_data/Lobster_calcs\",\n", " e_range=[-15, 0], \n", " feature_type=\"bonding\",\n", " normalize=True, # affects the fingerprint similarity matrix computation\n", @@ -645,14 +652,14 @@ "outputs": [], "source": [ "graph_NaCl_all = LobsterGraph(\n", - " path_to_poscar=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/POSCAR.gz\",\n", - " path_to_charge=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/CHARGE.lobster.gz\",\n", - " path_to_cohpcar=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/COHPCAR.lobster.gz\",\n", - " path_to_icohplist=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/ICOHPLIST.lobster.gz\",\n", + " path_to_poscar=\"../../lobsterpy/TestData/NaCl_comp_range/POSCAR.gz\",\n", + " path_to_charge=\"../../lobsterpy/TestData/NaCl_comp_range/CHARGE.lobster.gz\",\n", + " path_to_cohpcar=\"../../lobsterpy/TestData/NaCl_comp_range/COHPCAR.lobster.gz\",\n", + " path_to_icohplist=\"../../lobsterpy/TestData/NaCl_comp_range/ICOHPLIST.lobster.gz\",\n", " add_additional_data_sg=True,\n", - " path_to_icooplist=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/ICOOPLIST.lobster.gz\",\n", - " path_to_icobilist=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/ICOBILIST.lobster.gz\",\n", - " path_to_madelung=\"/home/anaik/Downloads/LobsterPy/tests/test_data/NaCl_comp_range/MadelungEnergies.lobster.gz\",\n", + " path_to_icooplist=\"../../lobsterpy/TestData/NaCl_comp_range/ICOOPLIST.lobster.gz\",\n", + " path_to_icobilist=\"../../lobsterpy/TestData/NaCl_comp_range/ICOBILIST.lobster.gz\",\n", + " path_to_madelung=\"../../lobsterpy/TestData/NaCl_comp_range/MadelungEnergies.lobster.gz\",\n", " which_bonds=\"all\",\n", " start=None,\n", ")" diff --git a/docs/source/tutorial/tutorial_assets/COBI_330.png b/docs/tutorial/tutorial_assets/COBI_330.png similarity index 100% rename from docs/source/tutorial/tutorial_assets/COBI_330.png rename to docs/tutorial/tutorial_assets/COBI_330.png diff --git a/docs/source/tutorial/tutorial_assets/COHP.png b/docs/tutorial/tutorial_assets/COHP.png similarity index 100% rename from docs/source/tutorial/tutorial_assets/COHP.png rename to docs/tutorial/tutorial_assets/COHP.png diff --git a/docs/source/tutorial/tutorial_assets/COHP_330.png b/docs/tutorial/tutorial_assets/COHP_330.png similarity index 100% rename from docs/source/tutorial/tutorial_assets/COHP_330.png rename to docs/tutorial/tutorial_assets/COHP_330.png diff --git a/docs/source/tutorial/tutorial_assets/COOP_330.png b/docs/tutorial/tutorial_assets/COOP_330.png similarity index 100% rename from docs/source/tutorial/tutorial_assets/COOP_330.png rename to docs/tutorial/tutorial_assets/COOP_330.png diff --git a/docs/source/tutorial/tutorial_assets/CdF2.html b/docs/tutorial/tutorial_assets/CdF2.html similarity index 100% rename from docs/source/tutorial/tutorial_assets/CdF2.html rename to docs/tutorial/tutorial_assets/CdF2.html diff --git a/docs/source/tutorial/tutorial_assets/CdF2_orb.html b/docs/tutorial/tutorial_assets/CdF2_orb.html similarity index 100% rename from docs/source/tutorial/tutorial_assets/CdF2_orb.html rename to docs/tutorial/tutorial_assets/CdF2_orb.html diff --git a/docs/tutorial/tutorial_assets/DOS_example.png b/docs/tutorial/tutorial_assets/DOS_example.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f9f5aec7d8a1abf407512a4f02090acde468fc GIT binary patch literal 77222 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�BkZQ}+wya#!Qu0A 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 literal 0 HcmV?d00001 diff --git a/docs/source/tutorial/tutorial_assets/ICOHP.png b/docs/tutorial/tutorial_assets/ICOHP.png similarity index 100% rename from docs/source/tutorial/tutorial_assets/ICOHP.png rename to docs/tutorial/tutorial_assets/ICOHP.png diff --git a/docs/tutorial/tutorial_assets/ICOHPs_distance_example.png b/docs/tutorial/tutorial_assets/ICOHPs_distance_example.png new file mode 100644 index 0000000000000000000000000000000000000000..eac2140c0af1b52f495a42e07b63758f7128c50f GIT binary patch literal 32307 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 Date: Fri, 10 Nov 2023 13:43:02 +0100 Subject: [PATCH 07/49] update conf.py path in documentation workflow and tests --- .github/workflows/docs.yml | 2 +- .github/workflows/python-package.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index e572922c..b1ffa939 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -23,7 +23,7 @@ jobs: pip install .[docs,featurizer] - name: Sphinx build run: | - sphinx-build docs/source _build + sphinx-build docs _build - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 6576e00f..f04406e3 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -99,4 +99,4 @@ jobs: pip install .[docs,featurizer] - name: Build - run: sphinx-build docs/source docs_build + run: sphinx-build docs _build From 834e52af3822ac3f3004cf975025c443b7551711 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 10 Nov 2023 13:54:19 +0100 Subject: [PATCH 08/49] fix linting --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4caeef48..bae22036 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,4 +30,4 @@ When creating a bug report, its best if you include some of the pointers mention - Try to reuse existing test data when possible. - When you're finished, go to your fork and make a Pull Request (PR). It will automatically update if you need to make further changes. -- If you have raised a PR but are actively working on it, please add `[WIP] in the title.(This will let us know it is still not ready for review or merged) \ No newline at end of file +- If you have raised a PR but are actively working on it, please add `[WIP] in the title.(This will let us know it is still not ready for review or merged) From cf587008740d4567ac08e85e59bdff63edfeb325 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 10 Nov 2023 13:54:45 +0100 Subject: [PATCH 09/49] fix example files paths~ --- docs/tutorial/tutorial.ipynb | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) mode change 100755 => 100644 docs/tutorial/tutorial.ipynb diff --git a/docs/tutorial/tutorial.ipynb b/docs/tutorial/tutorial.ipynb old mode 100755 new mode 100644 index 72ffc932..c53f1ab4 --- a/docs/tutorial/tutorial.ipynb +++ b/docs/tutorial/tutorial.ipynb @@ -52,7 +52,7 @@ "outputs": [], "source": [ "# Directory of your VASP and Lobster computations\n", - "directory = \"../../lobsterpy/TestData/CdF_comp_range/\"\n", + "directory = \"../../test/test_data/CdF_comp_range/\"\n", "\n", "# Initialize Analysis object\n", "analyse = Analysis(\n", @@ -262,7 +262,7 @@ "outputs": [], "source": [ "# Directory to your VASP and Lobster computations\n", - "directory = \"../../lobsterpy/TestData/K3Sb/\"" + "directory = \"../../test/test_data/K3Sb/\"" ] }, { @@ -439,8 +439,8 @@ "outputs": [], "source": [ "# Load Lobster DOS\n", - "dos = Doscar(doscar='../../lobsterpy/TestData/NaCl_comp_range/DOSCAR.lobster.gz',\n", - " structure_file='../../lobsterpy/TestData/NaCl_comp_range/POSCAR.gz')" + "dos = Doscar(doscar='../../test/test_data/NaCl_comp_range/DOSCAR.lobster.gz',\n", + " structure_file='../../test/test_data/NaCl_comp_range/POSCAR.gz')" ] }, { @@ -547,7 +547,7 @@ "outputs": [], "source": [ "summary_features = BatchSummaryFeaturizer(\n", - " path_to_lobster_calcs=\"../../lobsterpy/TestData/Featurizer_test_data/Lobster_calcs\",\n", + " path_to_lobster_calcs=\"../../test/test_data/Featurizer_test_data/Lobster_calcs\",\n", " bonds=\"all\",\n", " include_cobi_data=False,\n", " include_coop_data=False,\n", @@ -586,7 +586,7 @@ "outputs": [], "source": [ "fp_cohp_bonding = BatchCoxxFingerprint(\n", - " path_to_lobster_calcs=\"../../lobsterpy/TestData/Featurizer_test_data/Lobster_calcs\",\n", + " path_to_lobster_calcs=\"../../test/test_data/Featurizer_test_data/Lobster_calcs\",\n", " e_range=[-15, 0], \n", " feature_type=\"bonding\",\n", " normalize=True, # affects the fingerprint similarity matrix computation\n", @@ -652,14 +652,14 @@ "outputs": [], "source": [ "graph_NaCl_all = LobsterGraph(\n", - " path_to_poscar=\"../../lobsterpy/TestData/NaCl_comp_range/POSCAR.gz\",\n", - " path_to_charge=\"../../lobsterpy/TestData/NaCl_comp_range/CHARGE.lobster.gz\",\n", - " path_to_cohpcar=\"../../lobsterpy/TestData/NaCl_comp_range/COHPCAR.lobster.gz\",\n", - " path_to_icohplist=\"../../lobsterpy/TestData/NaCl_comp_range/ICOHPLIST.lobster.gz\",\n", + " path_to_poscar=\"../../test/test_data/NaCl_comp_range/POSCAR.gz\",\n", + " path_to_charge=\"../../test/test_data/NaCl_comp_range/CHARGE.lobster.gz\",\n", + " path_to_cohpcar=\"../../test/test_data/NaCl_comp_range/COHPCAR.lobster.gz\",\n", + " path_to_icohplist=\"../../test/test_data/NaCl_comp_range/ICOHPLIST.lobster.gz\",\n", " add_additional_data_sg=True,\n", - " path_to_icooplist=\"../../lobsterpy/TestData/NaCl_comp_range/ICOOPLIST.lobster.gz\",\n", - " path_to_icobilist=\"../../lobsterpy/TestData/NaCl_comp_range/ICOBILIST.lobster.gz\",\n", - " path_to_madelung=\"../../lobsterpy/TestData/NaCl_comp_range/MadelungEnergies.lobster.gz\",\n", + " path_to_icooplist=\"../../test/test_data/NaCl_comp_range/ICOOPLIST.lobster.gz\",\n", + " path_to_icobilist=\"../../test/test_data/NaCl_comp_range/ICOBILIST.lobster.gz\",\n", + " path_to_madelung=\"../../test/test_data/NaCl_comp_range/MadelungEnergies.lobster.gz\",\n", " which_bonds=\"all\",\n", " start=None,\n", ")" From 41cc1da9dac702806491831b0928ae5537bfb38b Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 10 Nov 2023 15:30:35 +0100 Subject: [PATCH 10/49] fix docs cli help issue --- docs/_static/.gitkeep | 0 docs/reference/cli.rst | 11 ++++---- docs/reference/cli_main.rst | 8 ------ docs/reference/cli_subcommands/autoplot.rst | 9 ------- docs/reference/cli_subcommands/autoplotia.rst | 8 ------ docs/reference/cli_subcommands/calcdesc.rst | 8 ------ .../cli_subcommands/createinputs.rst | 2 ++ .../reference/cli_subcommands/description.rst | 2 ++ .../cli_subcommands/descriptionquality.rst | 10 +++++++ docs/reference/cli_subcommands/plot.rst | 2 ++ docs/reference/cli_subcommands/plotauto.rst | 11 ++++++++ docs/reference/cli_subcommands/plotautoia.rst | 10 +++++++ docs/reference/cli_subcommands/plotdos.rst | 2 ++ .../cli_subcommands/ploticohpdistance.rst | 11 ++++++++ docs/reference/cli_subcommands/ploticohps.rst | 9 ------- docs/tutorial/tutorial.ipynb | 26 +++++++++---------- lobsterpy/cli.py | 2 +- 17 files changed, 69 insertions(+), 62 deletions(-) create mode 100644 docs/_static/.gitkeep delete mode 100644 docs/reference/cli_main.rst delete mode 100644 docs/reference/cli_subcommands/autoplot.rst delete mode 100644 docs/reference/cli_subcommands/autoplotia.rst delete mode 100644 docs/reference/cli_subcommands/calcdesc.rst create mode 100644 docs/reference/cli_subcommands/descriptionquality.rst create mode 100644 docs/reference/cli_subcommands/plotauto.rst create mode 100644 docs/reference/cli_subcommands/plotautoia.rst create mode 100644 docs/reference/cli_subcommands/ploticohpdistance.rst delete mode 100644 docs/reference/cli_subcommands/ploticohps.rst diff --git a/docs/_static/.gitkeep b/docs/_static/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/docs/reference/cli.rst b/docs/reference/cli.rst index 746071be..dcb7d8f9 100644 --- a/docs/reference/cli.rst +++ b/docs/reference/cli.rst @@ -4,12 +4,11 @@ CLI Reference .. toctree:: :maxdepth: 1 - cli_main - cli_subcommands/autoplot - cli_subcommands/autoplotia - cli_subcommands/calcdesc - cli_subcommands/description cli_subcommands/createinputs + cli_subcommands/description + cli_subcommands/descriptionquality + cli_subcommands/plotauto + cli_subcommands/plotautoia cli_subcommands/plotdos - cli_subcommands/ploticohps + cli_subcommands/ploticohpdistance cli_subcommands/plot diff --git a/docs/reference/cli_main.rst b/docs/reference/cli_main.rst deleted file mode 100644 index 4ecb0a88..00000000 --- a/docs/reference/cli_main.rst +++ /dev/null @@ -1,8 +0,0 @@ -lobsterpy -========= - -.. argparse:: - :module: lobsterpy.cli - :func: get_parser - :prog: lobsterpy - diff --git a/docs/reference/cli_subcommands/autoplot.rst b/docs/reference/cli_subcommands/autoplot.rst deleted file mode 100644 index aab6e398..00000000 --- a/docs/reference/cli_subcommands/autoplot.rst +++ /dev/null @@ -1,9 +0,0 @@ -automatic-plot -============== - -.. argparse:: - :module: lobsterpy.cli - :func: get_parser - :prog: lobsterpy - :path: automatic-plot - diff --git a/docs/reference/cli_subcommands/autoplotia.rst b/docs/reference/cli_subcommands/autoplotia.rst deleted file mode 100644 index 21fc1d38..00000000 --- a/docs/reference/cli_subcommands/autoplotia.rst +++ /dev/null @@ -1,8 +0,0 @@ -automatic-plot-ia -================== - -.. argparse:: - :module: lobsterpy.cli - :func: get_parser - :prog: lobsterpy - :path: automatic-plot-ia diff --git a/docs/reference/cli_subcommands/calcdesc.rst b/docs/reference/cli_subcommands/calcdesc.rst deleted file mode 100644 index 4c0fb867..00000000 --- a/docs/reference/cli_subcommands/calcdesc.rst +++ /dev/null @@ -1,8 +0,0 @@ -calc-description -================ - -.. argparse:: - :module: lobsterpy.cli - :func: get_parser - :prog: lobsterpy - :path: calc-description diff --git a/docs/reference/cli_subcommands/createinputs.rst b/docs/reference/cli_subcommands/createinputs.rst index a85c9237..56c4da5a 100644 --- a/docs/reference/cli_subcommands/createinputs.rst +++ b/docs/reference/cli_subcommands/createinputs.rst @@ -1,6 +1,8 @@ create-inputs ============== +Create inputs for lobster computation. It works only with PBE POTCARs. + .. argparse:: :module: lobsterpy.cli :func: get_parser diff --git a/docs/reference/cli_subcommands/description.rst b/docs/reference/cli_subcommands/description.rst index 9cd87a2d..e401d213 100644 --- a/docs/reference/cli_subcommands/description.rst +++ b/docs/reference/cli_subcommands/description.rst @@ -1,6 +1,8 @@ description ============ +Deliver a text description of the COHPs or COBIS or COOP results from Lobster and VASP + .. argparse:: :module: lobsterpy.cli :func: get_parser diff --git a/docs/reference/cli_subcommands/descriptionquality.rst b/docs/reference/cli_subcommands/descriptionquality.rst new file mode 100644 index 00000000..ef0308ed --- /dev/null +++ b/docs/reference/cli_subcommands/descriptionquality.rst @@ -0,0 +1,10 @@ +description-quality +=================== + +Deliver a text description of the LOBSTER calc quality analysis. Mandatory required files: POSCAR, POTCAR, lobsterout, lobsterin. Optional files (BVA comparison): CHARGE.lobster, (DOS comparison): DOSCAR.lobster/ DOSCAR.LSO.lobster, Vasprun.xml. + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: description-quality diff --git a/docs/reference/cli_subcommands/plot.rst b/docs/reference/cli_subcommands/plot.rst index 4c95adfe..3d91f0b0 100644 --- a/docs/reference/cli_subcommands/plot.rst +++ b/docs/reference/cli_subcommands/plot.rst @@ -1,6 +1,8 @@ plot ==== +Plot specific COHPs/COBIs/COOPs based on bond numbers. + .. argparse:: :module: lobsterpy.cli :func: get_parser diff --git a/docs/reference/cli_subcommands/plotauto.rst b/docs/reference/cli_subcommands/plotauto.rst new file mode 100644 index 00000000..933456b8 --- /dev/null +++ b/docs/reference/cli_subcommands/plotauto.rst @@ -0,0 +1,11 @@ +plot-automatic +============== + +Plot most important COHPs or COBIs or COOPs automatically. This option also includes an automatic description. + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: plot-automatic + diff --git a/docs/reference/cli_subcommands/plotautoia.rst b/docs/reference/cli_subcommands/plotautoia.rst new file mode 100644 index 00000000..891d481a --- /dev/null +++ b/docs/reference/cli_subcommands/plotautoia.rst @@ -0,0 +1,10 @@ +plot-automatic-ia +================== + +Creates an interactive plot of most important COHPs or COBIs or COOPs automatically. + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: plot-automatic-ia diff --git a/docs/reference/cli_subcommands/plotdos.rst b/docs/reference/cli_subcommands/plotdos.rst index da98917f..5a1ee12e 100644 --- a/docs/reference/cli_subcommands/plotdos.rst +++ b/docs/reference/cli_subcommands/plotdos.rst @@ -1,6 +1,8 @@ plot-dos ========= +Plots DOS from lobster computation. + .. argparse:: :module: lobsterpy.cli :func: get_parser diff --git a/docs/reference/cli_subcommands/ploticohpdistance.rst b/docs/reference/cli_subcommands/ploticohpdistance.rst new file mode 100644 index 00000000..f412fb31 --- /dev/null +++ b/docs/reference/cli_subcommands/ploticohpdistance.rst @@ -0,0 +1,11 @@ +plot-icohp-distance +==================== + +Plot ICOHPs or ICOOPs or ICOBIs with respect to bond lengths + +.. argparse:: + :module: lobsterpy.cli + :func: get_parser + :prog: lobsterpy + :path: plot-icohp-distance + diff --git a/docs/reference/cli_subcommands/ploticohps.rst b/docs/reference/cli_subcommands/ploticohps.rst deleted file mode 100644 index e74ae79a..00000000 --- a/docs/reference/cli_subcommands/ploticohps.rst +++ /dev/null @@ -1,9 +0,0 @@ -plot-icohps-distances -====================== - -.. argparse:: - :module: lobsterpy.cli - :func: get_parser - :prog: lobsterpy - :path: plot-icohps-distances - diff --git a/docs/tutorial/tutorial.ipynb b/docs/tutorial/tutorial.ipynb index c53f1ab4..3fd30b1c 100644 --- a/docs/tutorial/tutorial.ipynb +++ b/docs/tutorial/tutorial.ipynb @@ -52,7 +52,7 @@ "outputs": [], "source": [ "# Directory of your VASP and Lobster computations\n", - "directory = \"../../test/test_data/CdF_comp_range/\"\n", + "directory = \"../../tests/test_data/CdF_comp_range/\"\n", "\n", "# Initialize Analysis object\n", "analyse = Analysis(\n", @@ -262,7 +262,7 @@ "outputs": [], "source": [ "# Directory to your VASP and Lobster computations\n", - "directory = \"../../test/test_data/K3Sb/\"" + "directory = \"../../tests/test_data/K3Sb/\"" ] }, { @@ -439,8 +439,8 @@ "outputs": [], "source": [ "# Load Lobster DOS\n", - "dos = Doscar(doscar='../../test/test_data/NaCl_comp_range/DOSCAR.lobster.gz',\n", - " structure_file='../../test/test_data/NaCl_comp_range/POSCAR.gz')" + "dos = Doscar(doscar='../../tests/test_data/NaCl_comp_range/DOSCAR.lobster.gz',\n", + " structure_file='../../tests/test_data/NaCl_comp_range/POSCAR.gz')" ] }, { @@ -547,7 +547,7 @@ "outputs": [], "source": [ "summary_features = BatchSummaryFeaturizer(\n", - " path_to_lobster_calcs=\"../../test/test_data/Featurizer_test_data/Lobster_calcs\",\n", + " path_to_lobster_calcs=\"../../tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", " bonds=\"all\",\n", " include_cobi_data=False,\n", " include_coop_data=False,\n", @@ -586,7 +586,7 @@ "outputs": [], "source": [ "fp_cohp_bonding = BatchCoxxFingerprint(\n", - " path_to_lobster_calcs=\"../../test/test_data/Featurizer_test_data/Lobster_calcs\",\n", + " path_to_lobster_calcs=\"../../tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", " e_range=[-15, 0], \n", " feature_type=\"bonding\",\n", " normalize=True, # affects the fingerprint similarity matrix computation\n", @@ -652,14 +652,14 @@ "outputs": [], "source": [ "graph_NaCl_all = LobsterGraph(\n", - " path_to_poscar=\"../../test/test_data/NaCl_comp_range/POSCAR.gz\",\n", - " path_to_charge=\"../../test/test_data/NaCl_comp_range/CHARGE.lobster.gz\",\n", - " path_to_cohpcar=\"../../test/test_data/NaCl_comp_range/COHPCAR.lobster.gz\",\n", - " path_to_icohplist=\"../../test/test_data/NaCl_comp_range/ICOHPLIST.lobster.gz\",\n", + " path_to_poscar=\"../../tests/test_data/NaCl_comp_range/POSCAR.gz\",\n", + " path_to_charge=\"../../tests/test_data/NaCl_comp_range/CHARGE.lobster.gz\",\n", + " path_to_cohpcar=\"../../tests/test_data/NaCl_comp_range/COHPCAR.lobster.gz\",\n", + " path_to_icohplist=\"../../tests/test_data/NaCl_comp_range/ICOHPLIST.lobster.gz\",\n", " add_additional_data_sg=True,\n", - " path_to_icooplist=\"../../test/test_data/NaCl_comp_range/ICOOPLIST.lobster.gz\",\n", - " path_to_icobilist=\"../../test/test_data/NaCl_comp_range/ICOBILIST.lobster.gz\",\n", - " path_to_madelung=\"../../test/test_data/NaCl_comp_range/MadelungEnergies.lobster.gz\",\n", + " path_to_icooplist=\"../../tests/test_data/NaCl_comp_range/ICOOPLIST.lobster.gz\",\n", + " path_to_icobilist=\"../../tests/test_data/NaCl_comp_range/ICOBILIST.lobster.gz\",\n", + " path_to_madelung=\"../../tests/test_data/NaCl_comp_range/MadelungEnergies.lobster.gz\",\n", " which_bonds=\"all\",\n", " start=None,\n", ")" diff --git a/lobsterpy/cli.py b/lobsterpy/cli.py index adf87cb3..7b537d87 100644 --- a/lobsterpy/cli.py +++ b/lobsterpy/cli.py @@ -128,7 +128,7 @@ def get_parser() -> argparse.ArgumentParser: # Input args for specifically needed for calculation quality description calc_quality_description_file_group = ( - calc_quality_description_file_parent.add_argument_group() + calc_quality_description_file_parent.add_argument_group("") ) calc_quality_description_file_group.add_argument( "-fvasprun", From 1a3adcf8c19b846f306d9083f1c1e9ccc86d5383 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 10 Nov 2023 15:43:37 +0100 Subject: [PATCH 11/49] increase nb execution timeout limt --- docs/conf.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/conf.py b/docs/conf.py index c96bdd0e..64fb51fc 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -71,6 +71,8 @@ "html_image", ] +nb_execution_timeout = 500 + # use type hints autodoc_typehints = "description" From 20ecee8e1e006f1929aafc7b610359358c57b89d Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 10 Nov 2023 19:21:41 +0100 Subject: [PATCH 12/49] fix non-consecutive heading sizes --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4e411762..bc1d64a0 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,10 @@ Please note that LobsterPy relies on the LOBSTER computation output files. Thus, ## Installation -#### Standard installation +### Standard installation Install using ``pip install lobsterpy`` -#### Installation with featurizer +### Installation with featurizer Install using ``pip install lobsterpy[featurizer]`` From 170b04ab5eb6d1d24ba179a3f86c0ff6afbaa7f2 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 10 Nov 2023 19:22:06 +0100 Subject: [PATCH 13/49] add autosummary templates --- docs/_templates/autosummary/base.rst | 5 +++ docs/_templates/autosummary/class.rst | 7 ++++ docs/_templates/autosummary/function.rst | 5 +++ docs/_templates/autosummary/module.rst | 53 ++++++++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 docs/_templates/autosummary/base.rst create mode 100644 docs/_templates/autosummary/class.rst create mode 100644 docs/_templates/autosummary/function.rst create mode 100644 docs/_templates/autosummary/module.rst diff --git a/docs/_templates/autosummary/base.rst b/docs/_templates/autosummary/base.rst new file mode 100644 index 00000000..5536fa10 --- /dev/null +++ b/docs/_templates/autosummary/base.rst @@ -0,0 +1,5 @@ +{{ name | escape | underline}} + +.. currentmodule:: {{ module }} + +.. auto{{ objtype }}:: {{ objname }} diff --git a/docs/_templates/autosummary/class.rst b/docs/_templates/autosummary/class.rst new file mode 100644 index 00000000..df3dbb3a --- /dev/null +++ b/docs/_templates/autosummary/class.rst @@ -0,0 +1,7 @@ +{{ name | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :show-inheritance: + :members: diff --git a/docs/_templates/autosummary/function.rst b/docs/_templates/autosummary/function.rst new file mode 100644 index 00000000..5ffed09e --- /dev/null +++ b/docs/_templates/autosummary/function.rst @@ -0,0 +1,5 @@ +{{ name | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autofunction:: {{ objname }} diff --git a/docs/_templates/autosummary/module.rst b/docs/_templates/autosummary/module.rst new file mode 100644 index 00000000..3535c8de --- /dev/null +++ b/docs/_templates/autosummary/module.rst @@ -0,0 +1,53 @@ +{% extends "!autosummary/module.rst" %} + +{# This file is almost the same as the default, but adds :toctree: and :nosignatures: to + the autosummary directives. The original can be found at + ``sphinx/ext/autosummary/templates/autosummary/module.rst``. #} + +{% block attributes %} +{% if attributes %} + .. rubric:: Module Attributes + + .. autosummary:: + :toctree: + :nosignatures: + {% for item in attributes %} + {{ item }} + {%- endfor %} +{% endif %} +{% endblock %} + +{% block functions %} +{% if functions %} + .. rubric:: Functions + + .. autosummary:: + :toctree: + :nosignatures: + {% for item in functions %} + {{ item }} + {%- endfor %} +{% endif %} +{% endblock %} + +{% block classes %} + +{% set types = [] %} +{% for item in members %} + {% if not item.startswith('_') and not (item in functions or item in attributes or item in exceptions) %} + {% set _ = types.append(item) %} + {% endif %} +{%- endfor %} + +{% if types %} + .. rubric:: Classes + + .. autosummary:: + :toctree: + :nosignatures: + {% for item in types %} + {{ item }} + {%- endfor %} + +{% endif %} +{% endblock %} From 1e5549bdc9200de64bb0316d2fb76ac482b6e610 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 10 Nov 2023 19:27:56 +0100 Subject: [PATCH 14/49] make doc build test stringent --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index f04406e3..cdb99064 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -99,4 +99,4 @@ jobs: pip install .[docs,featurizer] - name: Build - run: sphinx-build docs _build + run: sphinx-build -W docs _build From 14f728dfb62403e2add78719274b681de8594054 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 10 Nov 2023 19:29:24 +0100 Subject: [PATCH 15/49] fix multiline docstrings rendering in doc issue sg, plotting module --- lobsterpy/plotting/__init__.py | 181 ++++++++++++++--------------- lobsterpy/plotting/layout_dicts.py | 87 +++++++++++--- lobsterpy/structuregraph/graph.py | 48 ++++---- 3 files changed, 179 insertions(+), 137 deletions(-) diff --git a/lobsterpy/plotting/__init__.py b/lobsterpy/plotting/__init__.py index 82c300e4..d09657bb 100644 --- a/lobsterpy/plotting/__init__.py +++ b/lobsterpy/plotting/__init__.py @@ -32,15 +32,16 @@ def get_style_list( styles: list[str | dict[str, Any]] | None = None, **kwargs, ) -> list[str | dict[str, Any]]: - """Get *args for matplotlib.style from user input. + """ + Get args for matplotlib.style from user input. + + Remaining kwargs are collected as a dict and take the highest priority. - Args: - no_base_style: If true, do not include lobsterpy_base.mplstyle - styles: User-requested styles. These can be paths to mplstyle files, + :param no_base_style: If true, do not include lobsterpy_base.mplstyle + :param styles: User-requested styles. These can be paths to mplstyle files, the names of known (matplotlib-supplied) styles, or dicts of rcParam options. - **kwargs: matplotlib-style sheet keyword arguments + :param kwargs: matplotlib-style sheet keyword arguments - Remaining kwargs are collected as a dict and take the highest priority. """ base = [] if no_base_style else [base_style] if styles is None: @@ -70,20 +71,19 @@ def get_plot( """ Get a matplotlib plot showing the COHP. - Args: - ax: Existing Matplotlib Axes object to plot to. - xlim: Specifies the x-axis limits. Defaults to None for + :param ax: Existing Matplotlib Axes object to plot to. + :param xlim: Specifies the x-axis limits. Defaults to None for automatic determination. - ylim: Specifies the y-axis limits. Defaults to None for + :param ylim: Specifies the y-axis limits. Defaults to None for automatic determination. - plot_negative: It is common to plot -COHP(E) so that the + :param plot_negative: It is common to plot -COHP(E) so that the sign means the same for COOPs and COHPs. Defaults to None for automatic determination: If are_coops is True, this will be set to False, else it will be set to True. - integrated: Switch to plot ICOHPs. Defaults to False. - invert_axes: Put the energies onto the y-axis, which is + :param integrated: Switch to plot ICOHPs. Defaults to False. + :param invert_axes: Put the energies onto the y-axis, which is common in chemistry. - sigma: Standard deviation of Gaussian broadening applied to + :param sigma: Standard deviation of Gaussian broadening applied to population data. If this is unset (None) no broadening will be added. @@ -199,17 +199,17 @@ def get_plot( @staticmethod def _broaden(energies: np.ndarray, population: np.ndarray, sigma=None, cutoff=4.0): - """Broaden the spectrum with a given standard deviation. + """ + Broaden the spectrum with a given standard deviation. The population is convolved with a normalised Gaussian kernel. This requires the energy grid to be regularly-spaced. - Args: - energies: Regularly-spaced energy series - population: Population data for broadening - sigma: Standard deviation for Gaussian broadening. If sigma is None + :param energies: Regularly-spaced energy series + :param population: Population data for broadening + :param sigma: Standard deviation for Gaussian broadening. If sigma is None then the input data is returned without any processing. - cutoff: Range cutoff for broadening kernel, as a multiple of sigma. + :param cutoff: Range cutoff for broadening kernel, as a multiple of sigma. Return: Broadened population @@ -251,14 +251,12 @@ def __init__( """ Generate COHP or COOP or COBI plots. - Args: - zero_at_efermi (bool): Whether to shift all Dos to have zero energy at the + :param zero_at_efermi: Whether to shift all Dos to have zero energy at the fermi energy. Defaults to True. - stack (bool): Whether to plot the DOS as a stacked area graph - sigma (float): Specify a standard deviation for Gaussian smearing - the DOS for nicer looking plots. Defaults to None for no - smearing. - summed (bool): Whether to plot the summed DOS + :param stack: Whether to plot the DOS as a stacked area graph + :param sigma: Specify a standard deviation for Gaussian smearing + the DOS for nicer looking plots. Defaults to None for no smearing. + :param summed: Whether to plot the summed DOS """ self.zero_at_efermi = zero_at_efermi @@ -269,11 +267,12 @@ def __init__( self.summed = summed def add_dos(self, label: str, dos: LobsterCompleteDos) -> None: - """Add a dos for plotting. + """ + Add a dos for plotting. + + :param label: label for the DOS. Must be unique. + :param dos: LobsterCompleteDos object - Args: - label: label for the DOS. Must be unique. - dos: LobsterCompleteDos object """ if dos.norm_vol is None: self._norm_val = False @@ -304,12 +303,13 @@ def add_dos(self, label: str, dos: LobsterCompleteDos) -> None: } def add_site_orbital_dos(self, dos: LobsterCompleteDos, orbital, site_index): - """Add orbital dos at particular site. + """ + Add orbital dos at particular site. + + :param dos: LobsterCompleteDos object + :param orbital: Orbitals name at the site. Must be unique. + :param site_index: site index in the structure - Args: - dos: LobsterCompleteDos object - orbital: Orbitals name at the site. Must be unique. - site_index: site index in the structure """ if dos.norm_vol is None: self._norm_val = False @@ -399,18 +399,16 @@ def get_plot( """ Get a matplotlib plot showing the COHP. - Args: - ax: Existing Matplotlib Axes object to plot to. - xlim: Specifies the x-axis limits. Defaults to None for + :param ax: Existing Matplotlib Axes object to plot to. + :param xlim: Specifies the x-axis limits. Defaults to None for automatic determination. - ylim: Specifies the y-axis limits. Defaults to None for + :param ylim: Specifies the y-axis limits. Defaults to None for automatic determination. - invert_axes: Put the energies onto the y-axis, which is + :param invert_axes: Put the energies onto the y-axis, which is common in chemistry. - beta_dashed: Plots the beta spin channel with a dashed line. Defaults to False - sigma: Standard deviation of Gaussian broadening applied to - population data. If this is unset (None) no broadening will be - added. + :param beta_dashed: Plots the beta spin channel with a dashed line. Defaults to False + :param sigma: Standard deviation of Gaussian broadening applied to population data. + If this is unset (None) no broadening will be added. Returns: A matplotlib object. @@ -551,9 +549,9 @@ def add_cohp(self, label, cohp): """ Add COHP object to the plotter. - Args: - label: Label for the COHP. Must be unique. - cohp: COHP object. + :param label: Label for the COHP. Must be unique. + :param cohp: COHP object. + """ if "All" not in self._cohps: self._cohps["All"] = {} @@ -587,13 +585,13 @@ def add_all_relevant_cohps( """ Add all relevant COHPs from lobsterpy analyse object. - Args: - analyse: Analyse object from lobsterpy. - suffix: Optional addition to LOBSTER label to avoid key conflicts when plotting multiple + :param analyse: Analyse object from lobsterpy. + :param suffix: Optional addition to LOBSTER label to avoid key conflicts when plotting multiple calcs or just for additional legend information. - label_resolved: bool indicating to obtain label resolved interactive plots for relevant bonds. + :param label_resolved: bool indicating to obtain label resolved interactive plots for relevant bonds. If false, will return summed cohp curves of unique relevant bonds. - orbital_resolved: bool indicating to include orbital resolved interactive cohps for relevant bonds. + :param orbital_resolved: bool indicating to include orbital resolved interactive cohps for relevant bonds. + """ complete_cohp = analyse.chemenv.completecohp @@ -801,11 +799,11 @@ def add_cohps_by_lobster_label( """ Add COHPs explicitly specified in label list. - Args: - analyse: Analyse object from lobsterpy. - label_list: List of COHP labels as from LOBSTER. - suffix: Optional addition to LOBSTER label to avoid key + :param analyse: Analyse object from lobsterpy. + :param label_list: List of COHP labels as from LOBSTER. + :param suffix: Optional addition to LOBSTER label to avoid key conflicts when plotting multiple calcs or just for additional legend information. + """ complete_cohp = analyse.chemenv.completecohp @@ -836,10 +834,10 @@ def add_cohps_from_plot_data(self, plot_data_dict: dict, suffix: str = ""): """ Add all relevant COHPs for specified bond type from lobster lightweight json.gz file. - Args: - plot_data_dict: Lobsterpy plot data dict - suffix: Optional addition to LOBSTER label to avoid key + :param plot_data_dict: Lobsterpy plot data dict + :param suffix: Optional addition to LOBSTER label to avoid key conflicts when plotting multiple calcs or just for additional legend information. + """ # convert to cohp objects plot_data_dict = plot_data_dict.copy() @@ -888,23 +886,22 @@ def get_plot( """ Get an interactive plotly figure showing the COHPs. - Args: - xlim: Specifies the x-axis limits. Defaults to None for + :param xlim: Specifies the x-axis limits. Defaults to None for automatic determination. - rangeslider: Adds a plotly.graph_objs.layout.xaxis.Rangeslider + :param rangeslider: Adds a plotly.graph_objs.layout.xaxis.Rangeslider object to figure to allow easy manipulation of x-axis.. - ylim: Specifies the y-axis limits. Defaults to None for + :param ylim: Specifies the y-axis limits. Defaults to None for automatic determination. - plot_negative: It is common to plot -COHP(E) so that the + :param plot_negative: It is common to plot -COHP(E) so that the sign means the same for COOPs and COHPs. Defaults to None - for automatic determination: If are_coops is True, this + for automatic determination - If are_coops is True, this will be set to False, else it will be set to True. - integrated: Switch to plot ICOHPs. Defaults to False. - invert_axes: Put the energies onto the y-axis, which is + :param integrated: Switch to plot ICOHPs. Defaults to False. + :param invert_axes: Put the energies onto the y-axis, which is common in chemistry. - sigma: Standard deviation of Gaussian broadening applied to + :param sigma: Standard deviation of Gaussian broadening applied to population data. If this is unset (None) no broadening will be added. - colors: list of hex color codes to be used in plot + :param colors: list of hex color codes to be used in plot Returns: A plotly.graph_objects.Figure object. @@ -1060,10 +1057,9 @@ def _insert_number_of_bonds_in_label( For example : for input label 'Ba1: Ba-Ti', character ':', number_of_bonds: 3, Will return 'Ba1: 3 x Ba-Ti' - Args: - label: bond label to which number of bonds needs to be inserted - character: string character where number of bonds needs to be inserted - number_of_bonds: number of bonds corresponding to the label + :param label: bond label to which number of bonds needs to be inserted + :param character: string character where number of bonds needs to be inserted + :param number_of_bonds: number of bonds corresponding to the label Returns: bond label with number of bonds inserted @@ -1087,13 +1083,12 @@ def _get_plot_label_for_label_resolved( Will return '21: Cl2(3s)-Na1(3s) (2.85 Å)' If label and orbital resolved True Will return 'Cl(3s)-Na(3s) (2.85 Å)' if orbital_resolved is True and label_resolved is False - Args: - structure: pymatgen structure object - label_list: bond label to which number of bonds needs to be inserted - complete_cohp: complete cohp object - orb_list: relevant orbital - label_resolved: specifies type of label to be returned is for label_resolved case - orbital_resolved: specifies type of label to be returned is for orbital_resolved case + :param structure: pymatgen structure object + :param label_list: bond label to which number of bonds needs to be inserted + :param complete_cohp: complete cohp object + :param orb_list: relevant orbital + :param label_resolved: specifies type of label to be returned is for label_resolved case + :param orbital_resolved: specifies type of label to be returned is for orbital_resolved case Returns: plot label string @@ -1144,11 +1139,11 @@ def __init__(self, are_coops: bool = False, are_cobis: bool = False): """ Plot ICOHPs or ICOBI or ICOOP vs bond lengths. - Args: - are_coops: Switch to indicate that these are ICOOPs, not ICOHPs. + :param are_coops: Switch to indicate that these are ICOOPs, not ICOHPs. Defaults to False for ICOHPs. - are_cobis: Switch to indicate that these are ICOBIs, not ICOHPs/COOPs. + :param are_cobis: Switch to indicate that these are ICOBIs, not ICOHPs/COOPs. Defaults to False for ICOHPs. + """ self.are_coops = are_coops self.are_cobis = are_cobis @@ -1158,9 +1153,8 @@ def add_icohps(self, label, icohpcollection: IcohpCollection): """ Add ICOHPs or ICOBIs or ICOOPS for plotting. - Args: - label: Label for the ICOHPs. Must be unique. - icohpcollection: IcohpCollection object. + :param label: Label for the ICOHPs. Must be unique. + :param icohpcollection: IcohpCollection object. """ icohps = [] @@ -1197,15 +1191,14 @@ def get_plot( """ Get a matplotlib plot showing the COHP or COBI or COOP with respect to bond lengths. - Args: - ax: Existing Matplotlib Axes object to plot to. - marker_size: sets the size of markers in scatter plots - marker_style: sets type of marker used in plot - xlim: Specifies the x-axis limits. Defaults to None for + :param ax: Existing Matplotlib Axes object to plot to. + :param marker_size: sets the size of markers in scatter plots + :param marker_style: sets type of marker used in plot + :param xlim: Specifies the x-axis limits. Defaults to None for automatic determination. - ylim: Specifies the y-axis limits. Defaults to None for + :param ylim: Specifies the y-axis limits. Defaults to None for automatic determination. - plot_negative: Will plot -1*ICOHPs. Works only for ICOHPs + :param plot_negative: Will plot -1*ICOHPs. Works only for ICOHPs Returns: A matplotlib object. diff --git a/lobsterpy/plotting/layout_dicts.py b/lobsterpy/plotting/layout_dicts.py index e986f4bd..0315a82b 100644 --- a/lobsterpy/plotting/layout_dicts.py +++ b/lobsterpy/plotting/layout_dicts.py @@ -5,29 +5,36 @@ https://github.com/materialsproject/crystaltoolkit/blob/main/crystal_toolkit/components/bandstructure.py Contains dicts for - - general figure layout - - axes ((I)COHP / energy) - - traces (Spin.up / Spin.down) - - legend -""" + 1. general figure layout + 2. axes ((I)COHP / energy) + 3. traces (Spin.up / Spin.down) + 4. legend +""" layout_dict = { "titlefont": {"size": 18}, "showlegend": True, "title_x": 0.1, "title_y": 0.9, - # height=500, - # width=1000, "hovermode": "closest", "paper_bgcolor": "rgba(0,0,0,0)", "plot_bgcolor": "rgba(0,0,0,0)", - # margin=dict(l=60, b=50, t=50, pad=0, r=30), } +""" + General layout of Plotly figure. + :param dict titlefont: Line style dictionary. + :param bool showlegend: Legend hide or show. + :param float title_x: x axis title size. + :param float title_y: y axis title size. + :param str hovermode: hover behaviour. + :param str paper_bgcolor: background color. + :param str plot_bgcolor: plot background color. +""" cohp_axis_style_dict = { - "titlefont": {"size": 20}, # dict(size=20), - "tickfont": {"size": 16}, # dict(size=16), + "titlefont": {"size": 20}, + "tickfont": {"size": 16}, "ticks": "inside", "tickwidth": 2, "showgrid": False, @@ -37,13 +44,27 @@ "zerolinewidth": 3, "mirror": True, "linewidth": 2, - # "linecolor": "rgb(71,71,71)", # maybe replace "linecolor": "black", } +""" + COXX axis style. + :param dict titlefont: axis title font style. + :param dict tickfont: axis tick font style. + :param str ticks: ticks style. + :param float tickwidth: width of ticks. + :param bool showgrid: show or hide axis grid. + :param bool showline: show or hide axis. + :param bool zeroline: show or hide zero line. + :param str zerolinecolor: color of zero line. + :param float zerolinewidth: width of zero line. + :param bool mirror: mirror axis. + :param float linewidth: width of axis line. + :param str linecolor: color of axis line. +""" energy_axis_style_dict = { - "titlefont": {"size": 20}, # dict(size=20), - "tickfont": {"size": 16}, # dict(size=16), + "titlefont": {"size": 20}, + "tickfont": {"size": 16}, "ticks": "inside", "tickwidth": 2, "showgrid": False, @@ -53,24 +74,58 @@ "zerolinewidth": 3, "mirror": True, "linewidth": 2, - # linecolor="rgb(71,71,71)" # maybe replace "linecolor": "black", } +""" + Energy axis style. + :param dict titlefont: axis title font style. + :param dict tickfont: axis tick font style. + :param str ticks: ticks style. + :param float tickwidth: width of ticks. + :param bool showgrid: show or hide axis grid. + :param bool showline: show or hide axis. + :param bool zeroline: show or hide zero line. + :param str zerolinecolor: color of zero line. + :param float zerolinewidth: width of zero line. + :param bool mirror: mirror axis. + :param float linewidth: width of axis line. + :param str linecolor: color of axis line. +""" spin_up_trace_style_dict = { "line": {"width": 3}, "mode": "lines", - "visible": "legendonly", # dict(width=3), + "visible": "legendonly", } +""" + Line style for Spin.up traces. + + :param dict line: Line style dictionary. + :param str mode: Plotly mode. + :param str visible: Trace visibility. +""" spin_down_trace_style_dict = { - "line": {"width": 3, "dash": "dash"}, # dict(width=3, dash="dash"), + "line": {"width": 3, "dash": "dash"}, "mode": "lines", "visible": "legendonly", } +""" + Line style for Spin.down traces. + :param dict line: Line style dictionary. + :param str mode: Plotly mode. + :param str visible: Trace visibility. +""" legend_style_dict = { "bordercolor": "black", "borderwidth": 2, "traceorder": "normal", } +""" + Legend style. + + :param str bordercolor: border color of legend. + :param int borderwidth: width of border. + :param str traceorder: order of trace. +""" diff --git a/lobsterpy/structuregraph/graph.py b/lobsterpy/structuregraph/graph.py index c4cc2a39..b04b2d8f 100644 --- a/lobsterpy/structuregraph/graph.py +++ b/lobsterpy/structuregraph/graph.py @@ -21,8 +21,27 @@ class LobsterGraph: """ Class to generate structure graph objects with bonding data from Lobster. + Mode of automatic bonding analysis can be `cation-anion` or `all` bonds. The strongest bond is + determined based on the ICOHPs. The coordination environments are determined based on + `cutoff_icohp * ICOHPs` values. If the path of ICOBILIST (ICOOPLIST) is provided, the ICOBI (ICOOP) + values corresponding to relevant bond labels obtained from the ICOHPLIST are also added as edge properties + to the structure graph objects. The Mulliken and Loewdin charges are added as node properties to + the structure graph objects. + Attributes: - sg: return structure_graph object + - sg: return structure_graph object + - path_to_poscar: path to POSCAR (e.g., "POSCAR") + - path_to_charge: path to CHARGE.lobster (e.g., "CHARGE.lobster") + - path_to_cohpcar: path to COHPCAR.lobster (e.g., "COHPCAR.lobster") + - path_to_icohplist: path to ICOHPLIST.lobster (e.g., "ICOHPLIST.lobster") + - path_to_icooplist: path to ICOOPLIST.lobster (e.g., "ICOOPLIST.lobster") + - path_to_icobilist: path to ICOBILIST.lobster (e.g., "ICOBILIST.lobster") + - path_to_madelung: path to MadelungEnergies.lobster (e.g., "MadelungEnergies.lobster") + - cutoff_icohp : only bonds that are stronger than cutoff_icohp*strongest ICOHP will be considered + - add_additional_data_sg: if True will add the information from ICOOPLIST.lobster + and ICOBILIST.lobster based on ICOHPLIST.lobster relevant bond + - which_bonds: selects which kind of bonds are analyzed. "all" is the default + - start: start energy for bonding antibonding percent integration """ def __init__( @@ -39,32 +58,7 @@ def __init__( cutoff_icohp: float = 0.10, start: float | None = None, ): - """ - Return a structure graph objects with bonding information from Lobster data. - - Mode of automatic bonding analysis can be “cation-anion” or “all” bonds. The strongest bond is - determined based on the ICOHPs. The coordination environments are determined based on - cutoff_icohp *ICOHPs values. If the path of ICOBILIST (ICOOPLIST) is provided, the ICOBI (ICOOP) - values corresponding to relevant bond labels obtained from the ICOHPLIST are also added as edge properties - to the structure graph objects. The Mulliken and Loewdin charges are added as node properties to - the structure graph objects. - - - Args: - path_to_poscar: path to POSCAR (e.g., "POSCAR") - path_to_charge: path to CHARGE.lobster (e.g., "CHARGE.lobster") - path_to_cohpcar: path to COHPCAR.lobster (e.g., "COHPCAR.lobster") - path_to_icohplist: path to ICOHPLIST.lobster (e.g., "ICOHPLIST.lobster") - path_to_icooplist: path to ICOOPLIST.lobster (e.g., "ICOOPLIST.lobster") - path_to_icobilist: path to ICOBILIST.lobster (e.g., "ICOBILIST.lobster") - path_to_madelung: path to MadelungEnergies.lobster (e.g., "MadelungEnergies.lobster") - cutoff_icohp : only bonds that are stronger than cutoff_icohp*strongest ICOHP will be considered - add_additional_data_sg: (bool) if True will add the information from ICOOPLIST.lobster - and ICOBILIST.lobster based on ICOHPLIST.lobster relevant bond - which_bonds: selects which kind of bonds are analyzed. "all" is the default - start: start energy for bonding antibonding percent integration - - """ + """Initialize and return a structure graph object.""" if add_additional_data_sg: self.add_additional_data_sg = add_additional_data_sg if path_to_icooplist is not None and path_to_icobilist is not None: From 065eb44accc97c4b4a12abf9aa4376331a140154 Mon Sep 17 00:00:00 2001 From: anaik Date: Thu, 23 Nov 2023 12:53:10 +0100 Subject: [PATCH 16/49] remove duplicate docstring for doscar featurizer --- lobsterpy/featurize/batch.py | 12 +++++------- lobsterpy/featurize/core.py | 3 --- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/lobsterpy/featurize/batch.py b/lobsterpy/featurize/batch.py index 8e1a4daf..931628d9 100644 --- a/lobsterpy/featurize/batch.py +++ b/lobsterpy/featurize/batch.py @@ -872,9 +872,6 @@ class BatchDosFeaturizer: fingerprint_type: Specify fingerprint type to compute, can accept `{s/p/d/f/}summed_{pdos/tdos}` (default is summed_pdos) - Methods: - get_df: A pandas dataframe with DOS moment features as columns - get_fingerprints_df: A pandas dataframe with DOS fingerprint object as columns """ def __init__( @@ -966,7 +963,7 @@ def _get_dos_fingerprints_df(self, path_to_lobster_calc) -> pd.DataFrame: Featurize DOSCAR.lobster data into fingerprints using FeaturizeDOSCAR. Returns: - A pandas dataframe with DOS finerprint objects + A pandas dataframe with DOS fingerprint objects """ dir_name = Path(path_to_lobster_calc) @@ -1017,12 +1014,13 @@ def _get_dos_fingerprints_df(self, path_to_lobster_calc) -> pd.DataFrame: def get_df(self) -> pd.DataFrame: """ - Generate a pandas dataframe with moment features. + Generate a pandas dataframe with all moment features. - Moment features are PDOS center, width, skewness, kurtosis and upper band edge. + Moment features are PDOS (optional: element dos) center, width, skewness, kurtosis + and upper band edge. Returns: - A pandas dataframe + A pandas dataframe with moment features """ paths = [ os.path.join(self.path_to_lobster_calcs, f) diff --git a/lobsterpy/featurize/core.py b/lobsterpy/featurize/core.py index d0042f66..c1328ed2 100644 --- a/lobsterpy/featurize/core.py +++ b/lobsterpy/featurize/core.py @@ -1216,9 +1216,6 @@ class FeaturizeDoscar: path_to_doscar : path to DOSCAR.lobster or DOSCAR.LSO.lobster e_range : range of energy relative to fermi for which moment features and features needs to be computed - Methods: - get_df: pandas dataframe - """ def __init__( From b1a5b37439c906e82a998d603b9a3923b6b01e57 Mon Sep 17 00:00:00 2001 From: anaik Date: Thu, 23 Nov 2023 12:56:29 +0100 Subject: [PATCH 17/49] add link to new documentation in README text --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d0217841..4889b557 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ It is also possible to start this automatic analysis from a Python script. See " You can get further information by using ``lobsterpy --help`` and also by typing ``lobsterpy description --help``, ``lobsterpy automatic-plot --help``, ``lobsterpy plot --help``. -Check the documentation and tutorials therein for more details. +See the complete [documentation and tutorials](https://jageo.github.io/LobsterPy/) for more details. ## How to cite? Please cite our paper: J. George, G. Petretto, A. Naik, M. Esters, A. J. Jackson, R. Nelson, R. Dronskowski, G.-M. Rignanese, G. Hautier, **ChemPlusChem**, [https://doi.org/10.1002/cplu.202200123](https://doi.org/10.1002/cplu.202200123). From 64283ee50a03b91f015e7d176ee03d1b80d23913 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 24 Nov 2023 18:15:25 +0100 Subject: [PATCH 18/49] add custom.css to edit doc appearance --- docs/_static/custom.css | 122 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 docs/_static/custom.css diff --git a/docs/_static/custom.css b/docs/_static/custom.css new file mode 100644 index 00000000..6dd35c6a --- /dev/null +++ b/docs/_static/custom.css @@ -0,0 +1,122 @@ +/******************************************************************************* +* light theme +* +* all the variables used for light theme coloring +*/ +html[data-theme="light"] { + /***************************************************************************** + * main colors + */ + --pst-color-primary: rgb(82, 165, 171); + --pst-color-secondary: rgb(200, 30, 109); + --pst-color-success: rgb(40, 167, 69); + --pst-color-info: var(--pst-color-primary); + --pst-color-warning: var(--pst-color-secondary); + --pst-color-danger: rgb(220, 53, 69); + --pst-color-text-base: rgb(51, 51, 51); + --pst-color-text-muted: rgb(77, 77, 77); + --pst-color-border: rgb(201, 201, 201); + --pst-color-shadow: rgb(216, 216, 216); + + /***************************************************************************** + * depth colors + * + * background: the more in depth color + * on-background: the object directly set on the background, use of shadows in light theme + * surface: object set on the background (without shadows) + * on_surface: object set on surface object (without shadows) + */ + --pst-color-background: rgb(255, 255, 255); + --pst-color-on-background: rgb(255, 255, 255); + --pst-color-surface: rgb(240, 240, 240); + --pst-color-on-surface: rgb(240, 240, 240); + + /***************************************************************************** + * extentions + */ + + --pst-color-panel-background: var(--pst-color-background); + + /***************************************************************************** + * layout + */ + + // links + --pst-color-link: var(--pst-color-primary); + --pst-color-link-hover: var(--pst-color-secondary); + + // inline code + --pst-color-inline-code: rgb(232, 62, 140); + + // targeted content + --pst-color-target: rgb(251, 229, 78); + + // hide any content that should not be displayed in the light theme + .only-dark { + display: none !important; + } +} + +/******************************************************************************* +* dark theme +* +* all the variables used for dark theme coloring +*/ +html[data-theme="dark"] { + /***************************************************************************** + * main colors + */ + --pst-color-primary: rgb(82, 165, 171); + --pst-color-secondary: rgb(200, 30, 109); + --pst-color-success: rgb(72, 135, 87); + --pst-color-info: var(--pst-color-primary); + --pst-color-warning: var(--pst-color-secondary); + --pst-color-danger: rgb(203, 70, 83); + --pst-color-text-base: rgb(201, 209, 217); + --pst-color-text-muted: rgb(192, 192, 192); + --pst-color-border: rgb(192, 192, 192); + --pst-color-shadow: var(--pst-color-background); + + /***************************************************************************** + * depth colors + * + * background: the more in depth color + * on-background: the object directly set on the background, use of a light grey in dark theme + * surface: object set on the background (without shadows) + * on_surface: object set on surface object (without shadows) + */ + --pst-color-background: rgb(18, 18, 18); + --pst-color-on-background: rgb(30, 30, 30); + --pst-color-surface: rgb(41, 41, 41); + --pst-color-on-surface: rgb(55, 55, 55); + + /***************************************************************************** + * extentions + */ + + --pst-color-panel-background: var(--pst-color-background-up); + + /***************************************************************************** + * layout + */ + + // links + --pst-color-link: var(--pst-color-primary); + --pst-color-link-hover: var(--pst-color-secondary); + + // inline code + --pst-color-inline-code: rgb(221, 158, 194); + + // targeted content + --pst-color-target: rgb(71, 39, 0); + + // hide any content that should not be displayed in the dark theme + .only-light { + display: none !important; + } + + // specific brightness applied on images + img { + filter: brightness(0.8) contrast(1.2); + } +} From 15bdc0da1d5aab68b04011992c99b022ae73fa91 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 24 Nov 2023 18:16:27 +0100 Subject: [PATCH 19/49] add repo icon to doc --- docs/conf.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 64fb51fc..2ee3ab1e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -76,8 +76,8 @@ # use type hints autodoc_typehints = "description" -# autoclass_content = "both" -# autodoc_member_order = "bysource" +autoclass_content = "class" +autodoc_member_order = "bysource" # better napoleon support napoleon_use_param = True @@ -91,11 +91,22 @@ # html_theme = "sphinx_book_theme" + +html_theme_options = { + "repository_provider": "github", + "repository_url": "https://github.com/JaGeo/LobsterPy", + "use_repository_button": True, + "use_issues_button": True, +} + + # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] +html_css_files = ['custom.css'] + # hide sphinx footer html_show_sphinx = False html_show_sourcelink = False From bdba61e191be7be96c68b9a3d0891dba2d3f430c Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 24 Nov 2023 18:16:55 +0100 Subject: [PATCH 20/49] fix docstring typo --- lobsterpy/cli.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lobsterpy/cli.py b/lobsterpy/cli.py index 73ca0560..c83ac323 100644 --- a/lobsterpy/cli.py +++ b/lobsterpy/cli.py @@ -65,7 +65,9 @@ def get_parser() -> argparse.ArgumentParser: default="POSCAR", dest="structure", type=Path, - help='path to structure file. Default is "POSCAR"', + help='path to structure file. Default is "POSCAR". ' + 'Can also read "POSCAR.lobster" file or any ' + 'suitable file format supported by pymatgen "Structure.from_file" method.', ) potcar_file = argparse.ArgumentParser(add_help=False) @@ -95,7 +97,7 @@ def get_parser() -> argparse.ArgumentParser: default="COHPCAR.lobster", dest="cohpcar", type=Path, - help='path to COHPCAR.lobster. Default is "COHPCAR.lobster". This argument' + help='path to COHPCAR.lobster. Default is "COHPCAR.lobster". This argument ' "can also read COBICARs or COOPCARs. One needs to use appropriate --cobis or " "--coops options along with this argument when plotting", ) @@ -435,7 +437,7 @@ def get_parser() -> argparse.ArgumentParser: # Argument that will help to switch automatic analysis analysis_switch = argparse.ArgumentParser(add_help=False) analysis_group = analysis_switch.add_argument_group( - "Arguments to switches type of files analyzed during automatic analysis" + "Arguments to switch type of files analyzed during automatic analysis" " (Also indicates file type for 'plot/plot-icohp-distance' action in cli)" ) analysis_group.add_argument( @@ -549,8 +551,8 @@ def get_parser() -> argparse.ArgumentParser: analysis_switch, ], help=( - "Deliver a text description of the COHPs or COBIS or COOP results from Lobster " - "and VASP" + "Deliver a text description from automatic analysis of COHPs or COBIS or COOP results " + "from Lobster run" ), ) subparsers.add_parser( From 8acbad8dd221b77c1e34971df688d68f1e0963a3 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 24 Nov 2023 21:21:34 +0100 Subject: [PATCH 21/49] add logo to html doc --- docs/_static/logo.png | Bin 0 -> 180772 bytes docs/conf.py | 2 +- docs/index.md | 3 ++- docs/installation/index.md | 4 +++- 4 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 docs/_static/logo.png diff --git a/docs/_static/logo.png b/docs/_static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..db104cc1126b8e95cff6dbcaf90a958bb3825fd3 GIT binary patch literal 180772 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 literal 0 HcmV?d00001 diff --git a/docs/conf.py b/docs/conf.py index 2ee3ab1e..87bdd9b3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -90,7 +90,7 @@ # a list of builtin themes. # html_theme = "sphinx_book_theme" - +html_logo = "_static/logo.png" html_theme_options = { "repository_provider": "github", diff --git a/docs/index.md b/docs/index.md index 9fd36ea2..5c507bb3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -31,7 +31,8 @@ about/license **Date**: {sub-ref}`today` **Useful links**: -[Source Repository](https://github.com/JaGeo/LobsterPy) | +[Github Repository](https://github.com/JaGeo/LobsterPy) | +[PyPI](https://pypi.org/project/lobsterpy/) | [Issues & Ideas](https://github.com/JaGeo/LobsterPy/issues) | LobsterPy is a package that enables automatic plotting,summaries and extracting features for machine learning studies from LOBSTER outputs. . diff --git a/docs/installation/index.md b/docs/installation/index.md index 2c19fbcf..9398c614 100644 --- a/docs/installation/index.md +++ b/docs/installation/index.md @@ -1,5 +1,7 @@ +Getting started +================ ```{include} ../../README.md --- -start-line: 2 +start-line: 5 --- ``` From acd09c2b9330d6180407f7d456ac4e529a669555 Mon Sep 17 00:00:00 2001 From: anaik Date: Sat, 25 Nov 2023 07:41:34 +0100 Subject: [PATCH 22/49] fix doc-string inconsistensies of plotting module --- lobsterpy/plotting/__init__.py | 50 +++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/lobsterpy/plotting/__init__.py b/lobsterpy/plotting/__init__.py index d8c4c6f5..58312eb0 100644 --- a/lobsterpy/plotting/__init__.py +++ b/lobsterpy/plotting/__init__.py @@ -56,6 +56,14 @@ class PlainCohpPlotter(CohpPlotter): This allows the styling to be manipulated more easily using matplotlib style sheets. + + Attributes: + - zero_at_efermi: Shift all populations to have zero + energy at the Fermi level. Defaults to True. + - are_coops: Bool indicating that populations are COOPs, not COHPs. + Defaults to False for COHPs. + - are_cobis: Bool indicating that populations are COBIs, not COHPs. + Defaults to False for COHPs. """ def get_plot( @@ -243,28 +251,41 @@ class PlainDosPlotter(DosPlotter): This allows the styling to be manipulated more easily using matplotlib style sheets. It also adds additional functionalities to plotter + + Attributes: + - zero_at_efermi: Shift all DOS to have zero + energy at the Fermi level. Defaults to True. + - stack: Bool indicating that plot should be stacked + area graph. + - sigma: Standard deviation for gaussian smearing. + - summed: Will plot summed dos spin populations. + Defaults to False. """ def __init__( - self, zero_at_efermi: bool = True, stack: bool = False, sigma=None, summed=False + self, + zero_at_efermi: bool = True, + stack: bool = False, + summed: bool = False, + sigma: float | None = None, ) -> None: """ - Generate COHP or COOP or COBI plots. + Initialize DOS plotter. :param zero_at_efermi: Whether to shift all Dos to have zero energy at the fermi energy. Defaults to True. :param stack: Whether to plot the DOS as a stacked area graph + :param summed: Whether to plot the summed spins DOS. :param sigma: Specify a standard deviation for Gaussian smearing the DOS for nicer looking plots. Defaults to None for no smearing. - :param summed: Whether to plot the summed DOS """ self.zero_at_efermi = zero_at_efermi self.stack = stack self.sigma = sigma + self.summed = summed self._norm_val = True self._doses = {} # type: ignore - self.summed = summed def add_dos(self, label: str, dos: LobsterCompleteDos) -> None: """ @@ -531,7 +552,16 @@ def get_plot( class InteractiveCohpPlotter(CohpPlotter): - """Interactive COHP, COBI or COOP plotter to view all relevant bonds in one figure.""" + """Interactive COHP, COBI or COOP plotter to view all relevant bonds in one figure. + + Attributes: + - zero_at_efermi: Shift all populations to have zero + energy at the Fermi level. Defaults to True. + - are_coops: Bool indicating that populations are COOPs, not COHPs. + Defaults to False for COHPs. + - are_cobis: Bool indicating that populations are COBIs, not COHPs. + Defaults to False for COHPs. + """ COLOR_PALETTE = [ "#e41a1c", @@ -1139,11 +1169,11 @@ def __init__(self, are_coops: bool = False, are_cobis: bool = False): """ Plot ICOHPs or ICOBI or ICOOP vs bond lengths. - :param are_coops: Switch to indicate that these are ICOOPs, not ICOHPs. - Defaults to False for ICOHPs. - :param are_cobis: Switch to indicate that these are ICOBIs, not ICOHPs/COOPs. - Defaults to False for ICOHPs. - + Attributes: + - are_coops: Bool indicating that populations are ICOOPs, not ICOHPs. + Defaults to False for COHPs. + - are_cobis: Bool indicating that populations are ICOBIs, not ICOHPs. + Defaults to False for COHPs. """ self.are_coops = are_coops self.are_cobis = are_cobis From 945d487abcd795d281254a0d6276725880500ba9 Mon Sep 17 00:00:00 2001 From: anaik Date: Sat, 25 Nov 2023 07:49:34 +0100 Subject: [PATCH 23/49] fix doc-string inconsistensies of structuregraph.graph module --- lobsterpy/structuregraph/graph.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lobsterpy/structuregraph/graph.py b/lobsterpy/structuregraph/graph.py index b04b2d8f..3ec99ae9 100644 --- a/lobsterpy/structuregraph/graph.py +++ b/lobsterpy/structuregraph/graph.py @@ -58,7 +58,13 @@ def __init__( cutoff_icohp: float = 0.10, start: float | None = None, ): - """Initialize and return a structure graph object.""" + """ + Initialize and return a structure graph object. + + :param path_to_poscar: path to POSCAR (e.g., "POSCAR"). + :param path_to_charge: path to CHARGE.lobster (e.g., "CHARGE.lobster"). + + """ if add_additional_data_sg: self.add_additional_data_sg = add_additional_data_sg if path_to_icooplist is not None and path_to_icobilist is not None: From 3f3d593108b2778460855a44d4bb834e600a5ffc Mon Sep 17 00:00:00 2001 From: anaik Date: Sat, 25 Nov 2023 07:50:10 +0100 Subject: [PATCH 24/49] fix doc-string inconsistensies of structuregraph.graph module --- lobsterpy/structuregraph/graph.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lobsterpy/structuregraph/graph.py b/lobsterpy/structuregraph/graph.py index 3ec99ae9..93f80d55 100644 --- a/lobsterpy/structuregraph/graph.py +++ b/lobsterpy/structuregraph/graph.py @@ -63,6 +63,10 @@ def __init__( :param path_to_poscar: path to POSCAR (e.g., "POSCAR"). :param path_to_charge: path to CHARGE.lobster (e.g., "CHARGE.lobster"). + :param path_to_cohpcar: path to COHPCAR.lobster (e.g., "COHPCAR.lobster"). + :param path_to_icohplist: path to ICOHPLIST.lobster (e.g., "ICOHPLIST.lobster"). + :param path_to_icooplist: path to ICOOPLIST.lobster (e.g., "ICOOPLIST.lobster"). + :param path_to_icobilist: path to ICOBILIST.lobster (e.g., "ICOBILIST.lobster"). """ if add_additional_data_sg: From 8cfcec61a8e435ebeb4444553ca13976e6e78bce Mon Sep 17 00:00:00 2001 From: anaik Date: Sat, 25 Nov 2023 07:51:11 +0100 Subject: [PATCH 25/49] fix doc-string inconsistensies of structuregraph.graph module --- lobsterpy/structuregraph/graph.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lobsterpy/structuregraph/graph.py b/lobsterpy/structuregraph/graph.py index 93f80d55..2ee4df20 100644 --- a/lobsterpy/structuregraph/graph.py +++ b/lobsterpy/structuregraph/graph.py @@ -67,6 +67,11 @@ def __init__( :param path_to_icohplist: path to ICOHPLIST.lobster (e.g., "ICOHPLIST.lobster"). :param path_to_icooplist: path to ICOOPLIST.lobster (e.g., "ICOOPLIST.lobster"). :param path_to_icobilist: path to ICOBILIST.lobster (e.g., "ICOBILIST.lobster"). + :param path_to_madelung: path to MadelungEnergies.lobster (e.g., "MadelungEnergies.lobster") + :param add_additional_data_sg: if True will add the information from ICOOPLIST.lobster + and ICOBILIST.lobster based on ICOHPLIST.lobster relevant bond. + :param which_bonds: selects which kind of bonds are analyzed. "all" is the default. + :param start: start energy for bonding antibonding percent integration. """ if add_additional_data_sg: From ecff5a8cbd6e7af0daf35f926964934144813329 Mon Sep 17 00:00:00 2001 From: anaik Date: Sat, 25 Nov 2023 07:52:35 +0100 Subject: [PATCH 26/49] fix doc-string inconsistensies of structuregraph.graph module --- lobsterpy/structuregraph/graph.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lobsterpy/structuregraph/graph.py b/lobsterpy/structuregraph/graph.py index 2ee4df20..9327b493 100644 --- a/lobsterpy/structuregraph/graph.py +++ b/lobsterpy/structuregraph/graph.py @@ -68,6 +68,7 @@ def __init__( :param path_to_icooplist: path to ICOOPLIST.lobster (e.g., "ICOOPLIST.lobster"). :param path_to_icobilist: path to ICOBILIST.lobster (e.g., "ICOBILIST.lobster"). :param path_to_madelung: path to MadelungEnergies.lobster (e.g., "MadelungEnergies.lobster") + :param cutoff_icohp: only bonds that are stronger than "cutoff icohp * strongest ICOHP" will be considered. :param add_additional_data_sg: if True will add the information from ICOOPLIST.lobster and ICOBILIST.lobster based on ICOHPLIST.lobster relevant bond. :param which_bonds: selects which kind of bonds are analyzed. "all" is the default. From 97c8af4c0ac66e23c3bdd51d09d8235889d611fe Mon Sep 17 00:00:00 2001 From: anaik Date: Sat, 25 Nov 2023 07:53:02 +0100 Subject: [PATCH 27/49] fix doc-string inconsistensies of structuregraph.graph module --- lobsterpy/structuregraph/graph.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lobsterpy/structuregraph/graph.py b/lobsterpy/structuregraph/graph.py index 9327b493..8278a402 100644 --- a/lobsterpy/structuregraph/graph.py +++ b/lobsterpy/structuregraph/graph.py @@ -68,7 +68,7 @@ def __init__( :param path_to_icooplist: path to ICOOPLIST.lobster (e.g., "ICOOPLIST.lobster"). :param path_to_icobilist: path to ICOBILIST.lobster (e.g., "ICOBILIST.lobster"). :param path_to_madelung: path to MadelungEnergies.lobster (e.g., "MadelungEnergies.lobster") - :param cutoff_icohp: only bonds that are stronger than "cutoff icohp * strongest ICOHP" will be considered. + :param cutoff_icohp: only bonds that are stronger than cutoff_icohp * strongest ICOHP will be considered. :param add_additional_data_sg: if True will add the information from ICOOPLIST.lobster and ICOBILIST.lobster based on ICOHPLIST.lobster relevant bond. :param which_bonds: selects which kind of bonds are analyzed. "all" is the default. From d628fcce3fc40b57d30afa6680fa496ddf74d816 Mon Sep 17 00:00:00 2001 From: anaik Date: Mon, 27 Nov 2023 17:12:53 +0100 Subject: [PATCH 28/49] fix rendered docstrings of namedtuples in docs --- docs/conf.py | 1 + lobsterpy/cohp/analyze.py | 12 ++++---- lobsterpy/featurize/core.py | 54 ++++++++++++++++++++++++++++------- pyproject.toml | 1 + tests/featurize/test_batch.py | 12 ++++---- tests/featurize/test_core.py | 4 +-- 6 files changed, 60 insertions(+), 24 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 87bdd9b3..ebbe14a0 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -35,6 +35,7 @@ "sphinx.ext.viewcode", "sphinx.ext.autosummary", "sphinx.ext.coverage", + "sphinx_toolbox.more_autodoc.autonamedtuple", "sphinxarg.ext", "myst_nb", "sphinx_design", diff --git a/lobsterpy/cohp/analyze.py b/lobsterpy/cohp/analyze.py index 26c1708d..b3e8cd3e 100644 --- a/lobsterpy/cohp/analyze.py +++ b/lobsterpy/cohp/analyze.py @@ -67,12 +67,12 @@ def __init__( cutoff_icohp: float = 0.1, noise_cutoff: float = 0.1, orbital_cutoff: float = 0.05, - summed_spins=True, - are_cobis=False, - are_coops=False, - type_charge=None, - start=None, - orbital_resolved=False, + summed_spins: bool = True, + are_cobis: bool = False, + are_coops: bool = False, + type_charge: str | None = None, + start: float | None = None, + orbital_resolved: bool = False, ): """ Automatically analyze bonding information with this class. diff --git a/lobsterpy/featurize/core.py b/lobsterpy/featurize/core.py index c1328ed2..4c386194 100644 --- a/lobsterpy/featurize/core.py +++ b/lobsterpy/featurize/core.py @@ -8,8 +8,8 @@ import gzip import json import warnings -from collections import namedtuple from pathlib import Path +from typing import NamedTuple import numpy as np import pandas as pd @@ -464,9 +464,27 @@ def get_lobsterpy_cba_dict( return data -coxx_fingerprint = namedtuple( - "coxx_fingerprint", "energies coxx fp_type spin_type n_bins bin_width" -) +class CoxxFingerprint(NamedTuple): + """ + Represents a Coxx fingerprint. + + This named tuple is used to store information related to a Coxx fingerprint, which + includes energies, Coxx values, fingerprint type, spin type, number of bins, and bin width. + + :param energies: The energy values associated with the Coxx fingerprint. + :param coxx: The Coxx values corresponding to each energy. + :param fp_type: The type of the Coxx fingerprint. + :param spin_type: The spin type associated with the fingerprint. + :param n_bins: The number of bins used in the Coxx fingerprint. + :param bin_width: The width of each bin in the Coxx fingerprint. + """ + + energies: np.ndarray + coxx: np.ndarray + fp_type: str + spin_type: str + n_bins: int + bin_width: float class FeaturizeCOXX: @@ -645,7 +663,7 @@ def get_coxx_fingerprint_df( coxxs = coxx_dict[self.feature_type] if len(energies) < n_bins: inds = np.where((energies >= min_e - tol) & (energies <= max_e + tol)) - fp = coxx_fingerprint( + fp = CoxxFingerprint( energies[inds], coxxs[inds], self.feature_type, @@ -679,7 +697,7 @@ def get_coxx_fingerprint_df( else: coxx_rebin_sc = coxx_rebin - fp = coxx_fingerprint( + fp = CoxxFingerprint( np.array([ener]), coxx_rebin_sc, self.feature_type, @@ -1202,9 +1220,25 @@ def get_df(self, ids: str | None = None) -> pd.DataFrame: return df -dos_fingerprint = namedtuple( - "dos_fingerprint", "energies densities type n_bins bin_width" -) +class DosFingerprint(NamedTuple): + """ + Represents a Density of States (DOS) fingerprint. + + This named tuple is used to store information related to the Density of States (DOS) + in a material. It includes the energies, densities, type, number of bins, and bin width. + + :param energies: The energy values associated with the DOS. + :param densities: The corresponding density values for each energy. + :param type: The type of DOS fingerprint. + :param n_bins: The number of bins used in the fingerprint. + :param bin_width: The width of each bin in the DOS fingerprint. + """ + + energies: np.ndarray + densities: np.ndarray + type: str + n_bins: int + bin_width: float class FeaturizeDoscar: @@ -1353,6 +1387,6 @@ def get_fingerprint_df( min_e=self.e_range[0] if self.e_range is not None else None, )._asdict() - df.loc[ids, "DOS_FP"] = dos_fingerprint(**fp) + df.loc[ids, "DOS_FP"] = DosFingerprint(**fp) return df diff --git a/pyproject.toml b/pyproject.toml index 0ee7143e..59a1fa73 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,6 +50,7 @@ docs = [ "myst-nb==0.17.2", "sphinx-book-theme==1.0.1", "sphinx-argparse==0.4.0", + "sphinx-toolbox==3.5.0", ] [project.scripts] diff --git a/tests/featurize/test_batch.py b/tests/featurize/test_batch.py index 33e72fba..ef4188ab 100644 --- a/tests/featurize/test_batch.py +++ b/tests/featurize/test_batch.py @@ -10,7 +10,7 @@ BatchStructureGraphs, BatchSummaryFeaturizer, ) -from lobsterpy.featurize.core import coxx_fingerprint, dos_fingerprint +from lobsterpy.featurize.core import CoxxFingerprint, DosFingerprint CurrentDir = Path(__file__).absolute().parent TestDir = CurrentDir / "../" @@ -463,7 +463,7 @@ def test_fp_cohp_bonding(self): ) df_fp_cohp = fp_cohp_bonding.fingerprint_df for fp in df_fp_cohp["COXX_FP"]: - assert isinstance(fp, coxx_fingerprint) + assert isinstance(fp, CoxxFingerprint) assert fp.fp_type == "bonding" df = fp_cohp_bonding.get_similarity_matrix_df() @@ -485,7 +485,7 @@ def test_fp_cobi(self): ) df_fp_cobi = fp_cobi.fingerprint_df for fp in df_fp_cobi["COXX_FP"]: - assert isinstance(fp, coxx_fingerprint) + assert isinstance(fp, CoxxFingerprint) assert fp.fp_type == "antibonding" df = fp_cobi.get_similarity_matrix_df() @@ -508,7 +508,7 @@ def test_fp_coop(self): ) df_fp_coop = fp_coop.fingerprint_df for fp in df_fp_coop["COXX_FP"]: - assert isinstance(fp, coxx_fingerprint) + assert isinstance(fp, CoxxFingerprint) assert fp.fp_type == "bonding" df = fp_coop.get_similarity_matrix_df() @@ -590,7 +590,7 @@ def test_batch_dos_featurizer_non_lso(self): assert isinstance(df_fp, pd.DataFrame) for dos_fp in df_fp["DOS_FP"]: - assert isinstance(dos_fp, dos_fingerprint) + assert isinstance(dos_fp, DosFingerprint) assert dos_fp.type == "p" assert dos_fp.n_bins == 100 @@ -683,7 +683,7 @@ def test_batch_dos_featurizer_lso(self): assert isinstance(df_fp_lso, pd.DataFrame) for dos_fp in df_fp_lso["DOS_FP"]: - assert isinstance(dos_fp, dos_fingerprint) + assert isinstance(dos_fp, DosFingerprint) assert dos_fp.type == "summed_pdos" assert dos_fp.n_bins == 256 diff --git a/tests/featurize/test_core.py b/tests/featurize/test_core.py index 56cc4092..e8ff5ca9 100644 --- a/tests/featurize/test_core.py +++ b/tests/featurize/test_core.py @@ -5,11 +5,11 @@ import pytest from lobsterpy.featurize.core import ( + DosFingerprint, FeaturizeCharges, FeaturizeCOXX, FeaturizeDoscar, FeaturizeLobsterpy, - dos_fingerprint, ) CurrentDir = Path(__file__).absolute().parent @@ -945,4 +945,4 @@ def test_featurize_k3sb_dos(self): # Test for the case where e_range is set to None and trying to get fingerprint df_fp = feat_dos.get_fingerprint_df() assert isinstance(df_fp, pd.DataFrame) - assert isinstance(df_fp.loc["K3Sb", "DOS_FP"], dos_fingerprint) + assert isinstance(df_fp.loc["K3Sb", "DOS_FP"], DosFingerprint) From f0f4b2dc2fd3c740d9ee1a5919030f7e9e56e467 Mon Sep 17 00:00:00 2001 From: anaik Date: Thu, 30 Nov 2023 10:11:16 +0100 Subject: [PATCH 29/49] fix doc-strings --- lobsterpy/plotting/__init__.py | 43 ++++++++++++++++------------------ 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/lobsterpy/plotting/__init__.py b/lobsterpy/plotting/__init__.py index 58312eb0..78c5d325 100644 --- a/lobsterpy/plotting/__init__.py +++ b/lobsterpy/plotting/__init__.py @@ -57,12 +57,11 @@ class PlainCohpPlotter(CohpPlotter): This allows the styling to be manipulated more easily using matplotlib style sheets. - Attributes: - - zero_at_efermi: Shift all populations to have zero + :param zero_at_efermi: Shift all populations to have zero energy at the Fermi level. Defaults to True. - - are_coops: Bool indicating that populations are COOPs, not COHPs. + :param are_coops: Bool indicating that populations are COOPs, not COHPs. Defaults to False for COHPs. - - are_cobis: Bool indicating that populations are COBIs, not COHPs. + :param are_cobis: Bool indicating that populations are COBIs, not COHPs. Defaults to False for COHPs. """ @@ -252,13 +251,12 @@ class PlainDosPlotter(DosPlotter): This allows the styling to be manipulated more easily using matplotlib style sheets. It also adds additional functionalities to plotter - Attributes: - - zero_at_efermi: Shift all DOS to have zero + :param zero_at_efermi: Shift all DOS to have zero energy at the Fermi level. Defaults to True. - - stack: Bool indicating that plot should be stacked + :param stack: Bool indicating that plot should be stacked area graph. - - sigma: Standard deviation for gaussian smearing. - - summed: Will plot summed dos spin populations. + :param sigma: Standard deviation for gaussian smearing. + :param summed: Will plot summed dos spin populations. Defaults to False. """ @@ -280,6 +278,7 @@ def __init__( the DOS for nicer looking plots. Defaults to None for no smearing. """ + super().__init__(zero_at_efermi, stack, sigma) self.zero_at_efermi = zero_at_efermi self.stack = stack self.sigma = sigma @@ -554,12 +553,11 @@ def get_plot( class InteractiveCohpPlotter(CohpPlotter): """Interactive COHP, COBI or COOP plotter to view all relevant bonds in one figure. - Attributes: - - zero_at_efermi: Shift all populations to have zero + :param zero_at_efermi: Shift all populations to have zero energy at the Fermi level. Defaults to True. - - are_coops: Bool indicating that populations are COOPs, not COHPs. + :param are_coops: Bool indicating that populations are COOPs, not COHPs. Defaults to False for COHPs. - - are_cobis: Bool indicating that populations are COBIs, not COHPs. + :param are_cobis: Bool indicating that populations are COBIs, not COHPs. Defaults to False for COHPs. """ @@ -1163,18 +1161,17 @@ def _get_plot_label_for_label_resolved( class IcohpDistancePlotter: - """Plotter to generate ICOHP or ICOBI or ICOOP vs bond lengths plots.""" - - def __init__(self, are_coops: bool = False, are_cobis: bool = False): - """ - Plot ICOHPs or ICOBI or ICOOP vs bond lengths. + """ + Plotter to generate ICOHP or ICOBI or ICOOP vs bond lengths plots. - Attributes: - - are_coops: Bool indicating that populations are ICOOPs, not ICOHPs. - Defaults to False for COHPs. - - are_cobis: Bool indicating that populations are ICOBIs, not ICOHPs. + :param are_coops: Bool indicating that populations are ICOOPs, not ICOHPs. Defaults to False for COHPs. - """ + :param are_cobis: Bool indicating that populations are ICOBIs, not ICOHPs. + Defaults to False for COHPs. + """ + + def __init__(self, are_coops: bool = False, are_cobis: bool = False): + """Initialize ICOHPs or ICOBI or ICOOP vs bond lengths plotter.""" self.are_coops = are_coops self.are_cobis = are_cobis self._icohps = {} # type: ignore From a6f792ae8571721d86c3b213665b92586c270344 Mon Sep 17 00:00:00 2001 From: anaik Date: Thu, 30 Nov 2023 10:12:23 +0100 Subject: [PATCH 30/49] fix doc-strings --- lobsterpy/structuregraph/graph.py | 45 +++++++++++-------------------- 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/lobsterpy/structuregraph/graph.py b/lobsterpy/structuregraph/graph.py index 8278a402..a1d66cd7 100644 --- a/lobsterpy/structuregraph/graph.py +++ b/lobsterpy/structuregraph/graph.py @@ -29,19 +29,20 @@ class LobsterGraph: the structure graph objects. Attributes: - - sg: return structure_graph object - - path_to_poscar: path to POSCAR (e.g., "POSCAR") - - path_to_charge: path to CHARGE.lobster (e.g., "CHARGE.lobster") - - path_to_cohpcar: path to COHPCAR.lobster (e.g., "COHPCAR.lobster") - - path_to_icohplist: path to ICOHPLIST.lobster (e.g., "ICOHPLIST.lobster") - - path_to_icooplist: path to ICOOPLIST.lobster (e.g., "ICOOPLIST.lobster") - - path_to_icobilist: path to ICOBILIST.lobster (e.g., "ICOBILIST.lobster") - - path_to_madelung: path to MadelungEnergies.lobster (e.g., "MadelungEnergies.lobster") - - cutoff_icohp : only bonds that are stronger than cutoff_icohp*strongest ICOHP will be considered - - add_additional_data_sg: if True will add the information from ICOOPLIST.lobster - and ICOBILIST.lobster based on ICOHPLIST.lobster relevant bond - - which_bonds: selects which kind of bonds are analyzed. "all" is the default - - start: start energy for bonding antibonding percent integration + sg: return structure_graph object + + :param path_to_poscar: path to POSCAR (e.g., "POSCAR"). + :param path_to_charge: path to CHARGE.lobster (e.g., "CHARGE.lobster"). + :param path_to_cohpcar: path to COHPCAR.lobster (e.g., "COHPCAR.lobster"). + :param path_to_icohplist: path to ICOHPLIST.lobster (e.g., "ICOHPLIST.lobster"). + :param path_to_icooplist: path to ICOOPLIST.lobster (e.g., "ICOOPLIST.lobster"). + :param path_to_icobilist: path to ICOBILIST.lobster (e.g., "ICOBILIST.lobster"). + :param path_to_madelung: path to MadelungEnergies.lobster (e.g., "MadelungEnergies.lobster") + :param cutoff_icohp: only bonds that are stronger than cutoff_icohp * strongest ICOHP will be considered. + :param add_additional_data_sg: if True will add the information from ICOOPLIST.lobster + and ICOBILIST.lobster based on ICOHPLIST.lobster relevant bond. + :param which_bonds: selects which kind of bonds are analyzed. "all" is the default. + :param start: start energy for bonding antibonding percent integration. """ def __init__( @@ -58,23 +59,7 @@ def __init__( cutoff_icohp: float = 0.10, start: float | None = None, ): - """ - Initialize and return a structure graph object. - - :param path_to_poscar: path to POSCAR (e.g., "POSCAR"). - :param path_to_charge: path to CHARGE.lobster (e.g., "CHARGE.lobster"). - :param path_to_cohpcar: path to COHPCAR.lobster (e.g., "COHPCAR.lobster"). - :param path_to_icohplist: path to ICOHPLIST.lobster (e.g., "ICOHPLIST.lobster"). - :param path_to_icooplist: path to ICOOPLIST.lobster (e.g., "ICOOPLIST.lobster"). - :param path_to_icobilist: path to ICOBILIST.lobster (e.g., "ICOBILIST.lobster"). - :param path_to_madelung: path to MadelungEnergies.lobster (e.g., "MadelungEnergies.lobster") - :param cutoff_icohp: only bonds that are stronger than cutoff_icohp * strongest ICOHP will be considered. - :param add_additional_data_sg: if True will add the information from ICOOPLIST.lobster - and ICOBILIST.lobster based on ICOHPLIST.lobster relevant bond. - :param which_bonds: selects which kind of bonds are analyzed. "all" is the default. - :param start: start energy for bonding antibonding percent integration. - - """ + """Initialize and return a structure graph object.""" if add_additional_data_sg: self.add_additional_data_sg = add_additional_data_sg if path_to_icooplist is not None and path_to_icobilist is not None: From 40943ad7313abc9119ba680817f43d63126eaf97 Mon Sep 17 00:00:00 2001 From: anaik Date: Thu, 30 Nov 2023 14:30:40 +0100 Subject: [PATCH 31/49] fix docstring formatting in featurizr module --- lobsterpy/featurize/batch.py | 218 +++++++++++++++++------------------ lobsterpy/featurize/core.py | 213 ++++++++++++++++------------------ 2 files changed, 201 insertions(+), 230 deletions(-) diff --git a/lobsterpy/featurize/batch.py b/lobsterpy/featurize/batch.py index 931628d9..e6c4645c 100644 --- a/lobsterpy/featurize/batch.py +++ b/lobsterpy/featurize/batch.py @@ -9,7 +9,6 @@ import os import warnings from pathlib import Path -from typing import NamedTuple import numpy as np import pandas as pd @@ -17,6 +16,7 @@ from tqdm.autonotebook import tqdm from lobsterpy.featurize.core import ( + CoxxFingerprint, FeaturizeCharges, FeaturizeCOXX, FeaturizeDoscar, @@ -31,22 +31,18 @@ class BatchSummaryFeaturizer: """ Batch Featurizer sets that generates summary features from lobster data. - Args: - path_to_lobster_calcs: path to root directory consisting of all lobster calc - path_to_jsons: path to root directory consisting of all lobster lightweight jsons - feature_type: set the feature type for moment features. - Possible options are "bonding", "antibonding" or "overall" - charge_type : set charge type used for computing ionicity. Possible options are - "mulliken", "loewdin or "both" - bonds: "all_bonds" or "cation_anion_bonds" - orbital_resolved: bool indicating whether LobsterPy analysis is performed orbital wise - include_cobi_data : bool stating to include COBICAR.lobster features - include_coop_data: bool stating to include COOPCAR.lobster features - e_range : range of energy relative to fermi for which moment features needs to be computed - n_jobs : parallel processes to run - - Attributes: - get_df: A pandas dataframe with summary features + :param path_to_lobster_calcs: path to root directory consisting of all lobster calc + :param path_to_jsons: path to root directory consisting of all lobster lightweight jsons + :param feature_type: set the feature type for moment features. + Possible options are `bonding`, `antibonding` or `overall` + :param charge_type: set charge type used for computing ionicity. Possible options are + `mulliken`, `loewdin` or `both`. + :param bonds: `all_bonds` or `cation_anion_bonds` + :param orbital_resolved: bool indicating whether LobsterPy analysis is performed orbital wise + :param include_cobi_data: bool stating to include COBICAR.lobster features + :param include_coop_data: bool stating to include COOPCAR.lobster features + :param e_range: range of energy relative to fermi for which moment features needs to be computed + :param n_jobs: parallel processes to run """ def __init__( @@ -65,20 +61,18 @@ def __init__( """ Featurize lobster data via multiprocessing for large number of compounds. - Args: - path_to_lobster_calcs: path to root directory consisting of all lobster calc - path_to_jsons: path to root directory consisting of all lobster lightweight jsons - feature_type: set the feature type for moment features. - Possible options are "bonding", "antibonding" or "overall" - charge_type : set charge type used for computing ionicity. Possible options are - "mulliken", "loewdin or "both" - bonds: "all_bonds" or "cation_anion_bonds" - orbital_resolved: bool indicating whether LobsterPy analysis is performed orbital wise - include_cobi_data : bool stating to include COBICAR.lobster features - include_coop_data: bool stating to include COOPCAR.lobster features - e_range : range of energy relative to fermi for which moment features needs to be computed - n_jobs : parallel processes to run - + :param path_to_lobster_calcs: path to root directory consisting of all lobster calc + :param path_to_jsons: path to root directory consisting of all lobster lightweight jsons + :param feature_type: set the feature type for moment features. + Possible options are `bonding`, `antibonding` or `overall` + :param charge_type: set charge type used for computing ionicity. Possible options are + `mulliken`, `loewdin` or `both`. + :param bonds: `all_bonds` or `cation_anion_bonds` + :param orbital_resolved: bool indicating whether LobsterPy analysis is performed orbital wise + :param include_cobi_data: bool stating to include COBICAR.lobster features + :param include_coop_data: bool stating to include COOPCAR.lobster features + :param e_range: range of energy relative to fermi for which moment features needs to be computed + :param n_jobs: parallel processes to run """ self.path_to_lobster_calcs = path_to_lobster_calcs self.path_to_jsons = path_to_jsons @@ -95,7 +89,10 @@ def _featurizelobsterpy(self, file_name_or_path) -> pd.DataFrame: """ Featurize Lobsterpy condensed bonding analysis data. - if lightweight json file exists loads that or invokes LobsterPy Analysis class + if lightweight json file exists loads that or invokes LobsterPy Analysis class. + + :param file_name_or_path: path to the LOBSTER calc directory or + lightweight condensed bonding analysis json file name. Returns: A pandas dataframe with ICOHP stats like mean, min, max of relevant bonds and @@ -121,6 +118,8 @@ def _featurizecoxx(self, path_to_lobster_calc) -> pd.DataFrame: """ Featurize COHP/COBI/COOPCAR data using FeaturizeCOXX. + :param path_to_lobster_calc: path to root LOBSTER calc directory + Returns: A pandas dataframe with COHP summary stats data mainly weighted ICOHP/ICOOP/ICOBI, Effective interaction number and moment features (center, width, skewness and kurtosis) @@ -262,6 +261,8 @@ def _featurizecharges(self, path_to_lobster_calc) -> pd.DataFrame: """ Featurize CHARGE.lobster.gz data that using FeaturizeCharges. + :param path_to_lobster_calc: path to root LOBSTER calc directory + Returns: A pandas dataframe with computed ionicity for the structure @@ -413,24 +414,21 @@ class BatchCoxxFingerprint: """ BatchFeaturizer to generate COHP/COOP/COBI fingerprints and Tanimoto index similarity matrix. - Args: - path_to_lobster_calcs: path to root directory consisting of all lobster calc - feature_type: set the feature type for moment features. - Possible options are "bonding", "antibonding" or "overall" - label_list: bond labels list for which fingerprints needs to be generated. - tanimoto : bool to state to compute tanimoto index between fingerprint objects - normalize: bool to state to normalize the fingerprint data - n_bins: sets number for bins for fingerprint objects - e_range : range of energy relative to fermi for which moment features needs to be computed - n_jobs : number of parallel processes to run - fingerprint_for: Possible options are 'cohp/cobi/coop'. + :param path_to_lobster_calcs: path to root directory consisting of all lobster calc + :param feature_type: set the feature type for moment features. + Possible options are `bonding`, `antibonding` or `overall` + :param label_list: bond labels list for which fingerprints needs to be generated. + :param tanimoto: bool to state to compute tanimoto index between fingerprint objects + :param normalize: bool to state to normalize the fingerprint data + :param spin_type: can be `summed` or `up` or `down`. + :param n_bins: sets number for bins for fingerprint objects + :param e_range: range of energy relative to fermi for which moment features needs to be computed + :param n_jobs: number of parallel processes to run + :param fingerprint_for: Possible options are `cohp` or `cobi` or `coop`. Based on this fingerprints will be computed for COHPCAR/COOBICAR/COOPCAR.lobster files Attributes: fingerprint_df: A pandas dataframe with fingerprint objects - get_similarity_matrix_df: A symmetric pandas dataframe consisting of - similarity index (tanimoto/normalized dot product/dot product) - computed between all pairs of compounds """ def __init__( @@ -449,20 +447,18 @@ def __init__( """ Generate COHP/COOP/COBI fingerprints and pair-wise Tanimoto index similarity matrix. - Args: - path_to_lobster_calcs: path to root directory consisting of all lobster calc - feature_type: set the feature type for moment features. - Possible options are "bonding", "antibonding" or "overall" - label_list: bond labels list for which fingerprints needs to be generated. - tanimoto : bool to state to compute tanimoto index between fingerprint objects - normalize: bool to state to normalize the fingerprint data - spin_type: can be summed or up or down. - n_bins: sets number for bins for fingerprint objects - e_range : range of energy relative to fermi for which moment features needs to be computed - n_jobs : number of parallel processes to run - fingerprint_for: Possible options are 'cohp/cobi/coop'. + :param path_to_lobster_calcs: path to root directory consisting of all lobster calc + :param feature_type: set the feature type for moment features. + Possible options are `bonding`, `antibonding` or `overall` + :param label_list: bond labels list for which fingerprints needs to be generated. + :param tanimoto: bool to state to compute tanimoto index between fingerprint objects + :param normalize: bool to state to normalize the fingerprint data + :param spin_type: can be `summed` or `up` or `down`. + :param n_bins: sets number for bins for fingerprint objects + :param e_range: range of energy relative to fermi for which moment features needs to be computed + :param n_jobs: number of parallel processes to run + :param fingerprint_for: Possible options are `cohp` or `cobi` or `coop`. Based on this fingerprints will be computed for COHPCAR/COOBICAR/COOPCAR.lobster files - """ self.path_to_lobster_calcs = path_to_lobster_calcs self.feature_type = feature_type @@ -516,8 +512,7 @@ def _fp_to_dict(fp) -> dict: """ Convert a fingerprint obj into a dictionary. - Args: - fp: The fingerprint to be converted into a dictionary + :param fp: The fingerprint to be converted into a dictionary Returns: dict: A dict of the fingerprint Keys=type, Values=np.ndarray(energies, cohp) @@ -529,8 +524,8 @@ def _fp_to_dict(fp) -> dict: @staticmethod def _get_fp_similarity( - fp1: NamedTuple, - fp2: NamedTuple, + fp1: CoxxFingerprint, + fp2: CoxxFingerprint, col: int = 1, pt: int | str = "All", normalize: bool = False, @@ -539,13 +534,12 @@ def _get_fp_similarity( """ Calculate the similarity index (dot product) of two fingerprints. - Args: - fp1 (NamedTuple): The 1st dos fingerprint object - fp2 (NamedTuple): The 2nd dos fingerprint object - col (int): The item in the fingerprints (0:energies,1: coxxs) to take the dot product of (default is 1) - pt (int or str) : The index of the point that the dot product is to be taken (default is All) - normalize (bool): If True normalize the scalar product to 1 (default is False) - tanimoto (bool): If True will compute Tanimoto index (default is False) + :param fp1 The 1st CoxxFingerprint object + :param fp2: The 2nd CoxxFingerprint object + :param col: The item in the fingerprints (0:energies,1: coxxs) to take the dot product of (default is 1) + :param pt: The index of the point that the dot product is to be taken (default is All) + :param normalize: If True normalize the scalar product to 1 (default is False) + :param tanimoto: If True will compute Tanimoto index (default is False) Raises: ValueError: If both tanimoto and normalize are set to True. @@ -566,8 +560,8 @@ def _get_fp_similarity( vec1 = np.array([pt[col] for pt in fp1_dict.values()]).flatten() vec2 = np.array([pt[col] for pt in fp2_dict.values()]).flatten() else: - vec1 = fp1_dict[fp1[2][pt]][col] - vec2 = fp2_dict[fp2[2][pt]][col] + vec1 = fp1_dict[fp1[2][pt]][col] # type: ignore + vec2 = fp2_dict[fp2[2][pt]][col] # type: ignore if not normalize and tanimoto: rescale = ( @@ -592,7 +586,9 @@ def _fingerprint_df(self, path_to_lobster_calc) -> pd.DataFrame: """ Get fingerprint object dataframe via FeaturizeCOXX.get_coxx_fingerprint_df. - Also helps to generate the data used for fingerprint generation + Also helps to generate the data used for fingerprint generation. + + :param path_to_lobster_calc: path to root LOBSTER calculation directory. Returns: A pandas dataframe with COXX fingerprint object @@ -662,12 +658,6 @@ def _fingerprint_df(self, path_to_lobster_calc) -> pd.DataFrame: structure_path = gz_file_path # type: ignore break - # structure_path = dir_name / "POSCAR" - # if not structure_path.exists(): - # gz_file_path = Path(zpath(structure_path)) - # if gz_file_path.exists(): - # structure_path = gz_file_path - coxx = FeaturizeCOXX( path_to_coxxcar=str(coxxcar_path), path_to_icoxxlist=str(icoxxlist_path), @@ -722,15 +712,11 @@ class BatchStructureGraphs: """ Batch Featurizer that generates structure graphs with lobster data. - Args: - path_to_lobster_calcs: path to root directory consisting of all lobster calc - add_additional_data_sg: bool indicating whether to include icoop and icobi data as edge properties - which_bonds : selects which kind of bonds are analyzed. "all" is the default - start: start energy for bonding antibonding percent integration - n_jobs : parallel processes to run - - Attributes: - get_df: A pandas dataframe with summary features + :param path_to_lobster_calcs: path to root directory consisting of all lobster calc + :param add_additional_data_sg: bool indicating whether to include `icoop` and `icobi` data as edge properties + :param which_bonds: selects which kind of bonds are analyzed. "all" is the default + :param start: start energy for bonding antibonding percent integration + :param n_jobs: parallel processes to run """ @@ -745,12 +731,11 @@ def __init__( """ Generate structure graphs with LOBSTER data via multiprocessing. - Args: - path_to_lobster_calcs: path to root directory consisting of all lobster calc - add_additional_data_sg: bool indicating whether to include icoop and icobi data as edge properties - which_bonds : selects which kind of bonds are analyzed. "all" is the default - start: start energy for bonding antibonding percent integration - n_jobs : parallel processes to run + :param path_to_lobster_calcs: path to root directory consisting of all lobster calc + :param add_additional_data_sg: bool indicating whether to include `icoop` and `icobi` data as edge properties + :param which_bonds: selects which kind of bonds are analyzed. "all" is the default + :param start: start energy for bonding antibonding percent integration + :param n_jobs: parallel processes to run """ self.path_to_lobster_calcs = path_to_lobster_calcs @@ -763,6 +748,8 @@ def _get_sg_df(self, path_to_lobster_calc) -> pd.DataFrame: """ Generate a structure graph with LOBSTER data bonding analysis data. + :param path_to_lobster_calc: path to root LOBSTER calculation directory + Returns: A structure graph with LOBSTER data as edge and node properties in structure graph objects """ @@ -860,17 +847,17 @@ def get_df(self) -> pd.DataFrame: class BatchDosFeaturizer: """ - BatchFeaturizer to generate Lobster DOS moment features and fingerprints. - - Attributes: - path_to_lobster_calcs: path to root directory consisting of all lobster calc - add_element_dos_moments : add element dos moment features alongside orbital dos - normalize: bool to state to normalize the fingerprint data - n_bins: sets number for bins for fingerprint objects - e_range : range of energy relative to fermi for which moment features needs to be computed - n_jobs : number of parallel processes to run - fingerprint_type: Specify fingerprint type to compute, can accept `{s/p/d/f/}summed_{pdos/tdos}` + BatchFeaturizer to generate Lobster DOS moment features and fingerprints. + + :param path_to_lobster_calcs: path to root directory consisting of all lobster calc + :param add_element_dos_moments: add element dos moment features alongside orbital dos + :param normalize: bool to state to normalize the fingerprint data + :param n_bins: sets number for bins for fingerprint objects + :param e_range: range of energy relative to fermi for which moment features needs to be computed + :param n_jobs: number of parallel processes to run + :param fingerprint_type: Specify fingerprint type to compute, can accept `{s/p/d/f/}summed_{pdos/tdos}` (default is summed_pdos) + :param use_lso_dos: Will force featurizer to use DOSCAR.LSO.lobster instead of DOSCAR.lobster """ @@ -886,18 +873,17 @@ def __init__( use_lso_dos: bool = True, ): """ - Initialize BatchDosFeaturizer attributes. - - Args: - path_to_lobster_calcs: path to root directory consisting of all lobster calc - add_element_dos_moments : add element dos moment features alongside orbital dos - normalize: bool to state to normalize the fingerprint data - n_bins: sets number for bins for fingerprint objects - e_range : range of energy relative to fermi for which moment features needs to be computed - n_jobs : number of parallel processes to run - fingerprint_type: Specify fingerprint type to compute, can accept `{s/p/d/f/}summed_{pdos/tdos}` + Initialize BatchDosFeaturizer. + + :param path_to_lobster_calcs: path to root directory consisting of all lobster calc + :param add_element_dos_moments: add element dos moment features alongside orbital dos + :param normalize: bool to state to normalize the fingerprint data + :param n_bins: sets number for bins for fingerprint objects + :param e_range: range of energy relative to fermi for which moment features needs to be computed + :param n_jobs: number of parallel processes to run + :param fingerprint_type: Specify fingerprint type to compute, can accept `{s/p/d/f/}summed_{pdos/tdos}` (default is summed_pdos) - use_lso_dos: Will force feeaturizer to use DOSCAR.LSO.lobster instead of DOSCAR.lobster + :param use_lso_dos: Will force featurizer to use DOSCAR.LSO.lobster instead of DOSCAR.lobster """ self.path_to_lobster_calcs = path_to_lobster_calcs self.add_element_dos_moments = add_element_dos_moments @@ -962,6 +948,8 @@ def _get_dos_fingerprints_df(self, path_to_lobster_calc) -> pd.DataFrame: """ Featurize DOSCAR.lobster data into fingerprints using FeaturizeDOSCAR. + :param path_to_lobster_calc: path to root LOBSTER calculation directory. + Returns: A pandas dataframe with DOS fingerprint objects """ diff --git a/lobsterpy/featurize/core.py b/lobsterpy/featurize/core.py index 4c386194..c26c97a2 100644 --- a/lobsterpy/featurize/core.py +++ b/lobsterpy/featurize/core.py @@ -32,15 +32,10 @@ class FeaturizeLobsterpy: """ Class to featurize lobsterpy data. - Args: - path_to_lobster_calc: path to parent directory containing lobster calc outputs - path_to_json: path to lobster lightweight json - bonds: "all" or "cation-anion" bonds - orbital_resolved: bool indicating whether LobsterPy analysis is performed orbital wise - Attributes: - get_df: returns a pandas dataframe with relevant icohp statistical data as columns from - lobsterpy automatic bonding analysis - + :param path_to_lobster_calc: path to parent directory containing lobster calc outputs + :param path_to_json: path to lobster lightweight json + :param bonds: "all" or "cation-anion" bonds + :param orbital_resolved: bool indicating whether LobsterPy analysis is performed orbital wise """ def __init__( @@ -50,16 +45,7 @@ def __init__( orbital_resolved: bool = False, bonds: str = "all", ): - """ - Extract features from Lobster calculations. - - Args: - path_to_lobster_calc: path to parent directory containing lobster calc outputs - path_to_json: path to lobster lightweight json - orbital_resolved: bool indicating whether LobsterPy analysis is performed orbital wise - bonds: "all" or "cation-anion" bonds - - """ + """Initialize featurizer.""" self.path_to_json = path_to_json self.path_to_lobster_calc = path_to_lobster_calc self.orbital_resolved = orbital_resolved @@ -69,9 +55,11 @@ def get_df(self, ids: str | None = None) -> pd.DataFrame: """ Featurize LobsterPy condensed bonding analysis data. + :param ids: set index name in the pandas dataframe. Default is None. + When None, LOBSTER calc directory name is used as index name. + Returns: Returns a pandas dataframe with lobsterpy icohp statistics - """ if self.path_to_json and not self.path_to_lobster_calc: # read the lightweight lobster json files using read_lobster_lightweight_json method @@ -330,8 +318,7 @@ def read_lobster_lightweight_json(path_to_json: str | Path) -> dict: """ Read the lightweight JSON.gz files and return a Python dictionary object. - Args: - path_to_json: path to lobsterpy lightweight json file + :param path_to_json: path to lobsterpy lightweight json file Returns: Returns a dictionary with lobster summarized bonding analysis data @@ -364,10 +351,9 @@ def get_lobsterpy_cba_dict( """ Generate a Python dictionary object using the Analysis class with condensed bonding analysis data. - Args: - path_to_lobster_calc: path to lobsterpy lightweight json file - bonds: "all" or "cation-anion" bonds - orbital_resolved: bool indicating whether analysis is performed orbital wise + :param path_to_lobster_calc: path to lobsterpy lightweight json file + :param bonds: "all" or "cation-anion" bonds + :param orbital_resolved: bool indicating whether analysis is performed orbital wise Returns: Returns a dictionary with lobster summarized bonding analysis data @@ -472,11 +458,11 @@ class CoxxFingerprint(NamedTuple): includes energies, Coxx values, fingerprint type, spin type, number of bins, and bin width. :param energies: The energy values associated with the Coxx fingerprint. - :param coxx: The Coxx values corresponding to each energy. - :param fp_type: The type of the Coxx fingerprint. - :param spin_type: The spin type associated with the fingerprint. - :param n_bins: The number of bins used in the Coxx fingerprint. - :param bin_width: The width of each bin in the Coxx fingerprint. + :param coxx: The Coxx values corresponding to each energy. + :param fp_type: The type of the Coxx fingerprint. + :param spin_type: The spin type associated with the fingerprint. + :param n_bins: The number of bins used in the Coxx fingerprint. + :param bin_width: The width of each bin in the Coxx fingerprint. """ energies: np.ndarray @@ -491,20 +477,14 @@ class FeaturizeCOXX: """ Class to featurize COHPCAR, COBICAR or COOPCAR data. - Args: - path_to_coxxcar: path to COXXCAR.lobster (e.g., "COXXCAR.lobster") - path_to_icoxxlist : path to ICOXXLIST.lobster (e.g., "ICOXXLIST.lobster") - path_to_structure : path to structure file (e.g., "POSCAR") - feature_type: set the feature type for moment features and fingerprints. - Possible options are "bonding", "antibonding" or "overall" - are_cobis : bool indicating if file contains COBI/ICOBI data - are_coops : bool indicating if file contains COOP/ICOOP data - e_range : range of energy relative to fermi for which moment features needs to be computed - - Attributes: - get_df: pandas dataframe - get_coxx_fingerprint_df: pandas dataframe - + :param path_to_coxxcar: path to COXXCAR.lobster (e.g., `COXXCAR.lobster`) + :param path_to_icoxxlist: path to ICOXXLIST.lobster (e.g., `ICOXXLIST.lobster`) + :param path_to_structure: path to structure file (e.g., `POSCAR`) + :param feature_type: set the feature type for moment features and fingerprints. + Possible options are `bonding`, `antibonding` or `overall`. + :param are_cobis: bool indicating if file contains COBI/ICOBI data. + :param are_coops: bool indicating if file contains COOP/ICOOP data. + :param e_range: range of energy relative to fermi for which moment features needs to be computed """ def __init__( @@ -520,15 +500,14 @@ def __init__( """ Featurize COHPCAR, COBICAR or COOPCAR data. - Args: - path_to_coxxcar: path to COXXCAR.lobster (e.g., "COXXCAR.lobster") - path_to_icoxxlist : path to ICOXXLIST.lobster (e.g., "ICOXXLIST.lobster") - path_to_structure : path to structure file (e.g., "POSCAR") - feature_type: set the feature type for moment features and fingerprints. - Possible options are "bonding", "antibonding" or "overall" - are_cobis : bool indicating if file contains COBI/ICOBI data - are_coops : bool indicating if file contains COOP/ICOOP data - e_range : range of energy relative to fermi for which moment features needs to be computed + :param path_to_coxxcar: path to COXXCAR.lobster (e.g., `COXXCAR.lobster`) + :param path_to_icoxxlist: path to ICOXXLIST.lobster (e.g., `ICOXXLIST.lobster`) + :param path_to_structure: path to structure file (e.g., `POSCAR`) + :param feature_type: set the feature type for moment features and fingerprints. + Possible options are `bonding`, `antibonding` or `overall`. + :param are_cobis: bool indicating if file contains COBI/ICOBI data + :param are_coops: bool indicating if file contains COOP/ICOOP data + :param e_range: range of energy relative to fermi for which moment features needs to be computed """ self.path_to_coxxcar = path_to_coxxcar @@ -565,17 +544,17 @@ def get_coxx_fingerprint_df( """ Generate a COXX fingerprints dataframe. - Args: - ids: sets index of pandas dataframe - spin_type: Specify spin type. Can accept '{summed/up/down}' + :param ids: set index name in the pandas dataframe. Default is None. + When None, LOBSTER calc directory name is used as index name. + :param spin_type: Specify spin type. Can accept '{summed/up/down}' (default is summed) - binning: If true coxxs will be binned - n_bins: Number of bins to be used in the fingerprint (default is 256) - normalize: If true, normalizes the area under fp to equal to 1 (default is True) - label_list: Specify bond labels as a list for which cohp fingerprints are needed - orbital: Orbital for which fingerprint needs is to be computed. Cannot be used independently. + :param binning: If true coxxs will be binned + :param n_bins: Number of bins to be used in the fingerprint (default is 256) + :param normalize: If true, normalizes the area under fp to equal to 1 (default is True) + :param label_list: Specify bond labels as a list for which cohp fingerprints are needed + :param orbital: Orbital for which fingerprint needs is to be computed. Cannot be used independently. Always a needs label_list. - per_bond: Will scale cohp values by number of bonds i.e. length of label_list arg + :param per_bond: Will scale cohp values by number of bonds i.e. length of label_list arg (Only affects when label_list is not None) Raises: @@ -809,14 +788,13 @@ def _calc_moment_features( """ Calculate band center,width, skewness, and kurtosis of the COXX. - Args: - complete_coxx_obj: CompleteCohp object - feature_type: feature type for moment features calculation - e_range: range of energy relative to fermi for which moment features needs to be computed - label_list: List of bond labels - orbital: orbital for which moment features need to be calculated. Cannot be used independently. + :param complete_coxx_obj: CompleteCohp object + :param feature_type: feature type for moment features calculation + :param e_range: range of energy relative to fermi for which moment features needs to be computed + :param label_list: List of bond labels + :param orbital: orbital for which moment features need to be calculated. Cannot be used independently. Always needs a label_list. - per_bond: Will scale cohp values by number of bonds i.e. length of label_list arg + :param per_bond: Will scale cohp values by number of bonds i.e. length of label_list arg (Only affects when label_list is not None) Returns: @@ -927,10 +905,9 @@ def get_coxx_center( """ Get the bandwidth, defined as the first moment of the COXX. - Args: - coxx: COXX array - energies: energies corresponding COXX - e_range: range of energy to compute coxx center + :param coxx: COXX array + :param energies: energies corresponding COXX + :param e_range: range of energy to compute coxx center Returns: coxx center in eV @@ -950,13 +927,12 @@ def get_n_moment( """ Get the nth moment of COXX. - Args: - n: The order for the moment - coxx: COXX array - energies: energies array - e_range: range of energy to compute nth moment - center: Take moments with respect to the COXX center - e_range: range of energy to compute nth moment + :param n: The order for the moment + :param coxx: COXX array + :param energies: energies array + :param e_range: range of energy to compute nth moment + :param center: Take moments with respect to the COXX center + :param e_range: range of energy to compute nth moment Returns: COXX nth moment in eV @@ -998,10 +974,9 @@ def get_cohp_edge( """ Get the highest peak position of hilbert transformed COXX. - Args: - coxx: COXX array - energies: energies array - e_range: range of energy to coxx edge (max peak position) + :param coxx: COXX array + :param energies: energies array + :param e_range: range of energy to coxx edge (max peak position) Returns: COXX edge (max peak position) in eV @@ -1040,6 +1015,14 @@ def get_summarized_coxx_df( Features consist of weighted ICOXX, effective interaction number and moment features of COXX in the selected energy range. + :param ids: set index name in the pandas dataframe. Default is None. + When None, LOBSTER calc directory name is used as index name. + :param label_list: list of bond labels to be used for generating features from + COHPCAR.lobster or COOPCAR.lobster or COBICAR.lobster. Default is None. + When None, all bond labels are used. + :param per_bond: Defaults to True. When True, features are normalized + by total number of bonds in the structure. + Returns: Returns a pandas dataframe with cohp/cobi/coop related features as per input file @@ -1089,14 +1072,10 @@ class FeaturizeCharges: """ Class to compute ionicity from CHARGE.lobster data. - Args: - path_to_structure: path to POSCAR - path_to_charge : path to CHARGE.lobster (e.g., "CHARGE.lobster") - charge_type : set charge type used for computing ionicity. Possible options are "Mulliken" or "Loewdin" - - Attributes: - get_df: pandas dataframe - + :param path_to_structure: path to POSCAR + :param path_to_charge: path to CHARGE.lobster (e.g., `CHARGE.lobster`) + :param charge_type: set charge type used for computing ionicity. + Possible options are `Mulliken` or `Loewdin` """ def __init__( @@ -1108,11 +1087,10 @@ def __init__( """ Compute the Ionicity of the structure from CHARGE.lobster data. - Args: - path_to_structure: path to POSCAR - path_to_charge : path to CHARGE.lobster (e.g., "CHARGE.lobster") - charge_type : set charge type used for computing ionicity. Possible options are "Mulliken" or "Loewdin" - + :param path_to_structure: path to POSCAR + :param path_to_charge: path to CHARGE.lobster (e.g., `CHARGE.lobster`) + :param charge_type: set charge type used for computing ionicity. + Possible options are `Mulliken` or `Loewdin` """ self.path_to_structure = path_to_structure self.path_to_charge = path_to_charge @@ -1202,6 +1180,9 @@ def get_df(self, ids: str | None = None) -> pd.DataFrame: """ Return a pandas dataframe with computed ionicity as columns. + :param ids: set index name in the pandas dataframe. Default is None. + When None, LOBSTER calc directory name is used as index name. + Returns: Returns a pandas dataframe with ionicity @@ -1245,11 +1226,11 @@ class FeaturizeDoscar: """ Class to compute DOS moments and fingerprints from DOSCAR.lobster / DOSCAR.LSO.lobster. - Attributes: - path_to_structure: path to POSCAR - path_to_doscar : path to DOSCAR.lobster or DOSCAR.LSO.lobster - e_range : range of energy relative to fermi for which moment features and features needs to be computed - + :param path_to_structure: path to POSCAR + :param path_to_doscar: path to DOSCAR.lobster or DOSCAR.LSO.lobster + :param e_range: range of energy relative to fermi for which moment features and + features needs to be computed + :param add_element_dos_moments: add element dos moment features alongside orbital dos """ def __init__( @@ -1262,12 +1243,11 @@ def __init__( """ Featurize DOSCAR.lobster or DOSCAR.LSO.lobster data. - Args: - path_to_structure: path to POSCAR - path_to_doscar : path to DOSCAR.lobster or DOSCAR.LSO.lobster - e_range : range of energy relative to fermi for which moment features and features needs to be computed - add_element_dos_moments : add element dos moment features alongside orbital dos - + :param path_to_structure: path to POSCAR + :param path_to_doscar: path to DOSCAR.lobster or DOSCAR.LSO.lobster + :param e_range: range of energy relative to fermi for which moment features and + features needs to be computed + :param add_element_dos_moments: add element dos moment features alongside orbital dos """ self.path_to_structure = path_to_structure self.path_to_doscar = path_to_doscar @@ -1281,6 +1261,9 @@ def get_df(self, ids: str | None = None) -> pd.DataFrame: """ Return a pandas dataframe with computed DOS moment features as columns. + :param ids: set index name in the pandas dataframe. Default is None. + When None, LOBSTER calc directory name is used as index name. + Moment features are PDOS center, width, skewness, kurtosis and upper band edge. Returns: @@ -1360,14 +1343,14 @@ def get_fingerprint_df( """ Generate a dataframe consisting of DOS fingerprint (fp). - Args: - ids: set index of pandas dataframe - fp_type: Specify fingerprint type to compute, can accept `s/p/d/f/summed_pdos` + :param ids: set index name in the pandas dataframe. Default is None. + When None, LOBSTER calc directory name is used as index name. + :param fp_type: Specify fingerprint type to compute, can accept `s/p/d/f/summed_pdos` (default is summed_pdos) - binning: If true, the DOS fingerprint is binned using np.linspace and n_bins. + :param binning: If true, the DOS fingerprint is binned using np.linspace and n_bins. Default is True. - n_bins: Number of bins to be used in the fingerprint (default is 256) - normalize: If true, normalizes the area under fp to equal to 1. Default is True. + :param n_bins: Number of bins to be used in the fingerprint (default is 256) + :param normalize: If true, normalizes the area under fp to equal to 1. Default is True. Returns: A pandas dataframe object with DOS fingerprints From df5e10fb483f273c807e2e0767534ca6d1a7dc42 Mon Sep 17 00:00:00 2001 From: anaik Date: Thu, 30 Nov 2023 19:21:43 +0100 Subject: [PATCH 32/49] consistent doc-string formatting in cli.py --- lobsterpy/cli.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lobsterpy/cli.py b/lobsterpy/cli.py index c83ac323..1238263f 100644 --- a/lobsterpy/cli.py +++ b/lobsterpy/cli.py @@ -690,8 +690,7 @@ def _element_basis(string: str): """ Parse element and basis from string. - Args: - string: string to parse + :param string: string to parse Returns: element, basis @@ -706,8 +705,7 @@ def _potcar_symbols(string: str): """ Parse string of potcar symbols and return a list. - Args: - string: string of potcar symbols + :param string: string of potcar symbols Returns: list of potcar symbols @@ -740,8 +738,7 @@ def run(args): """ Run actions based on args. - Args: - args: args for cli + :param args: args for cli """ if args.action in [ From 5cf542f9fbd26118fc2f0b26165d9a9aa78a0039 Mon Sep 17 00:00:00 2001 From: anaik Date: Thu, 30 Nov 2023 19:22:30 +0100 Subject: [PATCH 33/49] fix doc-string formatting issues in cohp modules --- lobsterpy/cohp/analyze.py | 251 +++++++++++++++++++------------------ lobsterpy/cohp/describe.py | 90 +++++++------ 2 files changed, 170 insertions(+), 171 deletions(-) diff --git a/lobsterpy/cohp/analyze.py b/lobsterpy/cohp/analyze.py index b3e8cd3e..bb0654ec 100644 --- a/lobsterpy/cohp/analyze.py +++ b/lobsterpy/cohp/analyze.py @@ -21,39 +21,51 @@ class Analysis: """ - Class to analyze COHP/COOP/COBI data from Lobster. + Class to automatically analyze COHP/COOP/COBI populations from Lobster. + + :param are_cobis: bool indicating if file contains COBI/ICOBI data + :param are_coops: bool indicating if file contains COOP/ICOOP data + :param cutoff_icohp: Cutoff in percentage for evaluating neighbors based on ICOHP values. + cutoff_icohp*max_icohp limits the number of considered neighbours for evaluating environments. + :param path_to_charge: path to `CHARGE.lobster`. + :param path_to_cohpcar: path to `COHPCAR.lobster` or `COBICAR.lobster` or `COOPCAR.lobster` . + :param path_to_icohplist: path to `ICOHPLIST.lobster` or `ICOBILIST.lobster` or `ICOOPLIST.lobster`. + :param path_to_poscar: path to structure (e.g., `POSCAR` or `POSCAR.lobster`) + :param path_to_madelung: path to `MadelungEnergies.lobster`. + :param noise_cutoff: Sets the lower limit tolerance for ICOHPs or ICOOPs or ICOBIs considered + in analysis. + :param orbital_cutoff: Sets the minimum percentage for the orbital contribution considered to be + relevant in orbital resolved analysis. (Affects only when orbital_resolved argument is set to True) + Set it to 0 to get results of all orbitals in the detected relevant bonds. Default is to 0.05 i.e. + only analyzes if orbital contribution is 5 % or more. + :param orbital_resolved: bool indicating whether orbital wise analysis is performed + :param type_charge: If no path_to_charge is given, Valences will be used. Otherwise, Mulliken charges. + Löwdin charges cannot be selected at the moment. + :param which_bonds: Selects kinds of bonds that are analyzed. `cation-anion` is the default. + Alternatively, `all` bonds can also be selected. Support to other kinds of bonds will be + added soon. + :param summed_spins: if True, COHP `Spin.up` and `Spin.down` populations will be summed + :param start: sets the lower limit of energy for evaluation of bonding and antibonding + percentages below efermi. Defaults to None (i.e., all populations below efermi are included) Attributes: - condensed_bonding_analysis: dict including a summary of the most important bonding properties - final_dict_bonds: dict including information on ICOHPs per bond type - final_dict_ions: dict including information on environments of cations - chemenv: pymatgen.io.lobster.lobsterenv.LobsterNeighbors object - lse: LightStructureEnvironment from pymatgen - cutoff_icohp: Cutoff in percentage for evaluating neighbors based on ICOHP values. - cutoff_icohp*max_icohp limits the number of considered environments - anion_types: Set of Element objects from pymatgen - list_equivalent_sites: list of site indices of sites that indicate which sites are equivalent - e.g., [0 1 2 2 2] where site 0, 1, 2 indicate sites that are independent from each other - path_to_charge: str that describes the path to CHARGE.lobster - path_to_cohpcar: str that describes the path to COHPCAR.lobster - path_to_icohplist: str that describes the path to ICOHPLIST.lobster - path_to_poscar: str that describes path to POSCAR - path_to_madelung: str that describes path to POSCAR - are_cobis : bool indicating if file contains COBI/ICOBI data - are_coops : bool indicating if file contains COOP/ICOOP data - noise_cutoff : float that sets the lower limit of icohps or icoops or icobis considered - seq_cohps: list of cohps - seq_coord_ions: list of co-ordination environment strings for each cation - seq_equivalent_sites: seq of inequivalent sites - seq_ineq_ions: seq of inequivalent cations/sites in the structure - seq_infos_bonds (list): information on cation anion bonds (lists - of pymatgen.io.lobster.lobsterenv.ICOHPNeighborsInfo) - spg: space group information - structure: Structure object - type_charge: which charges are considered here - orbital_resolved: bool indicating whether analysis is performed - orbital wise - which_bonds: which bonds will be considered in analysis + - condensed_bonding_analysis: dict including a summary of the most important bonding properties + - final_dict_bonds: dict including information on ICOHPs per bond type + - final_dict_ions: dict including information on environments of cations + - chemenv: pymatgen.io.lobster.lobsterenv.LobsterNeighbors object + - lse: LightStructureEnvironment from pymatgen + - anion_types: Set of Element objects from pymatgen + - list_equivalent_sites: list of site indices of sites that indicate which sites are equivalent + e.g., [0 1 2 2 2] where site 0, 1, 2 indicate sites that are independent from each other + - seq_cohps: list of cohps + - seq_coord_ions: list of co-ordination environment strings for each cation + - seq_equivalent_sites: seq of inequivalent sites + - seq_ineq_ions: seq of inequivalent cations/sites in the structure + - seq_infos_bonds (list): information on cation anion bonds (lists + of pymatgen.io.lobster.lobsterenv.ICOHPNeighborsInfo) + - spg: space group information + - structure: Structure object + """ def __init__( @@ -63,40 +75,44 @@ def __init__( path_to_cohpcar: str | Path, path_to_charge: str | Path | None = None, path_to_madelung: str | Path | None = None, - which_bonds: str = "cation-anion", + are_cobis: bool = False, + are_coops: bool = False, cutoff_icohp: float = 0.1, noise_cutoff: float = 0.1, orbital_cutoff: float = 0.05, + orbital_resolved: bool = False, + start: float | None = None, summed_spins: bool = True, - are_cobis: bool = False, - are_coops: bool = False, type_charge: str | None = None, - start: float | None = None, - orbital_resolved: bool = False, + which_bonds: str = "cation-anion", ): """ - Automatically analyze bonding information with this class. - - Args: - path_to_poscar: path to POSCAR (e.g., "POSCAR") - path_to_icohplist: path to ICOHPLIST.lobster (e.g., "ICOHPLIST.lobster") - path_to_cohpcar: path to COHPCAR.lobster (e.g., "COHPCAR.lobster") - path_to_charge: path to CHARGE.lobster (e.g., "CHARGE.lobster") - path_to_madelung: path to MadelungEnergies.lobster (e.g., "MadelungEnergies.lobster") - are_cobis : bool indicating if file contains COBI/ICOBI data - are_coops : bool indicating if file contains COOP/ICOOP data - noise_cutoff : float that sets the lower limit of icohps or icoops or icobis considered - orbital_cutoff : float that sets the minimum percentage for the orbital resolved analysis. - (Affects only when orbital_resolved argument is set to True) Set it to 0 to get results - of all orbitals in the detected relevant bonds. Default is to 0.05 i.e. only analyzes - if orbital contribution is 5 % or more. - which_bonds: selects which kind of bonds are analyzed. "cation-anion" is the default - cutoff_icohp: only bonds that are stronger than cutoff_icohp*strongest ICOHP will be considered - summed_spins: if true, spins will be summed - type_charge: If no path_to_charge is given, Valences will be used. Otherwise, Mulliken charges. - Löwdin charges cannot be selected at the moment. - orbital_resolved: bool indicating whether analysis is performed orbital wise - start: start energy for integration + Initialize automatic bonding analysis. + + :param are_cobis: bool indicating if file contains COBI/ICOBI data + :param are_coops: bool indicating if file contains COOP/ICOOP data + :param cutoff_icohp: Cutoff in percentage for evaluating neighbors based on ICOHP values. + cutoff_icohp*max_icohp limits the number of considered neighbours for evaluating environments. + :param path_to_charge: path to `CHARGE.lobster`. + :param path_to_cohpcar: path to `COHPCAR.lobster` or `COBICAR.lobster` or `COOPCAR.lobster` . + :param path_to_icohplist: path to `ICOHPLIST.lobster` or `ICOBILIST.lobster` or `ICOOPLIST.lobster`. + :param path_to_poscar: path to structure (e.g., `POSCAR` or `POSCAR.lobster`) + :param path_to_madelung: path to `MadelungEnergies.lobster`. + :param noise_cutoff: Sets the lower limit tolerance for ICOHPs or ICOOPs or ICOBIs considered + in analysis. + :param orbital_cutoff: Sets the minimum percentage for the orbital contribution considered to be + relevant in orbital resolved analysis. (Affects only when orbital_resolved argument is set to True) + Set it to 0 to get results of all orbitals in the detected relevant bonds. Default is to 0.05 i.e. + only analyzes if orbital contribution is 5 % or more. + :param orbital_resolved: bool indicating whether orbital wise analysis is performed + :param type_charge: If no path_to_charge is given, Valences will be used. Otherwise, Mulliken charges. + Löwdin charges cannot be selected at the moment. + :param which_bonds: Selects kinds of bonds that are analyzed. `cation-anion` is the default. + Alternatively, `all` bonds can also be selected. Support to other kinds of bonds will be + added soon. + :param summed_spins: if True, COHP `Spin.up` and `Spin.down` populations will be summed + :param start: sets the lower limit of energy for evaluation of bonding and antibonding + percentages below efermi. Defaults to None (i.e., all populations below efermi are included) """ self.start = start @@ -215,9 +231,8 @@ def __init__(self, chemenv, valences=None): """ Test class when error was raised. - Args: - chemenv (LobsterNeighbors): LobsterNeighbors object - valences: list of valences + :param chemenv: LobsterNeighbors object + :param valences: list of valences """ if valences is None: @@ -375,12 +390,11 @@ def _get_orbital_resolved_data( """ Retrieve orbital-wise analysis data. - Args: - nameion: name of symmetrically relevant cation or anion - iion: index of symmetrically relevant cation or anion - labels: list of bond label names - bond_resolved_labels: dict of bond labels from ICOHPLIST resolved for each bond - type_pop: population type analyzed. e.g. COHP or COOP or COBI + :param nameion: name of symmetrically relevant cation or anion + :param iion: index of symmetrically relevant cation or anion + :param labels: list of bond label names + :param bond_resolved_labels: dict of bond labels from ICOHPLIST resolved for each bond + :param type_pop: population type analyzed. e.g. COHP or COOP or COBI Returns: dict consisting of relevant orbitals (contribution > 5 % to overall ICOHP or ICOBI or ICOOP), @@ -586,8 +600,7 @@ def _get_bond_resolved_data_stats(self, orb_resolved_bond_data: dict): """ Retrieve the maximum bonding and anti-bonding orbital contributions. - Args: - orb_resolved_bond_data: A dictionary with orbital names as keys and corresponding bonding data + :param orb_resolved_bond_data: A dictionary with orbital names as keys and corresponding bonding data Returns: dict with orbital data stats the site for relevant orbitals, e.g. @@ -685,10 +698,9 @@ def _get_strenghts_for_each_bond(pairs, strengths, nameion=None): """ Return a dictionary of bond strengths. - Args: - pairs: list of list including labels for the atoms, e.g., [['O3', 'Cu1'], ['O3', 'Cu1']] - strengths (list of float): list that gives the icohp strengths as a float, [-1.86287, -1.86288] - nameion: string including the name of the cation in the list, e.g Cu1 + :param pairs: list of list including labels for the atoms, e.g., [['O3', 'Cu1'], ['O3', 'Cu1']] + :param strengths: list that gives the icohp strengths as a float, [-1.86287, -1.86288] + :param nameion: string including the name of the cation in the list, e.g Cu1 Returns: dict including inormation on icohps for each bond type, e.g. @@ -725,9 +737,8 @@ def _sort_name(pair, nameion=None): """ Place the cation first in a list of name strings. - Args: - pair: ["O","Cu"] - nameion: "Cu" + :param pair: ["O","Cu"] + :param nameion: "Cu" Returns: will return list of str, e.g. ["Cu", "O"] @@ -755,11 +766,10 @@ def _sort_orbital_atom_pair( """ Place the cation first in a list of name strings and add the associated orbital name alongside the atom name. - Args: - atom_pair: list of atom pair with cation first eg., ["Cl","Na"] - label: LOBSTER relevant bond label eg ., "3" - complete_cohp: pymatgen CompleteCohp object - orb_pair: relevant orbital pair eg., "2px-3s" + :param atom_pair: list of atom pair with cation first eg., ["Cl","Na"] + :param label: LOBSTER relevant bond label eg ., "3" + :param complete_cohp: pymatgen CompleteCohp object + :param orb_pair: relevant orbital pair eg., "2px-3s" Returns: will return list of str, e.g. ["Na(2px)", "Cl(3s)"] @@ -796,11 +806,10 @@ def _get_antibdg_states(self, cohps, labels, nameion=None, limit=0.01): e.g., similar to: {'Cu-O': True, 'Cu-F': True} - Args: - cohps: list of pymatgen.electronic_structure.cohp.Cohp objects - labels: ['2 x Cu-O', '4 x Cu-F'] - nameion: string of the cation name, e.g. "Cu" - limit: limit to detect antibonding states + :param cohps: list of pymatgen.electronic_structure.cohp.Cohp objects + :param labels: ['2 x Cu-O', '4 x Cu-F'] + :param nameion: string of the cation name, e.g. "Cu" + :param limit: limit to detect antibonding states Returns: dict including in formation on whether antibonding interactions exist, @@ -840,10 +849,9 @@ def _integrate_antbdstates_below_efermi_for_set_cohps(self, labels, cohps, namei e.g. output: {'Cu-O': {'integral': 4.24374775705, 'perc': 5.7437713186999995}, 'Cu-F': {'integral': 3.07098300965, 'perc': 4.25800841445}} - Args: - cohps: list of pymatgen.electronic_structure.cohp.Cohp objects - labels: ['2 x Cu-O', '4 x Cu-F'] - nameion: string of the cation name, e.g. "Cu" + :param cohps: list of pymatgen.electronic_structure.cohp.Cohp objects + :param labels: ['2 x Cu-O', '4 x Cu-F'] + :param nameion: string of the cation name, e.g. "Cu" Returns: dict including in formation on whether antibonding interactions exist, @@ -907,9 +915,8 @@ def _integrate_antbdstates_below_efermi(self, cohp, start): If COHPstartEnergy value does not cover entire range of VASP calculations then absolute value of ICOHP_sum might not be equivalent to (bonding- antibonding) integral values. - Args: - cohp: cohp object - start: integration start energy in eV , eg start = -15 + :param cohp: cohp object + :param start: integration start energy in eV , eg start = -15 Returns: absolute value of antibonding, percentage value of antibonding, @@ -928,9 +935,8 @@ def integrate_positive(y, x): """ Integrate only bonding interactions of COHPs. - Args: - y: COHP values - x: Energy values + :param y: COHP values + :param x: Energy values Returns: integrated value of bonding interactions @@ -946,9 +952,8 @@ def integrate_negative(y, x): """ Integrate only anti-bonding interactions of COHPs. - Args: - y: COHP values - x: Energy values + :param y: COHP values + :param x: Energy values Returns: integrated value of anti-bonding interactions @@ -1023,21 +1028,20 @@ def _get_pop_type(self): @staticmethod def _get_bond_dict( - bond_strength_dict, - small_antbd_dict, - nameion=None, - large_antbd_dict=None, - type_pop=None, + bond_strength_dict: dict, + small_antbd_dict: dict, + nameion: str | None = None, + large_antbd_dict: dict | None = None, + type_pop: str | None = None, ): """ Return a bond_dict that contains information for each site. - Args: - bond_strength_dict (dict): dict with bond names as key and lists of bond strengths as items - small_antbd_dict (dict): dict including if there are antibonding interactions, {'Yb-Sb': False} - nameion (str): name of the cation, e.g. Yb - large_antbd_dict: will be implemented later - type_pop: population type analyzed. eg. COHP + :param bond_strength_dict: dict with bond names as key and lists of bond strengths as items + :param small_antbd_dict: dict including if there are antibonding interactions, {'Yb-Sb': False} + :param nameion: name of the cation, e.g. Yb + :param large_antbd_dict: will be implemented later + :param type_pop: population type analyzed. eg. COHP Returns: Eg., if type_pop == 'COHP', will return @@ -1432,20 +1436,19 @@ def get_lobster_calc_quality_summary( """ Analyze LOBSTER calculation quality. - Args: - path_to_poscar: path to structure file - path_to_lobsterout: path to lobsterout file - path_to_lobsterin: path to lobsterin file - path_to_potcar: path to VASP potcar file - potcar_symbols: list of potcar symbols from postcar file (can be used if no potcar available) - path_to_charge: path to CHARGE.lobster file - path_to_bandoverlaps: path to bandOverlaps.lobster file - path_to_doscar: path to DOSCAR.lobster or DOSCAR.LSO.lobster file - path_to_vasprun: path to vasprun.xml file - dos_comparison: will compare DOS from VASP and LOBSTER and return tanimoto index - e_range: energy range for DOS comparisons - n_bins: number of bins to discretize DOS for comparisons - bva_comp: Compares LOBSTER charge signs with Bond valence charge signs + :param path_to_poscar: path to structure file + :param path_to_lobsterout: path to lobsterout file + :param path_to_lobsterin: path to lobsterin file + :param path_to_potcar: path to VASP potcar file + :param potcar_symbols: list of potcar symbols from postcar file (can be used if no potcar available) + :param path_to_charge: path to CHARGE.lobster file + :param path_to_bandoverlaps: path to bandOverlaps.lobster file + :param path_to_doscar: path to DOSCAR.lobster or DOSCAR.LSO.lobster file + :param path_to_vasprun: path to vasprun.xml file + :param dos_comparison: will compare DOS from VASP and LOBSTER and return tanimoto index + :param e_range: energy range for DOS comparisons + :param n_bins: number of bins to discretize DOS for comparisons + :param bva_comp: Compares LOBSTER charge signs with Bond valence charge signs Returns: A dict of summary of LOBSTER calculation quality by analyzing basis set used, diff --git a/lobsterpy/cohp/describe.py b/lobsterpy/cohp/describe.py index 2c3dfa42..fb78ce8d 100644 --- a/lobsterpy/cohp/describe.py +++ b/lobsterpy/cohp/describe.py @@ -21,8 +21,7 @@ def __init__(self, analysis_object): """ Generate a text description for all relevant bonds. - Args: - analysis_object: Analysis object from lobsterpy.analysis + :param analysis_object: Analysis object from lobsterpy.analysis """ self.analysis_object = analysis_object self.set_description() @@ -274,11 +273,10 @@ def _generate_orbital_resolved_analysis_text( """ Generate text from orbital-resolved analysis data of the most relevant COHP, COOP, or COBI. - Args: - orbital_resolved_data : dict of orbital data from condensed bonding analysis object - ion: name of ion at the site - atom_name: name of atomic speice to which ion is bonded - type_pop: population type analysed could be "COHP" or "COOP" or "COBI" + :param orbital_resolved_data: dict of orbital data from condensed bonding analysis object + :param ion: name of ion at the site + :param atom_name: name of atomic speice to which ion is bonded + :param type_pop: population type analysed could be "COHP" or "COOP" or "COBI" Returns: A python list with text describing the orbital which contributes @@ -438,28 +436,27 @@ def _generate_orbital_resolved_analysis_text( def plot_cohps( self, - save=False, - filename=None, - ylim=[-4, 2], - xlim=None, - integrated=False, - title="", - sigma=None, - hide=False, + xlim: list[float] | None = None, + ylim: list[float] | None = [-4, 2], + integrated: bool = False, + title: str = "", + save: bool = False, + filename: str | None = None, + sigma: float | None = None, + hide: bool = False, ): """ Automatically generate plots of the most relevant COHPs, COOPs, or COBIs. - Args: - save (bool): will save the plot to a file - filename (str/Path): name of the file to save the plot. - ylim (list of float): energy scale that is shown in plot (eV) - xlim(list of float): energy range for COHPs in eV - integrated (bool): if True, integrated COHPs will be shown - sigma: Standard deviation of Gaussian broadening applied to + :param save: will save the plot to a file + :param filename: name of the file to save the plot. + :param ylim: energy scale that is shown in plot (eV) + :param xlim: energy range for COHPs in eV + :param integrated: if True, integrated COHPs will be shown + :param sigma: Standard deviation of Gaussian broadening applied to population data. If None, no broadening will be added. - title: sets the title of figure generated - hide (bool): if True, the plot will not be shown. + :param title: sets the title of figure generated + :param hide: if True, the plot will not be shown. Returns: A matplotlib object. @@ -495,9 +492,9 @@ def plot_cohps( if save: if len(seq_ineq_cations) > 1: if isinstance(filename, str): - filename = Path(filename) + filename = Path(filename) # type: ignore filename_new = ( - filename.parent / f"{filename.stem}-{iplot}{filename.suffix}" + filename.parent / f"{filename.stem}-{iplot}{filename.suffix}" # type: ignore ) else: filename_new = filename @@ -510,32 +507,31 @@ def plot_cohps( def plot_interactive_cohps( self, - save_as_html=False, - filename=None, - ylim=None, - xlim=None, - integrated=False, - title="", - sigma=None, - label_resolved=False, - orbital_resolved=False, - hide=False, + ylim: list[float] | None = None, + xlim: list[float] | None = None, + save_as_html: bool = False, + filename: str | None = None, + integrated: bool = False, + title: str = "", + sigma: float | None = None, + label_resolved: bool = False, + orbital_resolved: bool = False, + hide: bool = False, ): """ Automatically generate interactive plots of the most relevant COHPs, COBIs or COOPs. - Args: - save_as_html (bool): will save the plot to a html file - filename (str/Path): name of the file to save the plot. - ylim (list of float): energy scale that is shown in plot (eV) - xlim (list of float): energy range for COHPs in eV - integrated (bool): if True, integrated COHPs will be shown - sigma: Standard deviation of Gaussian broadening applied to + :param save_as_html: will save the plot to a html file + :param filename: name of the file to save the plot. + :param ylim: energy scale that is shown in plot (eV) + :param xlim: energy range for COHPs in eV + :param integrated: if True, integrated COHPs will be shown + :param sigma: Standard deviation of Gaussian broadening applied to population data. If None, no broadening will be added. - label_resolved: if true, relevant cohp curves will be further resolved based on band labels - orbital_resolved: if true, relevant orbital interactions in cohp curves will be added to figure - title : Title of the interactive plot - hide (bool): if True, the plot will not be shown. + :param label_resolved: if true, relevant cohp curves will be further resolved based on band labels + :param orbital_resolved: if true, relevant orbital interactions in cohp curves will be added to figure + :param title: Title of the interactive plot + :param hide: if True, the plot will not be shown. Returns: A plotly.graph_objects.Figure object. From 346f550d334ebe97c7115f4136f08258113dd3ec Mon Sep 17 00:00:00 2001 From: anaik Date: Thu, 30 Nov 2023 20:22:45 +0100 Subject: [PATCH 34/49] add missing type hints --- lobsterpy/cohp/analyze.py | 33 ++++++++++++++++++---------- lobsterpy/cohp/describe.py | 8 +++---- lobsterpy/featurize/batch.py | 18 +++++++++------- lobsterpy/featurize/core.py | 4 ++-- lobsterpy/plotting/__init__.py | 36 +++++++++++++++++-------------- lobsterpy/structuregraph/graph.py | 4 ++-- 6 files changed, 59 insertions(+), 44 deletions(-) diff --git a/lobsterpy/cohp/analyze.py b/lobsterpy/cohp/analyze.py index bb0654ec..44724549 100644 --- a/lobsterpy/cohp/analyze.py +++ b/lobsterpy/cohp/analyze.py @@ -258,7 +258,7 @@ def __init__(self, chemenv, valences=None): # make a new list self.lse = Lse(self.chemenv.list_coords, self.chemenv.valences) - def get_information_all_bonds(self, summed_spins=True): + def get_information_all_bonds(self, summed_spins: bool = True): """ Gather all information on the bonds within the compound with this method. @@ -385,7 +385,12 @@ def get_site_bond_resolved_labels(self): return label_data def _get_orbital_resolved_data( - self, nameion, iion, labels, bond_resolved_labels, type_pop + self, + nameion: str, + iion: int, + labels: list[str], + bond_resolved_labels: dict[str, list[str]], + type_pop: str, ): """ Retrieve orbital-wise analysis data. @@ -444,7 +449,7 @@ def _get_orbital_resolved_data( cohp=cohp_summed, start=self.start ) - orb_bonding_dict_data = {} + orb_bonding_dict_data = {} # type: ignore # For each orbital collect the contributions of summed bonding # and antibonding interactions separately for orb in available_orbitals: @@ -590,7 +595,7 @@ def _get_orbital_resolved_data( }, } - orb_bonding_dict_data["relevant_bonds"] = bond_labels + orb_bonding_dict_data["relevant_bonds"] = bond_labels # type: ignore orb_resolved_bond_info[bond_resolved_label_key] = orb_bonding_dict_data @@ -694,7 +699,9 @@ def get_site_orbital_resolved_labels(self): return orb_plot_data @staticmethod - def _get_strenghts_for_each_bond(pairs, strengths, nameion=None): + def _get_strenghts_for_each_bond( + pairs: list[list[str]], strengths: list[float], nameion: str | None = None + ): """ Return a dictionary of bond strengths. @@ -708,7 +715,7 @@ def _get_strenghts_for_each_bond(pairs, strengths, nameion=None): """ - dict_strenghts = {} + dict_strenghts = {} # type: ignore for pair, strength in zip(pairs, strengths): if nameion is not None: @@ -733,7 +740,7 @@ def _get_strenghts_for_each_bond(pairs, strengths, nameion=None): return dict_strenghts @staticmethod - def _sort_name(pair, nameion=None): + def _sort_name(pair: list[str], nameion: str | None = None): """ Place the cation first in a list of name strings. @@ -758,7 +765,7 @@ def _sort_name(pair, nameion=None): @staticmethod def _sort_orbital_atom_pair( - atom_pair: list, + atom_pair: list[str], label: str, complete_cohp: CompleteCohp, orb_pair: str, @@ -800,7 +807,9 @@ def _sort_orbital_atom_pair( return orb_atom_list - def _get_antibdg_states(self, cohps, labels, nameion=None, limit=0.01): + def _get_antibdg_states( + self, cohps, labels: list[str], nameion: str | None = None, limit=0.01 + ): """ Return a dictionary containing information on anti-bonding states. @@ -837,7 +846,9 @@ def _get_antibdg_states(self, cohps, labels, nameion=None, limit=0.01): return dict_antibd - def _integrate_antbdstates_below_efermi_for_set_cohps(self, labels, cohps, nameion): + def _integrate_antbdstates_below_efermi_for_set_cohps( + self, labels: list[str], cohps, nameion: str + ): """ Return a dictionary containing information on antibonding states. @@ -902,7 +913,7 @@ def _integrate_antbdstates_below_efermi_for_set_cohps(self, labels, cohps, namei return dict_bd_antibd - def _integrate_antbdstates_below_efermi(self, cohp, start): + def _integrate_antbdstates_below_efermi(self, cohp, start: float | None): """ Integrate the cohp data to compute bonding and anti-bonding contribution below efermi. diff --git a/lobsterpy/cohp/describe.py b/lobsterpy/cohp/describe.py index fb78ce8d..cbc75bf7 100644 --- a/lobsterpy/cohp/describe.py +++ b/lobsterpy/cohp/describe.py @@ -574,12 +574,11 @@ def plot_interactive_cohps( return plot @staticmethod - def _coordination_environment_to_text(ce): + def _coordination_environment_to_text(ce: str): """ Convert a coordination environment string into a text description of the environment. - Args: - ce (str): output from ChemEnv package (e.g., "O:6") + :param ce: output from ChemEnv package (e.g., "O:6") Returns: A text description of coordination environment @@ -790,8 +789,7 @@ def get_calc_quality_description(quality_dict): """ Generate a text description of the LOBSTER calculation quality. - Args: - quality_dict: python dictionary from lobsterpy.analysis.get_lobster_calc_quality_summary + :param quality_dict: python dictionary from lobsterpy.analysis.get_lobster_calc_quality_summary """ text_des = [] diff --git a/lobsterpy/featurize/batch.py b/lobsterpy/featurize/batch.py index e6c4645c..3c572ecd 100644 --- a/lobsterpy/featurize/batch.py +++ b/lobsterpy/featurize/batch.py @@ -85,7 +85,7 @@ def __init__( self.e_range = e_range self.n_jobs = n_jobs - def _featurizelobsterpy(self, file_name_or_path) -> pd.DataFrame: + def _featurizelobsterpy(self, file_name_or_path: str | Path) -> pd.DataFrame: """ Featurize Lobsterpy condensed bonding analysis data. @@ -114,7 +114,7 @@ def _featurizelobsterpy(self, file_name_or_path) -> pd.DataFrame: return featurize_lobsterpy.get_df() - def _featurizecoxx(self, path_to_lobster_calc) -> pd.DataFrame: + def _featurizecoxx(self, path_to_lobster_calc: str | Path) -> pd.DataFrame: """ Featurize COHP/COBI/COOPCAR data using FeaturizeCOXX. @@ -257,7 +257,7 @@ def _featurizecoxx(self, path_to_lobster_calc) -> pd.DataFrame: return df - def _featurizecharges(self, path_to_lobster_calc) -> pd.DataFrame: + def _featurizecharges(self, path_to_lobster_calc: str | Path) -> pd.DataFrame: """ Featurize CHARGE.lobster.gz data that using FeaturizeCharges. @@ -508,7 +508,7 @@ def get_similarity_matrix_df(self) -> pd.DataFrame: ) @staticmethod - def _fp_to_dict(fp) -> dict: + def _fp_to_dict(fp: CoxxFingerprint) -> dict: """ Convert a fingerprint obj into a dictionary. @@ -582,7 +582,7 @@ def _get_fp_similarity( ) return np.dot(vec1, vec2) / rescale - def _fingerprint_df(self, path_to_lobster_calc) -> pd.DataFrame: + def _fingerprint_df(self, path_to_lobster_calc: str | Path) -> pd.DataFrame: """ Get fingerprint object dataframe via FeaturizeCOXX.get_coxx_fingerprint_df. @@ -744,7 +744,7 @@ def __init__( self.start = start self.n_jobs = n_jobs - def _get_sg_df(self, path_to_lobster_calc) -> pd.DataFrame: + def _get_sg_df(self, path_to_lobster_calc: str | Path) -> pd.DataFrame: """ Generate a structure graph with LOBSTER data bonding analysis data. @@ -894,7 +894,7 @@ def __init__( self.n_bins = n_bins self.use_lso_dos = use_lso_dos - def _get_dos_moments_df(self, path_to_lobster_calc) -> pd.DataFrame: + def _get_dos_moments_df(self, path_to_lobster_calc: str | Path) -> pd.DataFrame: """ Featurize DOSCAR.lobster data using FeaturizeDOSCAR. @@ -944,7 +944,9 @@ def _get_dos_moments_df(self, path_to_lobster_calc) -> pd.DataFrame: return df - def _get_dos_fingerprints_df(self, path_to_lobster_calc) -> pd.DataFrame: + def _get_dos_fingerprints_df( + self, path_to_lobster_calc: str | Path + ) -> pd.DataFrame: """ Featurize DOSCAR.lobster data into fingerprints using FeaturizeDOSCAR. diff --git a/lobsterpy/featurize/core.py b/lobsterpy/featurize/core.py index c26c97a2..b909073a 100644 --- a/lobsterpy/featurize/core.py +++ b/lobsterpy/featurize/core.py @@ -783,7 +783,7 @@ def _calc_moment_features( e_range: list[float], label_list: list[str] | None = None, orbital: str | None = None, - per_bond=True, + per_bond: bool = True, ) -> tuple[float, float, float, float, float]: """ Calculate band center,width, skewness, and kurtosis of the COXX. @@ -1007,7 +1007,7 @@ def get_summarized_coxx_df( self, ids: str | None = None, label_list: list[str] | None = None, - per_bond=True, + per_bond: bool = True, ) -> pd.DataFrame: """ Get a pandas dataframe with COXX features. diff --git a/lobsterpy/plotting/__init__.py b/lobsterpy/plotting/__init__.py index 78c5d325..6751ac4a 100644 --- a/lobsterpy/plotting/__init__.py +++ b/lobsterpy/plotting/__init__.py @@ -322,7 +322,9 @@ def add_dos(self, label: str, dos: LobsterCompleteDos) -> None: "efermi": efermi, } - def add_site_orbital_dos(self, dos: LobsterCompleteDos, orbital, site_index): + def add_site_orbital_dos( + self, dos: LobsterCompleteDos, orbital: str, site_index: int + ): """ Add orbital dos at particular site. @@ -573,7 +575,7 @@ class InteractiveCohpPlotter(CohpPlotter): "#999999", ] - def add_cohp(self, label, cohp): + def add_cohp(self, label: str, cohp: Cohp): """ Add COHP object to the plotter. @@ -822,7 +824,7 @@ def add_all_relevant_cohps( ) def add_cohps_by_lobster_label( - self, analyse: Analysis, label_list: list, suffix: str = "" + self, analyse: Analysis, label_list: list[str], suffix: str = "" ): """ Add COHPs explicitly specified in label list. @@ -858,7 +860,9 @@ def add_cohps_by_lobster_label( } ) - def add_cohps_from_plot_data(self, plot_data_dict: dict, suffix: str = ""): + def add_cohps_from_plot_data( + self, plot_data_dict: dict[str, Cohp], suffix: str = "" + ): """ Add all relevant COHPs for specified bond type from lobster lightweight json.gz file. @@ -902,14 +906,14 @@ def add_cohps_from_plot_data(self, plot_data_dict: dict, suffix: str = ""): def get_plot( self, - xlim=None, - rangeslider=False, - ylim=None, - plot_negative=None, - integrated=False, - invert_axes=True, - sigma=None, - colors=None, + xlim: list[float] | None = None, + rangeslider: bool = False, + ylim: list[float] | None = None, + plot_negative: bool | None = None, + integrated: bool = False, + invert_axes: bool = True, + sigma: float | None = None, + colors: list[str] | None = None, ): """ Get an interactive plotly figure showing the COHPs. @@ -963,7 +967,7 @@ def get_plot( palette = InteractiveCohpPlotter.COLOR_PALETTE if colors is None else colors pal_iter = cycle(palette) - traces = {} + traces = {} # type: ignore for k, v in self._cohps.items(): traces.update({k: []}) for label in v: @@ -1097,9 +1101,9 @@ def _insert_number_of_bonds_in_label( @staticmethod def _get_plot_label_for_label_resolved( structure: Structure, - label_list: list, + label_list: list[str], complete_cohp: CompleteCohp, - orb_list: list, + orb_list: list[str], label_resolved: bool = False, orbital_resolved: bool = False, ) -> str: @@ -1176,7 +1180,7 @@ def __init__(self, are_coops: bool = False, are_cobis: bool = False): self.are_cobis = are_cobis self._icohps = {} # type: ignore - def add_icohps(self, label, icohpcollection: IcohpCollection): + def add_icohps(self, label: str, icohpcollection: IcohpCollection): """ Add ICOHPs or ICOBIs or ICOOPS for plotting. diff --git a/lobsterpy/structuregraph/graph.py b/lobsterpy/structuregraph/graph.py index a1d66cd7..191bd75b 100644 --- a/lobsterpy/structuregraph/graph.py +++ b/lobsterpy/structuregraph/graph.py @@ -52,7 +52,7 @@ def __init__( path_to_cohpcar: str | Path, path_to_icohplist: str | Path, path_to_madelung: str | Path, - add_additional_data_sg=True, + add_additional_data_sg: bool = True, path_to_icooplist: str | Path | None = None, path_to_icobilist: str | Path | None = None, which_bonds: str = "all", @@ -71,7 +71,7 @@ def __init__( "Please provide path_to_icooplist and path_to_icobilist" ) else: - self.add_additional_data_sg = add_additional_data_sg + self.add_additional_data_sg = add_additional_data_sg # type: ignore self.path_to_poscar = path_to_poscar self.path_to_charge = path_to_charge From cd0436cb4d824c9aee415851c15737ebd1871fff Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 1 Dec 2023 14:06:48 +0100 Subject: [PATCH 35/49] add POSCAR.lobster support tip --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4889b557..09614564 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,13 @@ # Getting started LobsterPy Logo which consists of a green Python and a red Lobster -This is a package that enables automatic plotting and summaries of Lobster outputs. You can download Lobster on [http://www.cohp.de](http://www.cohp.de). Currently, only VASP/Lobster computations are supported. +This is a package that enables automatic plotting and summaries of Lobster outputs. Download LOBSTER from [http://www.cohp.de](http://www.cohp.de). + +:::{tip} +Recently released [LOBSTER 5.0](https://schmeling.ac.rwth-aachen.de/cohp/index.php?menuID=6) now generates `POSCAR.lobster` for any type of LOBSTER calculation by default (This file has same format as POSCAR from VASP). Thus, LobsterPy in principle now supports usage with **all** DFT codes supported by LOBSTER and is **not** anymore limited to `VASP`. Almost all of the core functionalites implemented could be used. User just needs to use `POSCAR.lobster` for `path_to_poscar` and `-fstruct` argument in python and cli interface, respectively. + +Only functionality limited to VASP is DOS comparisons and basis set analysis in `Analysis.calc_quality_summary` as these rely on typical VASP outputs namely `vasprun.xml` and `POTCARs` respectively. +::: Please note that LobsterPy relies on the LOBSTER computation output files. Thus, it will be only able to analyze data that has been computed in the LOBSTER run. From 4f304451c76202d2ca45aee654a494f4e017dc87 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 1 Dec 2023 14:07:15 +0100 Subject: [PATCH 36/49] update tutorial --- docs/tutorial/index.rst | 12 +- docs/tutorial/tutorial.ipynb | 459 +++++++++++++++++++++++++++++------ 2 files changed, 384 insertions(+), 87 deletions(-) diff --git a/docs/tutorial/index.rst b/docs/tutorial/index.rst index dc98c160..8080be40 100644 --- a/docs/tutorial/index.rst +++ b/docs/tutorial/index.rst @@ -3,15 +3,11 @@ Tutorial Written by Aakash Naik (aakash.naik@bam.de) based on suggestions provided by Prof. Dr. Janine George (janine.george@bam.de) -.. note:: - - To download Lobster, please visit http://www.cohp.de. Currently, only VASP/Lobster computations are supported. - Prerequisites -* Familiar with LOBSTER software and its output files -* Familiar fundamental aspects guide of the LobsterPy package. If not please read the guide before proceeding. +* Familiar with `LOBSTER software `_ and its output files +* Familiar with the :doc:`../fundamentals/index` guide. If not please read that guide before proceeding. * Basic Python knowledge @@ -19,8 +15,8 @@ This tutorial will demonstrate how to use the Lobsterpy package using example co 1. Automatically analyze the lobster outputs using python interface 2. Generate custom plots via plotting utilities -3. Use featurizer to extract LOBSTER bonding analysis data as features for ML studies -4. Use structuregraph to generate graph objects consisiting of LOBSTER data +3. Use structuregraph to generate graph objects consisiting of LOBSTER data +4. Use featurizer to extract LOBSTER bonding analysis data as features for ML studies 5. Get automatic analysis results and plots using command line utilities .. toctree:: diff --git a/docs/tutorial/tutorial.ipynb b/docs/tutorial/tutorial.ipynb index 3fd30b1c..014c5bc2 100644 --- a/docs/tutorial/tutorial.ipynb +++ b/docs/tutorial/tutorial.ipynb @@ -10,14 +10,25 @@ }, { "cell_type": "markdown", - "id": "42969be6", + "id": "dddc8754", "metadata": {}, "source": [ - "## Using Analysis, Description class and automatic plotting\n", - "\n", - "For this tutorial we will use the [test data](https://github.com/JaGeo/LobsterPy/tests/test_data) available that can be downloaded from our git repository.\n", + "For this tutorial we will use the [test data](https://github.com/JaGeo/LobsterPy/tests/test_data) that can be downloaded from our git repository using the following commands.\n", "\n", - "Lets first import the necessary modules" + "```bash\n", + "git clone --filter=blob:none --no-checkout https://github.com/JaGeo/LobsterPy.git\n", + "cd LobsterPy\n", + "git sparse-checkout set tests/test_data/*\n", + "git read-tree -mu HEAD\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "42969be6", + "metadata": {}, + "source": [ + "## Usage of Analysis, Description class and automatic plotting" ] }, { @@ -25,7 +36,9 @@ "id": "33ffc7dc", "metadata": {}, "source": [ - "### Basic usage : Analysis, Description" + "### Basic usage : Analysis, Description\n", + "\n", + "Lets first import the necessary modules" ] }, { @@ -44,6 +57,32 @@ "warnings.filterwarnings('ignore')" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "8662ed50", + "metadata": { + "tags": [ + "remove-cell" + ] + }, + "outputs": [], + "source": [ + "# Directory of your VASP and Lobster computations\n", + "directory = \"../../tests/test_data/CdF_comp_range/\"" + ] + }, + { + "cell_type": "markdown", + "id": "50161895", + "metadata": {}, + "source": [ + "```python\n", + "#### Change directory to your Lobster computations (Change this cell block type to Code and remove formatting when executing locally)\n", + "directory = \"Lobsterpy/tests/test_data/CdF_comp_range/\"\n", + "```" + ] + }, { "cell_type": "code", "execution_count": null, @@ -51,9 +90,6 @@ "metadata": {}, "outputs": [], "source": [ - "# Directory of your VASP and Lobster computations\n", - "directory = \"../../tests/test_data/CdF_comp_range/\"\n", - "\n", "# Initialize Analysis object\n", "analyse = Analysis(\n", " path_to_poscar=os.path.join(directory, \"POSCAR.gz\"),\n", @@ -71,7 +107,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Initialize Description object and get text description of the analysis\n", + "# Initialize Description object and to get text description of the analysis\n", "describe = Description(analysis_object=analyse)\n", "describe.write_description()" ] @@ -83,7 +119,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Get static plots for relevant bonds\n", + "# Get static plots for detected relevant bonds\n", "describe.plot_cohps(ylim=[-10, 2], xlim=[-4, 4])" ] }, @@ -109,7 +145,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Dict summarizing the automaitic analysis results\n", + "# Dict summarizing the automatic analysis results\n", "analyse.condensed_bonding_analysis" ] }, @@ -141,7 +177,7 @@ "metadata": {}, "source": [ ":::{note}\n", - "You can also perform automatic analysis using `COBICAR(ICOBILIST.lobster)` or `COOPCAR(ICOOPLIST.lobster)`. You would need to set `are_cobis`/`are_coops` to `True` depending on type of file you decide to analyze when you initialize Analysis object. And also change the default `noise_cutoff` value to 0.001 or lower as ICOOP and ICOBI have lower values. Below is an example code snippet\n", + "You can also perform automatic analysis using `COBICAR(ICOBILIST.lobster)` or `COOPCAR(ICOOPLIST.lobster)`. You would need to set `are_cobis`/`are_coops` to `True` depending on type of file you decide to analyze when you initialize Analysis object. And also change the default `noise_cutoff` value to 0.001 or lower as ICOOP and ICOBI have typicall smaller values and have different units compared to ICOHP. Below is an example code snippet\n", ":::\n", "\n", "```python\n", @@ -156,7 +192,7 @@ ")\n", "```\n", "\n", - "Rest of the things to access the results are same as above." + "Rest of the things to access the results and plots are same as above." ] }, { @@ -218,7 +254,7 @@ "metadata": {}, "source": [ ":::{note}\n", - "You can get plots from orbital resolved anaylsis only when `orbital_resolved` arg to `True` when initializing Analysis object. If this is not done, you will run into errors. Also only interactive plotter will plot the results of orbital resolved anaylsis as static plots will not be much readable. In anycase you can generate static plots if you need to, you will find how to use the plotters below in the tutorial\n", + "You can get plots from orbital resolved anaylsis only when `orbital_resolved` arg to `True` when initializing Analysis object. If this is not done, you will run into errors. Also only interactive plotter will plot the results of orbital resolved anaylsis as static plots will not be much readable. In anycase you can generate static plots if you need to, you will find how to use the plotters available in LobsterPy further in the Plotter usage section of the tutorial\n", ":::" ] }, @@ -251,20 +287,41 @@ "id": "c1b80a34", "metadata": {}, "source": [ - "#### Get LOBSTER calculation quality and description" + "### Get LOBSTER calculation quality and description\n", + "\n", + "This utility provides a quick overview of your LOBSTER calculation quality by reading the charge spilling and band overlaps file (if these are generated during LOBSTER runs). Optionally one can also obtain atoms charge classification comparisons with BVA method and comparison between DOS from LOBSTER and VASP.\n", + "\n", + ":::{note}\n", + "The DOS comparisons and basis set utilized analysis at the moment is Limited to VASP calculations only. Support to other code output will be added in future. \n", + ":::" ] }, { "cell_type": "code", "execution_count": null, "id": "a968f712", - "metadata": {}, + "metadata": { + "tags": [ + "remove-cell" + ] + }, "outputs": [], "source": [ "# Directory to your VASP and Lobster computations\n", "directory = \"../../tests/test_data/K3Sb/\"" ] }, + { + "cell_type": "markdown", + "id": "f96ea7e6", + "metadata": {}, + "source": [ + "```python\n", + "#### Change directory to your Lobster computations (Change this cell block type to Code and remove formatting when executing locally)\n", + "directory = \"LobsterPy/tests/test_data/K3Sb/\"\n", + "```" + ] + }, { "cell_type": "code", "execution_count": null, @@ -314,14 +371,14 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "240ae59d", "metadata": {}, "outputs": [], "source": [ "from matplotlib import style\n", "from pymatgen.io.lobster import Doscar\n", - "from lobsterpy.plotting import InteractiveCohpPlotter, PlainCohpPlotter, PlainDosPlotter, get_style_list" + "from lobsterpy.plotting import InteractiveCohpPlotter, IcohpDistancePlotter, PlainCohpPlotter, PlainDosPlotter, get_style_list" ] }, { @@ -435,7 +492,11 @@ "cell_type": "code", "execution_count": null, "id": "b3a9758b", - "metadata": {}, + "metadata": { + "tags": [ + "remove-cell" + ] + }, "outputs": [], "source": [ "# Load Lobster DOS\n", @@ -443,6 +504,16 @@ " structure_file='../../tests/test_data/NaCl_comp_range/POSCAR.gz')" ] }, + { + "cell_type": "raw", + "id": "644a8c1c", + "metadata": {}, + "source": [ + "# Load Lobster DOS (Change this cell block type to Code when executing locally)\n", + "dos = Doscar(doscar='LobsterPy/tests/test_data/NaCl_comp_range/DOSCAR.lobster.gz',\n", + " structure_file='LobsterPy/tests/test_data/NaCl_comp_range/POSCAR.gz')" + ] + }, { "cell_type": "markdown", "id": "6b75cf61", @@ -490,12 +561,105 @@ "dos_plotter.get_plot(xlim=[-10, 3]);" ] }, + { + "cell_type": "markdown", + "id": "e0d2525e", + "metadata": {}, + "source": [ + "## Generate structure graph objects with LOBSTER data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45988996", + "metadata": {}, + "outputs": [], + "source": [ + "from lobsterpy.structuregraph.graph import LobsterGraph" + ] + }, + { + "cell_type": "markdown", + "id": "f61fa956", + "metadata": {}, + "source": [ + "Below code snippet will generate a networkx graph object with ICOHP, ICOOP and ICOBI data as edge properites and charges as node properties." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29bea103", + "metadata": { + "tags": [ + "remove-cell" + ] + }, + "outputs": [], + "source": [ + "graph_NaCl_all = LobsterGraph(\n", + " path_to_poscar=\"../../tests/test_data/NaCl_comp_range/POSCAR.gz\",\n", + " path_to_charge=\"../../tests/test_data/NaCl_comp_range/CHARGE.lobster.gz\",\n", + " path_to_cohpcar=\"../../tests/test_data/NaCl_comp_range/COHPCAR.lobster.gz\",\n", + " path_to_icohplist=\"../../tests/test_data/NaCl_comp_range/ICOHPLIST.lobster.gz\",\n", + " add_additional_data_sg=True,\n", + " path_to_icooplist=\"../../tests/test_data/NaCl_comp_range/ICOOPLIST.lobster.gz\",\n", + " path_to_icobilist=\"../../tests/test_data/NaCl_comp_range/ICOBILIST.lobster.gz\",\n", + " path_to_madelung=\"../../tests/test_data/NaCl_comp_range/MadelungEnergies.lobster.gz\",\n", + " which_bonds=\"all\",\n", + " start=None,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "d6f47c59", + "metadata": {}, + "source": [ + "```python\n", + "#### (Change this cell block type to Code or copy when executing locally)\n", + "graph_NaCl_all = LobsterGraph(\n", + " path_to_poscar=\"LobsterPy/tests/test_data/NaCl_comp_range/POSCAR.gz\",\n", + " path_to_charge=\"LobsterPy/tests/test_data/NaCl_comp_range/CHARGE.lobster.gz\",\n", + " path_to_cohpcar=\"LobsterPy/tests/test_data/NaCl_comp_range/COHPCAR.lobster.gz\",\n", + " path_to_icohplist=\"LobsterPy/tests/test_data/NaCl_comp_range/ICOHPLIST.lobster.gz\",\n", + " add_additional_data_sg=True,\n", + " path_to_icooplist=\"LobsterPy/tests/test_data/NaCl_comp_range/ICOOPLIST.lobster.gz\",\n", + " path_to_icobilist=\"LobsterPy/tests/test_data/NaCl_comp_range/ICOBILIST.lobster.gz\",\n", + " path_to_madelung=\"LobsterPy/tests/test_data/NaCl_comp_range/MadelungEnergies.lobster.gz\",\n", + " which_bonds=\"all\",\n", + " start=None,\n", + ")\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "604bfa7e", + "metadata": {}, + "outputs": [], + "source": [ + "graph_NaCl_all.sg.graph.nodes.data() # view node data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c77c2b06", + "metadata": {}, + "outputs": [], + "source": [ + "graph_NaCl_all.sg.graph.edges.data() # view edge data" + ] + }, { "cell_type": "markdown", "id": "b308aea8", "metadata": {}, "source": [ - "## Use featurizer to extract LOBSTER bonding analysis data as feature for ML studies" + "## Featurizer usage examples (Generates features from LOBSTER data for ML studies)" ] }, { @@ -523,7 +687,16 @@ "metadata": {}, "outputs": [], "source": [ - "from lobsterpy.featurize.batch import BatchSummaryFeaturizer, BatchCoxxFingerprint" + "from lobsterpy.featurize.batch import (BatchCoxxFingerprint, BatchDosFeaturizer,\n", + " BatchSummaryFeaturizer, BatchStructureGraphs)" + ] + }, + { + "cell_type": "markdown", + "id": "5916fc58", + "metadata": {}, + "source": [ + "### BatchCoxxFingerprint" ] }, { @@ -531,31 +704,53 @@ "id": "8f6886ef", "metadata": {}, "source": [ - "`BatchSummaryFeaturizer` provides an convenient way to directly extract summary stats in the form of pandas dataframe directly from LOBSTER calculation directory. The summary stats consist of following:\n", + "`BatchCoxxFingerprint` provides an convenient way to directly generate fingerprint objects from COHP / COBI/ COOPCAR.lobster data. Generating fingerprints specificaly for `bonding`, `antibonding` and `overall` interactions is feasible. \n", "\n", - "1. ICOHP, bonding , antibonding percent (mean, min, max , standard deviation) of relevant bonds from LobsterPy analysis (Orbital wise anaylsis stats data can also be included : Optional)\n", - "2. Weighted ICOHP ( ICOOP/ ICOBI : Optional)\n", - "3. COHP center, width, skewness , kurtosis, edge (COOP/ COBI : Optional)\n", - "4. Ionicity and Madelung energies for the structure based on Mulliken and Loewdin charges" + "One can also generate a pair-wise fingerprint similarity matrix dataframe (currently only simple vector dot product or tanimoto index are implemented)" ] }, { "cell_type": "code", "execution_count": null, "id": "f4f0b721", - "metadata": {}, + "metadata": { + "tags": [ + "remove-cell" + ] + }, "outputs": [], "source": [ - "summary_features = BatchSummaryFeaturizer(\n", + "# Initialize batch COXX featurizer \n", + "fp_cohp_bonding = BatchCoxxFingerprint(\n", " path_to_lobster_calcs=\"../../tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", - " bonds=\"all\",\n", - " include_cobi_data=False,\n", - " include_coop_data=False,\n", - " e_range=[-15, 0],\n", + " e_range=[-15, 0], \n", + " feature_type=\"bonding\",\n", + " normalize=True, # affects the fingerprint similarity matrix computation\n", + " tanimoto=True, # affects the fingerprint similarity matrix computation\n", " n_jobs=3,\n", + " fingerprint_for='cohp' # changing this to cobi/coop will result in reading cobicar/coopcar file\n", " )" ] }, + { + "cell_type": "markdown", + "id": "4d80d960", + "metadata": {}, + "source": [ + "```python\n", + "## Initialize batch COXX featurizer (Change this cell block type to Code and remove formatting when executing locally)\n", + "fp_cohp_bonding = BatchCoxxFingerprint(\n", + " path_to_lobster_calcs=\"LobsterPy/tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", + " e_range=[-15, 0], \n", + " feature_type=\"bonding\",\n", + " normalize=True, # affects the fingerprint similarity matrix computation\n", + " tanimoto=True, # affects the fingerprint similarity matrix computation\n", + " n_jobs=3,\n", + " fingerprint_for='cohp' # changing this to cobi/coop will result in reading cobicar/coopcar file\n", + ")\n", + "```" + ] + }, { "cell_type": "code", "execution_count": null, @@ -565,7 +760,19 @@ }, "outputs": [], "source": [ - "summary_features.get_df()" + "# Access fingerprint dataframe\n", + "fp_cohp_bonding.fingerprint_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cafc1f90", + "metadata": {}, + "outputs": [], + "source": [ + "# Get fingerprint similarity matrix\n", + "fp_cohp_bonding.get_similarity_matrix_df()" ] }, { @@ -573,27 +780,57 @@ "id": "54277969", "metadata": {}, "source": [ - "`BatchCoxxFingerprint` provides an convenient way to directly generate fingerprint objects from COHP / COBI/ COOPCAR.lobster data. Generating fingerprints specificaly for `bonding`, `antibonding` and `overall` interactions is feasible. \n", + "### BatchDosFeaturizer" + ] + }, + { + "cell_type": "markdown", + "id": "99f617c6", + "metadata": {}, + "source": [ + "`BatchDosFeaturizer` provides an convenient way to extract LOBSTER DOS moment features and fingerprints in the form of pandas dataframe from LOBSTER calculation directory. The extracted features consist of following:\n", "\n", - "One can also generate a pair-wise fingerprint similarity matrix dataframe (currently only simple vector dot product or tanimoto index are implemented)" + "\n", + "1. Element and PDOS center, width, skewness , kurtosis and edges \n", + "2. PDOS or total DOS fingerprint objects" ] }, { "cell_type": "code", "execution_count": null, "id": "37e0c3b9", - "metadata": {}, + "metadata": { + "tags": [ + "remove-cell" + ] + }, "outputs": [], "source": [ - "fp_cohp_bonding = BatchCoxxFingerprint(\n", - " path_to_lobster_calcs=\"../../tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", - " e_range=[-15, 0], \n", - " feature_type=\"bonding\",\n", - " normalize=True, # affects the fingerprint similarity matrix computation\n", - " tanimoto=True, # affects the fingerprint similarity matrix computation\n", - " n_jobs=3,\n", - " fingerprint_for='cohp' # changing this to cobi/coop will result in reading cobicar/coopcar file\n", - " )" + "# Initialize batch DOS featurizer\n", + "batch_dos = BatchDosFeaturizer(path_to_lobster_calcs='../../tests/test_data/Featurizer_test_data/Lobster_calcs/', # path to parent lobster calcs\n", + " use_lso_dos=True, # will enforce using DOSCAR.LSO.lobster\n", + " add_element_dos_moments=True, # set to false to not have element moments dos features \n", + " e_range=None, # Can Set this to none for entire energy range \n", + " fingerprint_type=\"summed_pdos\", # fingerprint type (s,p,d,f, summed_pdos)\n", + " n_bins=256,\n", + " n_jobs=3,)" + ] + }, + { + "cell_type": "markdown", + "id": "a5cee556", + "metadata": {}, + "source": [ + "```python\n", + "## Initialize batch DOS featurizer (Change this cell block type to Code and remove formatting when executing locally)\n", + "batch_dos = BatchDosFeaturizer(path_to_lobster_calcs='LobsterPy/tests/test_data/Featurizer_test_data/Lobster_calcs/', # path to parent lobster calcs\n", + " use_lso_dos=True, # will enforce using DOSCAR.LSO.lobster\n", + " add_element_dos_moments=True, # set to false to not have element moments dos features \n", + " e_range=None, # Can Set this to none for entire energy range \n", + " fingerprint_type=\"summed_pdos\", # fingerprint type (s,p,d,f, summed_pdos)\n", + " n_bins=256,\n", + " n_jobs=3,)\n", + "```" ] }, { @@ -603,8 +840,8 @@ "metadata": {}, "outputs": [], "source": [ - "# Access fingerprint dataframe\n", - "fp_cohp_bonding.fingerprint_df" + "# get dos moments df\n", + "batch_dos.get_df()" ] }, { @@ -614,77 +851,141 @@ "metadata": {}, "outputs": [], "source": [ - "# Get fingerprint similarity matrix\n", - "fp_cohp_bonding.get_similarity_matrix_df()" + "# get dos fingerprints df\n", + "batch_dos.get_fingerprints_df()" ] }, { "cell_type": "markdown", - "id": "b3579e53", + "id": "13e2e7e6", "metadata": {}, "source": [ - "## Generate structure graph objects with LOBSTER data" + "### BatchSummaryFeaturizer" + ] + }, + { + "cell_type": "markdown", + "id": "480f7ad9", + "metadata": {}, + "source": [ + "`BatchSummaryFeaturizer` provides an convenient way to extract summary stats in the form of pandas dataframe from LOBSTER calculation directory. The summary stats consist of following:\n", + "\n", + "1. ICOHP, bonding , antibonding percent (mean, min, max , standard deviation) of relevant bonds from LobsterPy analysis (Orbital wise anaylsis stats data can also be included : Optional)\n", + "2. Weighted ICOHP ( ICOOP/ ICOBI : Optional)\n", + "3. COHP center, width, skewness , kurtosis, edge (COOP/ COBI : Optional)\n", + "4. Ionicity and Madelung energies for the structure based on Mulliken and Loewdin charges" ] }, { "cell_type": "code", "execution_count": null, - "id": "07b0a7ed", - "metadata": {}, + "id": "bd0a22d9", + "metadata": { + "tags": [ + "remove-cell" + ] + }, "outputs": [], "source": [ - "from lobsterpy.structuregraph.graph import LobsterGraph" + "# Initialize batch summary featurizer\n", + "summary_features = BatchSummaryFeaturizer(\n", + " path_to_lobster_calcs=\"../../tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", + " bonds=\"all\",\n", + " include_cobi_data=False,\n", + " include_coop_data=False,\n", + " e_range=[-15, 0],\n", + " n_jobs=3,\n", + " )" ] }, { "cell_type": "markdown", - "id": "13e2e7e6", - "metadata": {}, + "id": "cdded6c3", + "metadata": { + "scrolled": false + }, "source": [ - "Below code snippet will generate a networkx graph object with ICOHP, ICOOP and ICOBI data as edge properites and charges as node properties." + "```python\n", + "## Initialize batch summary featurizer (Change this cell block type to Code and remove formatting when executing locally)\n", + "summary_features = BatchSummaryFeaturizer(\n", + " path_to_lobster_calcs=\"LobsterPy/tests/test_data/Featurizer_test_data/Lobster_calcs\",\n", + " bonds=\"all\",\n", + " include_cobi_data=False,\n", + " include_coop_data=False,\n", + " e_range=[-15, 0],\n", + " n_jobs=3,\n", + " )\n", + "```" ] }, { "cell_type": "code", "execution_count": null, - "id": "6599b2ae", + "id": "1bfad526", "metadata": {}, "outputs": [], "source": [ - "graph_NaCl_all = LobsterGraph(\n", - " path_to_poscar=\"../../tests/test_data/NaCl_comp_range/POSCAR.gz\",\n", - " path_to_charge=\"../../tests/test_data/NaCl_comp_range/CHARGE.lobster.gz\",\n", - " path_to_cohpcar=\"../../tests/test_data/NaCl_comp_range/COHPCAR.lobster.gz\",\n", - " path_to_icohplist=\"../../tests/test_data/NaCl_comp_range/ICOHPLIST.lobster.gz\",\n", - " add_additional_data_sg=True,\n", - " path_to_icooplist=\"../../tests/test_data/NaCl_comp_range/ICOOPLIST.lobster.gz\",\n", - " path_to_icobilist=\"../../tests/test_data/NaCl_comp_range/ICOBILIST.lobster.gz\",\n", - " path_to_madelung=\"../../tests/test_data/NaCl_comp_range/MadelungEnergies.lobster.gz\",\n", - " which_bonds=\"all\",\n", - " start=None,\n", - ")" + "summary_features.get_df()" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "bd0a22d9", + "cell_type": "markdown", + "id": "d273b59e", "metadata": {}, - "outputs": [], "source": [ - "graph_NaCl_all.sg.graph.nodes.data() # view node data" + "### BatchStructureGraphs" + ] + }, + { + "cell_type": "markdown", + "id": "c0b4f493", + "metadata": {}, + "source": [ + "`BatchStructureGraphs` provides an convenient way to generate structure graph objects with LOBSTER data in the form of pandas dataframe from a set of LOBSTER calculation directories." ] }, { "cell_type": "code", "execution_count": null, - "id": "1c1ea58f", + "id": "25fa713b", "metadata": { - "scrolled": false + "tags": [ + "remove-cell" + ] }, "outputs": [], "source": [ - "graph_NaCl_all.sg.graph.edges.data() # view edge data" + "batch_sg = BatchStructureGraphs(path_to_lobster_calcs='../../tests/test_data/Featurizer_test_data/Lobster_calcs/',\n", + " add_additional_data_sg=True,\n", + " which_bonds='all',\n", + " n_jobs=3,\n", + " start=None)" + ] + }, + { + "cell_type": "markdown", + "id": "7c784757", + "metadata": {}, + "source": [ + "```python\n", + "## Initialize batch structure graphs featurizer (Change this cell block type to Code and remove formatting when executing locally)\n", + "batch_sg = BatchStructureGraphs(path_to_lobster_calcs='LobsterPy/tests/test_data/Featurizer_test_data/Lobster_calcs/',\n", + " add_additional_data_sg=True,\n", + " which_bonds='all',\n", + " n_jobs=3,\n", + " start=None)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9a8178bc", + "metadata": {}, + "outputs": [], + "source": [ + "# get structure graphs df\n", + "batch_sg.get_df()" ] } ], From 03b568b4cbde98ae4380f5d97b41d0fb930be08f Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 1 Dec 2023 15:04:10 +0100 Subject: [PATCH 37/49] fix rendering issue --- README.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 09614564..86249854 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,16 @@ This is a package that enables automatic plotting and summaries of Lobster outputs. Download LOBSTER from [http://www.cohp.de](http://www.cohp.de). -:::{tip} -Recently released [LOBSTER 5.0](https://schmeling.ac.rwth-aachen.de/cohp/index.php?menuID=6) now generates `POSCAR.lobster` for any type of LOBSTER calculation by default (This file has same format as POSCAR from VASP). Thus, LobsterPy in principle now supports usage with **all** DFT codes supported by LOBSTER and is **not** anymore limited to `VASP`. Almost all of the core functionalites implemented could be used. User just needs to use `POSCAR.lobster` for `path_to_poscar` and `-fstruct` argument in python and cli interface, respectively. +

+
+ Important +
+
-Only functionality limited to VASP is DOS comparisons and basis set analysis in `Analysis.calc_quality_summary` as these rely on typical VASP outputs namely `vasprun.xml` and `POTCARs` respectively. -::: +Recently released [LOBSTER 5.0](https://schmeling.ac.rwth-aachen.de/cohp/index.php?menuID=6) now generates `POSCAR.lobster` for any kind of LOBSTER calculation by default (This file has same format as the POSCAR from VASP). Thus, LobsterPy in principle, now supports usage with **all** DFT codes supported by LOBSTER and is **no** longer limited to `VASP`. Almost all of the core functionalities of LobsterPy could be used. The user must use `POSCAR.lobster` for `path_to_poscar` and `-fstruct` argument in python and cli interface, respectively. + +The only functionality limited to VASP is DOS comparisons and basis set analysis in the `calc_quality_summary` method of the `Analysis` class, as it relies on VASP output files, namely `vasprun.xml` and `POTCAR`. +
Please note that LobsterPy relies on the LOBSTER computation output files. Thus, it will be only able to analyze data that has been computed in the LOBSTER run. From b6ef7cc632a9af2123c328e7d1006e6f6c282038 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 1 Dec 2023 15:04:54 +0100 Subject: [PATCH 38/49] update colors --- docs/_static/custom.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_static/custom.css b/docs/_static/custom.css index 6dd35c6a..e8bc61b2 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -28,8 +28,8 @@ html[data-theme="light"] { */ --pst-color-background: rgb(255, 255, 255); --pst-color-on-background: rgb(255, 255, 255); - --pst-color-surface: rgb(240, 240, 240); - --pst-color-on-surface: rgb(240, 240, 240); + --pst-color-surface: rgb(242, 239, 233); + --pst-color-on-surface: rgb(242, 239, 233); /***************************************************************************** * extentions From 5c981f3ad138ff4b9255f6b6716f12ef154e55c0 Mon Sep 17 00:00:00 2001 From: anaik Date: Fri, 1 Dec 2023 18:02:02 +0100 Subject: [PATCH 39/49] update fundamentals.ipynb --- .../bonding_percentage.png | Bin 0 -> 160667 bytes docs/fundamentals/index.ipynb | 62 +++++++++++------- 2 files changed, 38 insertions(+), 24 deletions(-) create mode 100644 docs/fundamentals/fundamentals_assets/bonding_percentage.png diff --git a/docs/fundamentals/fundamentals_assets/bonding_percentage.png b/docs/fundamentals/fundamentals_assets/bonding_percentage.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec98a343cc11ad623ac108f89caec7c6761c5d1 GIT binary patch literal 160667 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ðFX-4hcPyDA3BUE$-N-*~Bf8xlu)6#5)V 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 Date: Sun, 3 Dec 2023 19:56:30 +0100 Subject: [PATCH 40/49] update doc cards colors --- docs/_static/custom.css | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/_static/custom.css b/docs/_static/custom.css index e8bc61b2..e1fad460 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -27,7 +27,7 @@ html[data-theme="light"] { * on_surface: object set on surface object (without shadows) */ --pst-color-background: rgb(255, 255, 255); - --pst-color-on-background: rgb(255, 255, 255); + --pst-color-on-background: rgb(242, 239, 233); --pst-color-surface: rgb(242, 239, 233); --pst-color-on-surface: rgb(242, 239, 233); @@ -120,3 +120,9 @@ html[data-theme="dark"] { filter: brightness(0.8) contrast(1.2); } } + + +.bg-light { + background-color:rgba(80, 164, 171, 0.52)!important +} + From c4f556b95aaef066b44b22c95af763f40e015505 Mon Sep 17 00:00:00 2001 From: anaik Date: Sun, 3 Dec 2023 19:56:59 +0100 Subject: [PATCH 41/49] update and refine text --- docs/fundamentals/index.ipynb | 122 ++++++++++++++++++++++++---------- 1 file changed, 87 insertions(+), 35 deletions(-) diff --git a/docs/fundamentals/index.ipynb b/docs/fundamentals/index.ipynb index b4b1148c..1ac8868b 100755 --- a/docs/fundamentals/index.ipynb +++ b/docs/fundamentals/index.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "markdown", - "id": "7023a2f5", + "id": "50cc984c", "metadata": {}, "source": [ ":::{important}\n", @@ -80,26 +80,26 @@ "id": "a81a04cc", "metadata": {}, "source": [ - "LobsterPy follows following steps to evaluate the bonding and anti-bonding percentages at each symetrically independent sites:\n", + "LobsterPy follows the following steps to evaluate the bonding and anti-bonding percentages at each symmetrically independent site:\n", "\n", - "1. All the relevant bonds are identfied for site in the structure using ICOHPs via LobsterEnv (bond labels from `ICOHPLIST.lobster` are also stored, along with ICOHP values).\n", - "2. Read the COHP data from `COHPCAR.lobster` corresponding to bond labels from step 1 and get summed COHPs data for each site seperately.\n", - "3. Perform numerical integration of the summed COHPs at each site to evaluate the bonding and antibonding integral and percentages.\n", - "4. One can also set the `start` parameter when initializing Analysis class object to set the start point of energy range below efermi for the intergration. (Optional and useful if one wants to look at specific energy range below efermi)\n", + "1. All the relevant bonds are identified for the site in the structure using ICOHPs via LobsterEnv (bond labels from `ICOHPLIST.lobster` are also stored, along with ICOHP values).\n", + "2. Read the COHP data from `COHPCAR.lobster` corresponding to bond labels from step 1 and get summed COHPs data for each site separately.\n", + "3. Perform numerical integration of the summed COHPs at each site to evaluate the bonding and antibonding integral and percentages below efermi.\n", + "4. One can also set the `start` parameter when initializing the Analysis class object to set the start point of energy range below efermi for the integration. (Optional and useful if one wants to look at specific energy range below efermi)\n", "\n", - ":::{note}\n", - "Ideally, the $(bonding-antibonding)$ integral values should equal to the summed ICOHP values at the each site. However, as it is a known fact, numerical integration are bound of have some error associated with it. Thus it can happen we might not see this corroborate very well. \n", + "Below is a visual depiction of the evaluation of bonding percentage (Step 3) from COHP data for a site.\n", "\n", - "Also, it is important to note that the ICOHP values from `ICOHPLIST.lobster` consider the entire range below efermi. Thus if the `COHPCAR.lobster` are not computed for the entire energy range below efermi, then your results will also not corroborate to summed ICOHPs at the site. \n", + "![Bonding percentage evaluation](fundamentals_assets/bonding_percentage.png)\n", "\n", - "Another crucial factor which influences the results of the numerical integration is the number of points on which the integration is performed. Thus having a finer grid i.e setting `COHPSteps` to `2000` or in your LOBSTER run will help to get better estimates. From our experience setting `COHPSteps` to `10000` provided much consistent results. (Be mindful that the sizes of files generated from such setting can become quite large depending on the structure complexcity)\n", - ":::\n", + "Similarly, the antibonding percentage is evaluated for the site from the COHP data.\n", "\n", - "Below is dummy visual depiction of evaluation of bonding percentage after steps 1 and 2 from COHP curve data.\n", + ":::{note}\n", + "Ideally, the $(bonding-antibonding) $ integral values should equal the summed ICOHP values at each site. However, as it is a known fact, numerical integration is bound to have some errors. Thus, we might not see this corroborate well for all cases. \n", "\n", - "![Bonding percentage evaluation](fundamentals_assets/bonding_percentage.png)\n", + "Also, it is important to note that the ICOHP values from `ICOHPLIST.lobster` consider the entire range below efermi. Thus, if the `COHPCAR.lobster` is not computed for the entire energy range below efermi, then your results will also not corroborate to the summed ICOHPs at the site. \n", "\n", - "In similar way Antibonding percentage is evaluated at each site from the COHP curves." + "Another crucial factor influencing the results of the numerical integration is the number of points on which the integration is performed. Thus, having a finer grid, i.e., setting `COHPSteps` to `2000` or in your LOBSTER run, will help one get better estimates. From our experience, setting `COHPSteps` to `10000` provided very consistent results. (Be mindful that the sizes of files generated from such setting can become quite large depending on the complexity of the structure)\n", + ":::" ] }, { @@ -115,18 +115,20 @@ "id": "82d92b02", "metadata": {}, "source": [ - "LobsterPy follows following steps to evaluate the relevant oribitals contributiing in the bonds automatically. Step 1 to 3 are identical to the **Evaluating bonding and anti-bonding percentages**. Thus for sake of brevity we will not relist them here and only list the steps further. The steps mentioned below are repeated for each symetrically independent site:\n", + "LobsterPy follows the following steps to evaluate the relevant orbitals contributing to the bonds automatically. Steps 1 to 3 are identical to the **Evaluating bonding and anti-bonding percentages**. Thus, for brevity, we will not relist them here and only list the steps further. The steps mentioned below are repeated for each symmetrically independent site:\n", "\n", - "4. Read the list of available orbitals from `COHPCAR.lobster` at the site\n", + "4. Read the list of available orbitals from `COHPCAR.lobster` at the site\n", "5. Get summed cohps for each orbital using the bond label list (step 1)\n", "6. Check if the total bonding and antibonding integral obtained in step 3 is greater than 0\n", - "7. Evaluate the bonding and antibonding integral for each orbital and store these values in separate lists of orbital pair names for bonding, bonding integral lists, orbital pair names for antibonding and antibonding integral list\n", + "7. Evaluate the bonding integral (area under the curve) from COHP data for each orbital and store these values in two lists. One will have orbital pair names, and the other will have corresponding evaluated bonding integrals. Similarly, create two more lists with antibonding orbital pair names and corresponding antibonding integrals.\n", "8. Evaluate the orbital contribution percentages using the following formula:\n", - "$$\\text{(Anti) bonding contribution for each orbital}=\\frac{\\text{each orbital (anti)bonding integral}}{\\text{sum(orbital (anti)bonding integral}}$$\n", + "\n", + "$$\\text{(Anti) bonding contribution for each orbital}=\\frac{\\text{each orbital (anti)bonding integral}}{\\text{sum(orbital (anti)bonding integral}}$$\n", + "\n", "9. If the orbital contribution is more than the `orbital_cutoff` set in the Analysis class object, include that orbital pair interaction as relevant (do this for bonding and antibonding separately using contribution percentages as evaluated in step 8.\n", - "10. Get max anti(bonding) contribution using contribution percentages evaluated in step 8 and add it to orbital summary dict (this is used in description text output generation). \n", + "10. Get max anti(bonding) contribution using contribution percentages evaluated in step 8 and add it to the orbital summary dict (this dict is used in description text output generation). \n", "\n", - "As mentioned in step 9, the results will vary a lot depending on the `orbital_cutoff` set when initializing the Analysis class object. Default value is set to 0.05 (i.e. 5%)." + "As mentioned in step 9, the results will vary a lot depending on the `orbital_cutoff` set when initializing the Analysis class object. The default value is set to 0.05 (i.e. 5%).\n" ] }, { @@ -137,12 +139,60 @@ "## Features curated for ML via Featurizer" ] }, + { + "cell_type": "markdown", + "id": "e5952139", + "metadata": {}, + "source": [ + "### DOS based features" + ] + }, + { + "cell_type": "markdown", + "id": "f215c734", + "metadata": {}, + "source": [ + "

Moment based features

\n", + "\n", + "These features are implemented for DOS in [pymatgen](https://github.com/materialsproject/pymatgen/tree/master) by Rosen et.al. as part of their [A. S. Rosen, S. Vijay, K. A. Persson, Chem. Sci. 2023, 14, 1503–1511.](https://pubs.rsc.org/en/content/articlelanding/2023/SC/D2SC05772G) work\n", + "\n", + "\n", + "1. [Center](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L833)\n", + "2. [Width](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L862)\n", + "3. [Skewness](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L889)\n", + "4. [Kurtosis](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L919)\n", + "5. [Edge](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L1056)\n", + "\n", + "The $n^{th}$ moment for projected dos (PDOS) is computed using following relation\n", + "\n", + "$n^{th}_{moment} = \\frac{\\int (p^n \\cdot \\text{PDOS} \\, dE)}{\\int \\text{PDOS} \\, dE}$\n", + "\n", + "The resulting $1^{st}$, $2^{nd}$, $3^{rd}$ and $4^{th}$ moment are named as *_band_center, *_band_width, *_band_skew, *_band_kurtosis, respectively. Here `*` denotes the orbital names, namely `s,p,d, or f`.\n", + "\n", + "Similar features for elements can also be obtained, element DOS will be used instead of PDOS. Please check the tutorials for example usage.\n", + "\n", + ":::{seealso}\n", + ":class: dropdown\n", + "\n", + "Please refer to the following sources for more details on these.\n", + "\n", + "* [B. Hammer, J. K. Nørskov, Surface Science 1995, 343, 211–220.](https://doi.org/10.1016/0039-6028(96)80007-0)\n", + "* [H. Xin, A. Vojvodic, J. Voss, J. K. Nørskov, F. Abild-Pedersen, Phys. Rev. B 2014, 89, 115114.](https://doi.org/10.1103/PhysRevB.89.115114)\n", + ":::\n", + "\n", + "

Fingerprints

\n", + "\n", + "DOS [Fingerprints](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L1093) are basically DOS data discretized into histograms that will allow to compute similarity between DOS/PDOS of different materials numerically.\n", + "\n", + "This feature was implemented iny [pymatgen](https://github.com/materialsproject/pymatgen/tree/master) as part of our LOBSTER database publication [A. A. Naik, C. Ertural, N. Dhamrait, P. Benner, J. George, Sci Data 2023, 10, 610.](https://www.nature.com/articles/s41597-023-02477-5)" + ] + }, { "cell_type": "markdown", "id": "8f8f7deb", "metadata": {}, "source": [ - "### COHP based features" + "### COXX based features (COXX: COHP / COBI / COOP)" ] }, { @@ -150,11 +200,12 @@ "id": "ffd726d1", "metadata": {}, "source": [ + "

Average features

\n", + "\n", "The below mentioned features are implemented based on the work of \n", "\n", "[R. Nelson, C. Ertural, P. C. Müller, R. Dronskowski, in Compr. Inorg. Chem. III, Elsevier, 2023, pp. 141–201.](https://linkinghub.elsevier.com/retrieve/pii/B9780128231449001205)\n", "\n", - "

Average features

\n", "\n", "The $\\overline{\\mathrm{ICOHP}}$ can be interpreted as the average bond strength inside the given material.\n", "\n", @@ -176,23 +227,24 @@ "source": [ "

Moment based features and fingerprints

\n", "\n", - "These features are inspired from similar set of features implemented for DOS in [pymatgen](https://github.com/materialsproject/pymatgen/tree/master) with some additional functionalities. Namely\n", - "1. [Center](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L833)\n", - "2. [Width](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L862)\n", - "3. [Skewness](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L889)\n", - "4. [Kurtosis](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L919)\n", - "5. [Fingerprints](https://github.com/materialsproject/pymatgen/blob/2ccbfa16cbffb1016501c18117e70a3f96a83de2/pymatgen/electronic_structure/dos.py#L1093)\n", + "These features are inspired from the features implemented for DOS in [pymatgen](https://github.com/materialsproject/pymatgen/tree/master) as described in DOS based features section above. Following features are accessible\n", + "1. Center\n", + "2. Width\n", + "3. Skewness\n", + "4. Kurtosis\n", + "5. Edge\n", + "6. Fingerprints\n", "\n", - "For the case of COHPs, the $n^{th}$ moment is computed using following relation\n", + "For the case of COXXs, the $n^{th}$ moment is computed using following relation\n", "\n", - "$n^{th}_{moment} = \\frac{\\int (p^n \\cdot \\text{COHPs} \\, dE)}{\\int \\text{COHPs} \\, dE}$\n", + "$n^{th}_{moment} = \\frac{\\int (p^n \\cdot \\text{COXXs} \\, dE)}{\\int \\text{COXXs} \\, dE}$\n", "\n", - "The resulting $1^{st}$, $2^{nd}$, $3^{rd}$ and $4^{th}$ moment are named as center_COHP, width_COHP, skewness_COHP, kurtosis_COHP, respectively.\n", + "The resulting $1^{st}$, $2^{nd}$, $3^{rd}$ and $4^{th}$ moment are named as center_COXX, width_COXX, skewness_COXX, kurtosis_COXX, respectively.\n", "\n", - "And Fingerprints are basically COHP data discretized into histograms that will allow to compute similarity between COHP curves of different materials numerically.\n", + "To generate COXX fingerprints we discretize COXX data into histograms that will allow to compute similarity between COXX curves of different materials numerically.\n", "\n", - ":::{note}\n", - "One can select the range of energy, type of interactions (bonding, antibonding, overall) one would like to compute these features.\n", + ":::{tip}\n", + "One can select the range of energy and type of interactions (bonding, antibonding, overall) one would like to compute these features.\n", ":::" ] }, @@ -207,7 +259,7 @@ "\n", "The source code can be found [here](https://github.com/naik-aakash/lobster-database-paper-analysis-scripts/blob/e274cc66fe5cdef981c9de0609eaba4368226c9a/ML_model/featurizer/lobster_featurizer.py#L33).\n", "\n", - "This is code have been intergrated in our Package and it is extended to also work for COBI/COOP condensed bonding analysis dicts and can also include orbital wise analysis summary stats as well if enabled." + "This is code have been intergrated in our Package and it is extended to also work for COBI/COOP condensed bonding analysis dicts and can user can now also include orbital wise analysis summary stats (Optional)." ] }, { From 6393a7b8a376b0855ac4a41cb1b6cc645df8fc6d Mon Sep 17 00:00:00 2001 From: anaik Date: Sun, 3 Dec 2023 19:57:36 +0100 Subject: [PATCH 42/49] add alaises available --- docs/reference/cli_subcommands/createinputs.rst | 5 +++++ docs/reference/cli_subcommands/plotauto.rst | 8 ++++++++ docs/reference/cli_subcommands/plotautoia.rst | 8 ++++++++ docs/reference/cli_subcommands/ploticohpdistance.rst | 6 +++++- 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/docs/reference/cli_subcommands/createinputs.rst b/docs/reference/cli_subcommands/createinputs.rst index 56c4da5a..bf25a332 100644 --- a/docs/reference/cli_subcommands/createinputs.rst +++ b/docs/reference/cli_subcommands/createinputs.rst @@ -3,6 +3,11 @@ create-inputs Create inputs for lobster computation. It works only with PBE POTCARs. +.. hint:: Aliases available + + - createinputs + + .. argparse:: :module: lobsterpy.cli :func: get_parser diff --git a/docs/reference/cli_subcommands/plotauto.rst b/docs/reference/cli_subcommands/plotauto.rst index 933456b8..2d7efafb 100644 --- a/docs/reference/cli_subcommands/plotauto.rst +++ b/docs/reference/cli_subcommands/plotauto.rst @@ -3,6 +3,14 @@ plot-automatic Plot most important COHPs or COBIs or COOPs automatically. This option also includes an automatic description. +.. hint:: Aliases available + + - plot-auto + - auto-plot + - autoplot + - automatic-plot + - automaticplot + .. argparse:: :module: lobsterpy.cli :func: get_parser diff --git a/docs/reference/cli_subcommands/plotautoia.rst b/docs/reference/cli_subcommands/plotautoia.rst index 891d481a..d9faee35 100644 --- a/docs/reference/cli_subcommands/plotautoia.rst +++ b/docs/reference/cli_subcommands/plotautoia.rst @@ -3,6 +3,14 @@ plot-automatic-ia Creates an interactive plot of most important COHPs or COBIs or COOPs automatically. +.. hint:: Aliases available + + - plot-auto-ia + - auto-plot-ia + - autoplotia + - automatic-plot-ia + - automaticplot-ia + .. argparse:: :module: lobsterpy.cli :func: get_parser diff --git a/docs/reference/cli_subcommands/ploticohpdistance.rst b/docs/reference/cli_subcommands/ploticohpdistance.rst index f412fb31..0f6e13e4 100644 --- a/docs/reference/cli_subcommands/ploticohpdistance.rst +++ b/docs/reference/cli_subcommands/ploticohpdistance.rst @@ -1,7 +1,11 @@ plot-icohp-distance ==================== -Plot ICOHPs or ICOOPs or ICOBIs with respect to bond lengths +Plot ICOHPs or ICOOPs or ICOBIs with respect to bond lengths. + +.. hint:: Aliases available + + - ploticohpdistance .. argparse:: :module: lobsterpy.cli From 3437c097f42226a64886ceb7e9f1ec4cf45700cb Mon Sep 17 00:00:00 2001 From: anaik Date: Sun, 3 Dec 2023 20:37:33 +0100 Subject: [PATCH 43/49] update contributing and developer guide --- CONTRIBUTING.md | 2 +- docs/dev/dev_installation.md | 53 ++++++++++++++++++++++++++++++++++++ docs/index.md | 3 +- 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 docs/dev/dev_installation.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bae22036..bec89392 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -# Contributing to lobsterpy +# Contributing to LobsterPy We would love your input to further extend and improve our code. Contribution of any kind are welcome, for example it can be: diff --git a/docs/dev/dev_installation.md b/docs/dev/dev_installation.md new file mode 100644 index 00000000..9146df0a --- /dev/null +++ b/docs/dev/dev_installation.md @@ -0,0 +1,53 @@ +# Developer Installation + +Install Lobsterpy from source, by cloning the repository from [github](https://github.com/JaGeo/LobsterPy.git) + +```bash +git clone https://github.com/JaGeo/LobsterPy.git +cd LobsterPy +pip install -e .[featurizer,docs,tests,dev] +``` +This will install LobsterPy will all dependencies for tests, pre-commit and docs building. + +## Running unit tests + +Unit tests can be run from the source folder using `pytest`. + +```bash +pytest +``` +This will run all the tests. + +To get a detailed report of test coverage you can use following command +```bash +pytest --cov=lobsterpy --cov-report term-missing --cov-append +``` + +If you feel test execution takes too long locally, you can speedup the execution using [pytest-xdist](https://pypi.org/project/pytest-xdist/). Install this in library in your environment using + +```bash +pip install pytest-xdist +``` + +Once installed, you can now use multiple processors to run your tests. For example, if you want to use 8 processors to run tests in parallel, run + +```bash +pytest -n 8 +``` + +We rely on pytest-split to run tests in parallel on github workflow, thus it is necessary to update the test-durations files in the repo, incase you add new tests. To generate this file, use + +```bash +pytest --cov=lobsterpy --cov-append --splits 1 --group 1 --durations-path ./tests/test_data/.pytest-split-durations --store-durations +``` + +## Building the documentation locally + +The atomate2 documentation can be built using the sphinx package. + +The docs can be built to the `_build` directory: + +```bash +sphinx-build -W docs _build +``` + diff --git a/docs/index.md b/docs/index.md index 5c507bb3..db6e50c3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -16,6 +16,7 @@ reference/cli ```{toctree} :caption: Contributing Guide :hidden: +dev/dev_installation dev/contributing ``` @@ -72,7 +73,7 @@ LOBSTER and Lobsterpy via atomate2. :::{grid-item-card} -:link: dev/contributing +:link: dev/dev_installation :link-type: doc :class-header: bg-light **Developer guide** From 5e7c572c55cd0c9c227344948650b0da8d256f1d Mon Sep 17 00:00:00 2001 From: anaik Date: Mon, 4 Dec 2023 13:51:08 +0100 Subject: [PATCH 44/49] add interactive plots with orbital wise analysis example --- examples/example_script_NaCl_orbitalwise.py | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 examples/example_script_NaCl_orbitalwise.py diff --git a/examples/example_script_NaCl_orbitalwise.py b/examples/example_script_NaCl_orbitalwise.py new file mode 100644 index 00000000..d33371fb --- /dev/null +++ b/examples/example_script_NaCl_orbitalwise.py @@ -0,0 +1,31 @@ +import os + +from lobsterpy.cohp.analyze import Analysis +from lobsterpy.cohp.describe import Description + +directory = "NaCl" + +# Setup analysis dict +analyse = Analysis( + path_to_poscar=os.path.join(directory, "POSCAR"), + path_to_icohplist=os.path.join(directory, "ICOHPLIST.lobster"), + path_to_cohpcar=os.path.join(directory, "COHPCAR.lobster"), + path_to_charge=os.path.join(directory, "CHARGE.lobster"), + which_bonds="all", + orbital_resolved=True, + orbital_cutoff=0.05, +) + +# Setup Description dict +describe = Description(analysis_object=analyse) +describe.write_description() + + + +# Automatic interactive plots +describe.plot_interactive_cohps(ylim=[-10, 2], xlim=[-4, 4], orbital_resolved=True, label_resolved=False) + +# different dicts that summarize the results +print(analyse.condensed_bonding_analysis) +print(analyse.final_dict_bonds) +print(analyse.final_dict_ions) From c5772d4c0a9baaf171c2502d7cd32e1c65dfca46 Mon Sep 17 00:00:00 2001 From: anaik Date: Mon, 4 Dec 2023 13:51:48 +0100 Subject: [PATCH 45/49] highlight link to complete documentation in README using section --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 86249854..2ce2fa5e 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,8 @@ It is also possible to start this automatic analysis from a Python script. See " You can get further information by using ``lobsterpy --help`` and also by typing ``lobsterpy description --help``, ``lobsterpy automatic-plot --help``, ``lobsterpy plot --help``. -See the complete [documentation and tutorials](https://jageo.github.io/LobsterPy/) for more details. +## Comprehensive documentation +* Checkout the [documentation and tutorials](https://jageo.github.io/LobsterPy/) for more details. ## How to cite? Please cite our paper: J. George, G. Petretto, A. Naik, M. Esters, A. J. Jackson, R. Nelson, R. Dronskowski, G.-M. Rignanese, G. Hautier, **ChemPlusChem**, [https://doi.org/10.1002/cplu.202200123](https://doi.org/10.1002/cplu.202200123). From 9d5af5a91f4a23906121f49aaa79351afa56adfc Mon Sep 17 00:00:00 2001 From: anaik Date: Mon, 4 Dec 2023 13:52:51 +0100 Subject: [PATCH 46/49] update figures --- .../bonding_percentage.png | Bin 160667 -> 162670 bytes .../orbital_wise_illustration.png | Bin 0 -> 273436 bytes docs/fundamentals/index.ipynb | 14 +++++++++----- 3 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 docs/fundamentals/fundamentals_assets/orbital_wise_illustration.png diff --git a/docs/fundamentals/fundamentals_assets/bonding_percentage.png b/docs/fundamentals/fundamentals_assets/bonding_percentage.png index 3ec98a343cc11ad623ac108f89caec7c6761c5d1..27ed61069c6ee36e2c6a6309f27ff32560e1803f 100644 GIT binary patch delta 62745 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 delta 60410 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
diff --git a/docs/fundamentals/index.ipynb b/docs/fundamentals/index.ipynb index d239126e..4c164f74 100755 --- a/docs/fundamentals/index.ipynb +++ b/docs/fundamentals/index.ipynb @@ -123,14 +123,14 @@ "7. Evaluate the bonding integral (area under the curve) from COHP data for each orbital and store these values in two lists. One will have orbital pair names, and the other will have corresponding evaluated bonding integrals. Similarly, create two more lists with antibonding orbital pair names and corresponding antibonding integrals.\n", "8. Evaluate the orbital contribution percentages using the following formula:\n", "\n", - "$$\\text{(Anti) bonding contribution for each orbital}=\\frac{\\text{each orbital (anti)bonding integral}}{\\text{sum(orbital (anti)bonding integral}}$$\n", + "$$\\text{(Anti) bonding contribution for each orbital}=\\frac{\\text{each orbital (anti)bonding integral}}{\\text{sum(orbital (anti)bonding integral)}}$$\n", "\n", "9. If the orbital contribution is more than the `orbital_cutoff` set in the Analysis class object, include that orbital pair interaction as relevant (do this for bonding and antibonding separately using contribution percentages as evaluated in step 8.\n", "10. Get max anti(bonding) contribution using contribution percentages evaluated in step 8 and add it to the orbital summary dict (this dict is used in description text output generation). \n", "\n", "As mentioned in step 9, the results will vary a lot depending on the `orbital_cutoff` set when initializing the Analysis class object. The default value is set to 0.05 (i.e. 5%).\n", "\n", - "Below is a visual depiction of the evaluation of orbital contribution percentage (Step 7) from summed COHP data for a site. Subfigure (a) and (b) depict the evaluation of orbital contribution for bonding and antibonding interactions relative to summed COHPs at the site.\n", + "Below is a visual depiction of the evaluation of orbital contribution percentage (Step 7) from summed orbital COHP data for a site. Subfigure (a) and (b) depict the evaluation of orbital contribution for bonding and antibonding interactions relative to summed orbital COHPs at the site.\n", "\n", "![Orbital contribution percentage evaluation](fundamentals_assets/orbital_wise_illustration.png)\n" ] diff --git a/docs/index.md b/docs/index.md index db6e50c3..2e89c73d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -36,7 +36,7 @@ about/license [PyPI](https://pypi.org/project/lobsterpy/) | [Issues & Ideas](https://github.com/JaGeo/LobsterPy/issues) | -LobsterPy is a package that enables automatic plotting,summaries and extracting features for machine learning studies from LOBSTER outputs. . +LobsterPy is a package that enables automatic analysis of LOBTSER outputs to get summarized bonding information and relevant bond plots. Additionally, one can also generate features for machine learning studies from LOBSTER outputs. ::::{grid} 1 1 2 2 :class-container: text-center From 9ab69f904b9aea0d2221cd2a7b232506fb8447a8 Mon Sep 17 00:00:00 2001 From: anaik Date: Tue, 5 Dec 2023 15:32:09 +0100 Subject: [PATCH 48/49] update cli tutorial and fundamentals text --- docs/fundamentals/index.ipynb | 2 +- docs/tutorial/commandlineinterface.rst | 69 ++++++++++++++++++-------- 2 files changed, 49 insertions(+), 22 deletions(-) mode change 100755 => 100644 docs/fundamentals/index.ipynb diff --git a/docs/fundamentals/index.ipynb b/docs/fundamentals/index.ipynb old mode 100755 new mode 100644 index 4c164f74..c0da1395 --- a/docs/fundamentals/index.ipynb +++ b/docs/fundamentals/index.ipynb @@ -119,7 +119,7 @@ "\n", "4. Read the list of available orbitals from `COHPCAR.lobster` at the site\n", "5. Get summed cohps for each orbital using the bond label list (step 1)\n", - "6. Check if the total bonding and antibonding integral obtained in step 3 is greater than 0\n", + "6. Check if the total bonding and antibonding integrals obtained in step 3 is greater than 0\n", "7. Evaluate the bonding integral (area under the curve) from COHP data for each orbital and store these values in two lists. One will have orbital pair names, and the other will have corresponding evaluated bonding integrals. Similarly, create two more lists with antibonding orbital pair names and corresponding antibonding integrals.\n", "8. Evaluate the orbital contribution percentages using the following formula:\n", "\n", diff --git a/docs/tutorial/commandlineinterface.rst b/docs/tutorial/commandlineinterface.rst index d63a7ed8..2c4f6e27 100644 --- a/docs/tutorial/commandlineinterface.rst +++ b/docs/tutorial/commandlineinterface.rst @@ -128,14 +128,14 @@ Analyze the lobster outputs with automation option to save output in json file. Below is an example output of this command. +.. code:: bash + + lobsterpy description --json description.json + .. code:: bash The compound CdF2 has 1 symmetry-independent cation(s) with relevant cation-anion interactions: Cd1. Cd1 has a cubic (CN=8) coordination environment. It has 8 Cd-F (mean ICOHP: -0.62 eV, 27.843 percent antibonding interaction below EFermi) bonds. - -:: - - lobsterpy description --json description.json Following is the json file produced. @@ -193,17 +193,16 @@ Following is the json file produced. The LOBSTER calculation directory need to have POTCAR, POSCAR, LOBSTER calculation input and output files to run the **lobsterpy calc-description** command sucessfully. If POTCAR is not available then you need to suppy **--potcar-symbols** along with the command. Other optional files are vasprun.xml if **--doscomp** is switched on. +.. code:: bash + + lobsterpy calc-description --potcar-symbols "Na_pv Cl" --bvacomp --doscomp --calcqualityjson calc_quality_description.json + .. code:: bash The LOBSTER calculation used minimal basis. The absolute and total charge spilling for the calculation is 0.3 and 5.58 %, respectively. The projected wave function is completely orthonormalized as no bandOverlaps.lobster file is generated during the LOBSTER run. The atomic charge signs from Mulliken population analysis agree with the bond valence analysis. The atomic charge signs from Loewdin population analysis agree with the bond valence analysis. The Tanimoto index from DOS comparisons in the energy range between -5, 0 eV for s, p, summed orbitals are: 0.9785, 0.9973, 0.9953. - -:: - lobsterpy calc-description --potcar-symbols "Na_pv Cl" --bvacomp --doscomp --calcqualityjson calc_quality_description.json - - - ``lobsterpy automatic-plot`` command will plot the results automatically. It will evaluate all COHPs with ICOHP values down to 10% of the strongest ICOHP. You can enforce an analysis of all bonds @@ -215,7 +214,7 @@ Following is the json file produced. initial Lobster computation. Below is an example and sample output using this command. -:: +.. code:: bash lobsterpy automatic-plot --title 'Automatic COHP plot' --save-plot COHP.png @@ -225,7 +224,7 @@ You can also plot integrated ICOHP computed by lobster by turning on ``--integrated`` flag when executing ``lobsterpy automatic-plot`` command. Below is an example and sample output using this command. -:: +.. code:: bash lobsterpy automatic-plot --title 'Automatic ICOHP plot' --integrated --save-plot ICOHP.png @@ -258,14 +257,17 @@ well (–summed, –integrated). You can switch to COBIs or COOPs by using –cobis or –coops, respectively. Below is an example output of command to plot COHP and COOP for bond 3 and 30. -``lobsterpy plot 3 30 --save-plot COHP_330.png`` +.. code:: bash -``lobsterpy plot 3 30 --coops --save-plot COOP_330.png`` + lobsterpy plot 3 30 --save-plot COHP_330.png .. image:: tutorial_assets/COHP_330.png - :width: 49 % + +.. code:: bash + + lobsterpy plot 3 30 --coops --save-plot COOP_330.png + .. image:: tutorial_assets/COOP_330.png - :width: 49 % 3. Plotting of DOS @@ -273,6 +275,10 @@ plot COHP and COOP for bond 3 and 30. - ``lobsterpy plot-dos --summedspins`` will plot total and element DOS. Example output plot is shown below. +.. code:: bash + + lobsterpy plot-dos --summedspins + .. image:: tutorial_assets/DOS_example.png 4. Plotting of ICOHPs/ ICOOPs/ICOBIS againsts bond lengths @@ -280,6 +286,10 @@ plot COHP and COOP for bond 3 and 30. - ``lobsterpy plot-icohps-distances`` will plot ICOHPs against bond lengths. Example output plot is shown below. +.. code:: bash + + lobsterpy plot-icohps-distances + .. image:: tutorial_assets/ICOHPs_distance_example.png 5. Additional Options @@ -292,15 +302,32 @@ either of these commands: .. code:: bash lobsterpy automatic-plot --help + +.. code:: bash + lobsterpy automatic-plot-ia --help - lobsterpy calc-description -h + +.. code:: bash + + lobsterpy calc-description -help + +.. code:: bash + lobsterpy create-inputs --help + +.. code:: bash + lobsterpy description --help + +.. code:: bash + lobsterpy plot-dos --help - lobsterpy plot-icohps-distances --help - lobsterpy plot --help - -.. code:: ipython3 +.. code:: bash + + lobsterpy plot-icohps-distances --help + +.. code:: bash + + lobsterpy plot --help - os.chdir('..') # Return to parent directory From 96954394e428c08f4a5c172f6ade4fb2864c0376 Mon Sep 17 00:00:00 2001 From: "J. George" Date: Tue, 5 Dec 2023 16:03:18 +0100 Subject: [PATCH 49/49] Update docs/fundamentals/index.ipynb --- docs/fundamentals/index.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fundamentals/index.ipynb b/docs/fundamentals/index.ipynb index c0da1395..ff7b888f 100644 --- a/docs/fundamentals/index.ipynb +++ b/docs/fundamentals/index.ipynb @@ -119,7 +119,7 @@ "\n", "4. Read the list of available orbitals from `COHPCAR.lobster` at the site\n", "5. Get summed cohps for each orbital using the bond label list (step 1)\n", - "6. Check if the total bonding and antibonding integrals obtained in step 3 is greater than 0\n", + "6. Check if the total bonding and antibonding integrals obtained in step 3 are each greater than 0\n", "7. Evaluate the bonding integral (area under the curve) from COHP data for each orbital and store these values in two lists. One will have orbital pair names, and the other will have corresponding evaluated bonding integrals. Similarly, create two more lists with antibonding orbital pair names and corresponding antibonding integrals.\n", "8. Evaluate the orbital contribution percentages using the following formula:\n", "\n",

O2?>GMvmjx9-O2cklFxXC4AP4C9( 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 diff --git a/docs/fundamentals/fundamentals_assets/orbital_wise_illustration.png b/docs/fundamentals/fundamentals_assets/orbital_wise_illustration.png new file mode 100644 index 0000000000000000000000000000000000000000..f188542f9b5743fc92d9700f6c29de5c0b7f51e4 GIT binary patch literal 273436 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 Date: Mon, 4 Dec 2023 16:03:38 +0100 Subject: [PATCH 47/49] fix small typos --- README.md | 2 +- docs/fundamentals/index.ipynb | 4 ++-- docs/index.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2ce2fa5e..55af7f52 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # Getting started LobsterPy Logo which consists of a green Python and a red Lobster -This is a package that enables automatic plotting and summaries of Lobster outputs. Download LOBSTER from [http://www.cohp.de](http://www.cohp.de). +LobsterPy is a package that enables automatic analysis of LOBTSER outputs to get summarized bonding information and relevant bond plots. Additionally, one can also generate features for machine learning studies from LOBSTER outputs. One can download LOBSTER from [http://www.cohp.de](http://www.cohp.de).