IonDiff


NameIonDiff JSON
Version 1.0 PyPI version JSON
download
home_pagehttps://github.com/IonRepo/IonDiff
SummaryUnsupervised identification and analysis of ion-hopping events in solid state electrolytes.
upload_time2024-06-08 11:21:38
maintainerNone
docs_urlNone
authorCibrán López Álvarez
requires_pythonNone
licenseMIT License Copyright (c) 2023 IonRepo Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords ionic diffusion unsupervised clustering machine learning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            IonDiff
=======

.. image:: https://raw.githubusercontent.com/IonRepo/IonDiff/0.3/docs/logo.svg
   :width: 20%

Despite playing a central role in the design of high performance solid-state electrolytes, little is known about the processes governing ionic diffusion in these materials and the spatio-temporal correlations acting on migrating particles. Computer simulations can reproduce the trajectories of individual diffusing ions in real time with extraordinary accuracy, thus providing incredibly valuable atomistic data that in practice cannot be resolved by experiments.

However, the identification of hopping events in computer simulations typically relies on active supervision and definition of arbitrary material-dependent geometrical parameters, thus frustrating high throughput screenings of diffusing paths and mechanisms across simulation databases and the assessment of many-diffusing-ion correlations.

Here, we introduce a novel approach for analysing ion hopping events in molecular dynamics (MD) simulations in a facile and totally unsupervised manner, which allows the extraction of completely new descriptors related to these diffusions. Our approach relies on the k-means clustering algorithm and allows to identify with precision which and when particles diffuse in a simulation and the exact migrating paths that they follow as well.

Please be aware that the code is under active development, bug reports are welcomed in the GitHub issues!

Installation
------------

IonDiff can be installed from PyPI::

    pip3 install IonDiff

or directly from source::

    git clone https://github.com/IonRepo/IonDiff.git
    cd IonDiff
    pip3 install -r requirements.txt

Execution
---------

To extract the diffusion paths from a **XDATCAR** simulation file (with its corresponding **INCAR** file) located in the *examples* folder, from the IonDiff folder run::

    python3 cli.py identify_diffusion --MD_path examples

To analyze temporal correlations among the diffusions of different simulations, from the IonDiff folder run::

    python3 cli.py analyze_correlations

and to extract atomistic descriptors from the simulation and diffusion events run::

    python3 cli.py analyze_descriptors

where it has to be provided a file named **DIFFUSION_paths**, as in the *examples* folder, for which each line represents the relative path to a simulation folder which is to be considered, name of the compound, its stoichiometricity/polymorph and the temperature of the simulation. Each folder must contain a **XDATCAR** simulation file (with its corresponding **INCAR** file).

An *ab initio* MD simulation based on density functional theory of non-stoichiometric Li\ :sub:`7`\ La\ :sub:`3`\ Zr\ :sub:`2`\ O\ :sub:`12`\ (LLZO) fast-ion conductor at a temperature of 400K is provided to run as an example:

- `examples/INCAR <examples/INCAR>`_: Basic parameters of the simulation (only **POTIM** and **NBLOCK** flags are considered).
- `examples/XDATCAR <examples/XDATCAR>`_: Concatenation of all simulated configurations (recorded each **NBLOCK** simulation steps).
- `examples/README.md <examples/README.md>`_: More specific information regarding these files.

Authors
-------

IonDiff is being developed by:

- Cibrán López
- Riccardo Rurali
- Claudio Cazorla

Contact, questions and contributing
-----------------------------------

If you have questions, please don't hesitate to reach out at: cibran.lopez@upc.edu

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/IonRepo/IonDiff",
    "name": "IonDiff",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "Ionic Diffusion, Unsupervised Clustering, Machine Learning",
    "author": "Cibr\u00e1n L\u00f3pez \u00c1lvarez",
    "author_email": "cibran.lopez@upc.edu",
    "download_url": "https://files.pythonhosted.org/packages/60/6e/e845bccac96f889fac751fe50049395b03ccadf69a9580bfaa23d542695f/IonDiff-1.0.tar.gz",
    "platform": null,
    "description": "IonDiff\n=======\n\n.. image:: https://raw.githubusercontent.com/IonRepo/IonDiff/0.3/docs/logo.svg\n   :width: 20%\n\nDespite playing a central role in the design of high performance solid-state electrolytes, little is known about the processes governing ionic diffusion in these materials and the spatio-temporal correlations acting on migrating particles. Computer simulations can reproduce the trajectories of individual diffusing ions in real time with extraordinary accuracy, thus providing incredibly valuable atomistic data that in practice cannot be resolved by experiments.\n\nHowever, the identification of hopping events in computer simulations typically relies on active supervision and definition of arbitrary material-dependent geometrical parameters, thus frustrating high throughput screenings of diffusing paths and mechanisms across simulation databases and the assessment of many-diffusing-ion correlations.\n\nHere, we introduce a novel approach for analysing ion hopping events in molecular dynamics (MD) simulations in a facile and totally unsupervised manner, which allows the extraction of completely new descriptors related to these diffusions. Our approach relies on the k-means clustering algorithm and allows to identify with precision which and when particles diffuse in a simulation and the exact migrating paths that they follow as well.\n\nPlease be aware that the code is under active development, bug reports are welcomed in the GitHub issues!\n\nInstallation\n------------\n\nIonDiff can be installed from PyPI::\n\n    pip3 install IonDiff\n\nor directly from source::\n\n    git clone https://github.com/IonRepo/IonDiff.git\n    cd IonDiff\n    pip3 install -r requirements.txt\n\nExecution\n---------\n\nTo extract the diffusion paths from a **XDATCAR** simulation file (with its corresponding **INCAR** file) located in the *examples* folder, from the IonDiff folder run::\n\n    python3 cli.py identify_diffusion --MD_path examples\n\nTo analyze temporal correlations among the diffusions of different simulations, from the IonDiff folder run::\n\n    python3 cli.py analyze_correlations\n\nand to extract atomistic descriptors from the simulation and diffusion events run::\n\n    python3 cli.py analyze_descriptors\n\nwhere it has to be provided a file named **DIFFUSION_paths**, as in the *examples* folder, for which each line represents the relative path to a simulation folder which is to be considered, name of the compound, its stoichiometricity/polymorph and the temperature of the simulation. Each folder must contain a **XDATCAR** simulation file (with its corresponding **INCAR** file).\n\nAn *ab initio* MD simulation based on density functional theory of non-stoichiometric Li\\ :sub:`7`\\ La\\ :sub:`3`\\ Zr\\ :sub:`2`\\ O\\ :sub:`12`\\ (LLZO) fast-ion conductor at a temperature of 400K is provided to run as an example:\n\n- `examples/INCAR <examples/INCAR>`_: Basic parameters of the simulation (only **POTIM** and **NBLOCK** flags are considered).\n- `examples/XDATCAR <examples/XDATCAR>`_: Concatenation of all simulated configurations (recorded each **NBLOCK** simulation steps).\n- `examples/README.md <examples/README.md>`_: More specific information regarding these files.\n\nAuthors\n-------\n\nIonDiff is being developed by:\n\n- Cibr\u00e1n L\u00f3pez\n- Riccardo Rurali\n- Claudio Cazorla\n\nContact, questions and contributing\n-----------------------------------\n\nIf you have questions, please don't hesitate to reach out at: cibran.lopez@upc.edu\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2023 IonRepo  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Unsupervised identification and analysis of ion-hopping events in solid state electrolytes.",
    "version": "1.0",
    "project_urls": {
        "Download": "https://github.com/IonRepo/IonDiff/archive/refs/tags/0.1.tar.gz",
        "Homepage": "https://github.com/IonRepo/IonDiff"
    },
    "split_keywords": [
        "ionic diffusion",
        " unsupervised clustering",
        " machine learning"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2b864d4b900826b96fe5e3f150143071689a16825827f63931ac8fed1dcdbf06",
                "md5": "b10c67060d611534aed9e3d9a28369c5",
                "sha256": "83be913d3ffe884817638096280d160eb5e972c1711e50d28773179426212659"
            },
            "downloads": -1,
            "filename": "IonDiff-1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b10c67060d611534aed9e3d9a28369c5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 18914,
            "upload_time": "2024-06-08T11:21:36",
            "upload_time_iso_8601": "2024-06-08T11:21:36.747455Z",
            "url": "https://files.pythonhosted.org/packages/2b/86/4d4b900826b96fe5e3f150143071689a16825827f63931ac8fed1dcdbf06/IonDiff-1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "606ee845bccac96f889fac751fe50049395b03ccadf69a9580bfaa23d542695f",
                "md5": "915346330a0d6ef0c8412f0501133bd4",
                "sha256": "a3eada2c294bb6223ffe0f54b338877808815906fe7c904a8f5f0153fa7f87ab"
            },
            "downloads": -1,
            "filename": "IonDiff-1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "915346330a0d6ef0c8412f0501133bd4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 17106,
            "upload_time": "2024-06-08T11:21:38",
            "upload_time_iso_8601": "2024-06-08T11:21:38.474549Z",
            "url": "https://files.pythonhosted.org/packages/60/6e/e845bccac96f889fac751fe50049395b03ccadf69a9580bfaa23d542695f/IonDiff-1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-08 11:21:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "IonRepo",
    "github_project": "IonDiff",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "iondiff"
}
        
Elapsed time: 0.54989s