aton


Nameaton JSON
Version 0.0.1rc29 PyPI version JSON
download
home_pageNone
SummaryThe Ab-iniTiO & Neutron research toolbox, or Aton, provides powerful and comprehensive tools for cutting-edge materials research, focused on (but not limited to) neutron science.
upload_time2025-01-21 15:01:37
maintainerNone
docs_urlNone
authorPablo Gila-Herranz
requires_python>=3
licenseAGPL-3.0
keywords aton neutron neutron research spectra inelastic neutron scattering ins ab-initio dft density functional theory md molecular dynamics quantum espresso phonopy castep
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center"><img width="40.0%" src="pics/aton.png"></p>


# Welcome to ATON

The **A**b-ini**T**i**O** & **N**eutron research toolbox,
or [ATON](https://pablogila.github.io/ATON/),
provides powerful and comprehensive tools
for cutting-edge materials research,
focused on (but not limited to) neutron science.

Just like its [ancient Egyptian deity](https://en.wikipedia.org/wiki/Aten) counterpart,
this all-in-one Python package contains a range of tools from spectra normalisation to deuteration estimations.
A set of physico-chemical constants and definitions is also included.
ATON also allows you to easily create, edit and analyse all kinds of text files,
with a special focus on *ab-initio* calculation files.
In particular, it contains interfaces for [Quantum ESPRESSO](https://www.quantum-espresso.org/),
[Phonopy](https://phonopy.github.io/phonopy/) and [CASTEP](https://castep-docs.github.io/castep-docs/).  

The source code is available on [GitHub](https://github.com/pablogila/ATON/).   
Check the [full documentation online](https://pablogila.github.io/ATON/).  


---


# Installation

As always, it is recommended to install your packages in a virtual environment:  
```bash
python3 -m venv .venv
source .venv/bin/activate
```


## With pip

The fastest way to install ATON is through pip:  
```bash
pip install aton
```

To upgrade to a newer version,
```bash
pip install aton -U
```


## From source

Optionally, you can install ATON from the [GitHub repository](https://github.com/pablogila/ATON/).  

First install the dependencies:  
```bash
pip install pandas numpy scipy matplotlib
```

Then clone the repository or download the [latest stable release](https://github.com/pablogila/Aton/tags) as a ZIP, unzip it, and run inside the `Aton/` directory:  
```bash
pip install .
```


---


# Documentation

The full ATON documentation is available [online](https://pablogila.github.io/ATON/).  
An offline version of the documentation is found at `docs/aton.html`.  
Code examples are included in the [`ATON/examples/`](https://github.com/pablogila/ATON/tree/main/examples) folder.    


## Interfaces for *ab-initio* codes

The **interface** module contains interfaces for several *ab-initio* codes.
These are powered by the [aton.txt](#general-text-edition) module and can be easily extended.

### [aton.interface](https://pablogila.github.io/ATON/aton/interface.html)

| | |  
| --- | --- |  
| [interface.qe](https://pablogila.github.io/ATON/aton/interface/qe.html)           | Interface for [Quantum ESPRESSO](https://www.quantum-espresso.org/)'s [pw.x](https://www.quantum-espresso.org/Doc/INPUT_PW.html) module |  
| [interface.phonopy](https://pablogila.github.io/ATON/aton/interface/phonopy.html) | Interface for [Phonopy](https://phonopy.github.io/phonopy/) calculations |  
| [interface.castep](https://pablogila.github.io/ATON/aton/interface/castep.html)   | Interface for [CASTEP](https://castep-docs.github.io/castep-docs/) calculations |  
| [interface.slurm](https://pablogila.github.io/ATON/aton/interface/slurm.html) | Batch jobs via [Slurm](https://slurm.schedmd.com/) |


## Physico-chemical constants

The **phys** module contains physico-chemical definitions.
Values are accessed directly as `phys.value` or `phys.function()`.

### [aton.phys](https://pablogila.github.io/ATON/aton/phys.html)

| | |  
| --- | --- |  
| [phys.units](https://pablogila.github.io/ATON/aton/phys/units.html)         | Physical constants and conversion factors |  
| [phys.atoms](https://pablogila.github.io/ATON/aton/phys/atoms.html)         | Megadictionary with data for all chemical elements |  
| [phys.functions](https://pablogila.github.io/ATON/aton/phys/functions.html) | Functions to sort and analyse element data, and to update the atoms dictionary |  


## Spectra analysis

The **spx** module includes tools for spectral analysis from
Inelastic Neutron Scattering, Raman, Infrared, etc.

### [aton.spx](https://pablogila.github.io/ATON/aton/spx.html)

| | |  
| --- | --- |  
| [spx.classes](https://pablogila.github.io/ATON/aton/spx/classes.html)     | Class definitions for the spectra module |  
| [spx.fit](https://pablogila.github.io/ATON/aton/spx/fit.html)             | Spectra fitting functions |  
| [spx.normalize](https://pablogila.github.io/ATON/aton/spx/normalize.html) | Spectra normalization |  
| [spx.plot](https://pablogila.github.io/ATON/aton/spx/plot.html)           | Plotting |  
| [spx.deuterium](https://pablogila.github.io/ATON/aton/spx/deuterium.html) | Deuteration estimations via INS |  
| [spx.samples](https://pablogila.github.io/ATON/aton/spx/samples.html)     | Sample materials for testing |  


## General text edition

The **text** module handles text files.
It powers more complex subpackages,
such as [aton.interface](#interfaces-for-ab-initio-codes).

### [aton.txt](https://pablogila.github.io/ATON/aton/txt.html)

| | |  
| --- | --- |  
| [txt.find](https://pablogila.github.io/ATON/aton/txt/find.html)       | Search for specific content in text files |  
| [txt.edit](https://pablogila.github.io/ATON/aton/txt/edit.html)       | Manipulate text files |  
| [txt.extract](https://pablogila.github.io/ATON/aton/txt/extract.html) | Extract data from raw text strings |  


## System tools

The **st** module contains System Tools for common system tasks across subpackages.

### [aton.st](https://pablogila.github.io/ATON/aton/st.html)

| | |  
| --- | --- |  
| [st.file](https://pablogila.github.io/ATON/aton/st/file.html)   | File manipulation |  
| [st.call](https://pablogila.github.io/ATON/aton/st/call.html)   | Run bash scripts and related |  
| [st.alias](https://pablogila.github.io/ATON/aton/st/alias.html) | Useful dictionaries for user input correction |  


---


# Contributing

If you are interested in opening an issue or a pull request, please feel free to do so on [GitHub](https://github.com/pablogila/ATON/).  
For major changes, please get in touch first to discuss the details.  


## Code style

Please try to follow some general guidelines:  
- Use a code style consistent with the rest of the project.  
- Include docstrings to document new additions.  
- Include automated tests for new features or modifications, see [automated testing](#automated-testing).  
- Arrange function arguments by order of relevance. Most implemented functions follow something similar to `function(file, key/s, value/s, optional)`.  


## Automated testing

If you are modifying the source code, you should run the automated tests of the [`ATON/tests/`](https://github.com/pablogila/ATON/tree/main/tests) folder to check that everything works as intended.
To do so, first install PyTest in your environment,
```bash
pip install pytest
```

And then run PyTest inside the `ATON/` directory,
```bash
pytest -vv
```


## Compiling the documentation

The documentation can be compiled automatically to `docs/aton.html` with [Pdoc](https://pdoc.dev/) and ATON itself, by running:
```shell
python3 makedocs.py
```

This runs Pdoc, updating links and pictures, and using the custom theme CSS template from the `css/` folder.


---


# Citation

ATON development started for the following paper, please cite if you use ATON in your work:  
[*Cryst. Growth Des.* 2024, 24, 391−404](https://doi.org/10.1021/acs.cgd.3c01112)  


# License

Copyright (C) 2025 Pablo Gila-Herranz  
This program is free software: you can redistribute it and/or modify
it under the terms of the **GNU Affero General Public License** as published
by the Free Software Foundation, either version **3** of the License, or
(at your option) any later version.  
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
See the attached GNU Affero General Public License for more details.  


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "aton",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3",
    "maintainer_email": null,
    "keywords": "Aton, Neutron, Neutron research, Spectra, Inelastic Neutron Scattering, INS, Ab-initio, DFT, Density Functional Theory, MD, Molecular Dynamics, Quantum ESPRESSO, Phonopy, CASTEP",
    "author": "Pablo Gila-Herranz",
    "author_email": "pgila001@ikasle.ehu.eus",
    "download_url": "https://files.pythonhosted.org/packages/f4/5d/7a1ffb2ff4b43947055524e217e33201161d5c40cc2ff0e4fa6e1cf11174/aton-0.0.1rc29.tar.gz",
    "platform": null,
    "description": "<p align=\"center\"><img width=\"40.0%\" src=\"pics/aton.png\"></p>\n\n\n# Welcome to ATON\n\nThe **A**b-ini**T**i**O** & **N**eutron research toolbox,\nor [ATON](https://pablogila.github.io/ATON/),\nprovides powerful and comprehensive tools\nfor cutting-edge materials research,\nfocused on (but not limited to) neutron science.\n\nJust like its [ancient Egyptian deity](https://en.wikipedia.org/wiki/Aten) counterpart,\nthis all-in-one Python package contains a range of tools from spectra normalisation to deuteration estimations.\nA set of physico-chemical constants and definitions is also included.\nATON also allows you to easily create, edit and analyse all kinds of text files,\nwith a special focus on *ab-initio* calculation files.\nIn particular, it contains interfaces for [Quantum ESPRESSO](https://www.quantum-espresso.org/),\n[Phonopy](https://phonopy.github.io/phonopy/) and [CASTEP](https://castep-docs.github.io/castep-docs/).  \n\nThe source code is available on [GitHub](https://github.com/pablogila/ATON/).   \nCheck the [full documentation online](https://pablogila.github.io/ATON/).  \n\n\n---\n\n\n# Installation\n\nAs always, it is recommended to install your packages in a virtual environment:  \n```bash\npython3 -m venv .venv\nsource .venv/bin/activate\n```\n\n\n## With pip\n\nThe fastest way to install ATON is through pip:  \n```bash\npip install aton\n```\n\nTo upgrade to a newer version,\n```bash\npip install aton -U\n```\n\n\n## From source\n\nOptionally, you can install ATON from the [GitHub repository](https://github.com/pablogila/ATON/).  \n\nFirst install the dependencies:  \n```bash\npip install pandas numpy scipy matplotlib\n```\n\nThen clone the repository or download the [latest stable release](https://github.com/pablogila/Aton/tags) as a ZIP, unzip it, and run inside the `Aton/` directory:  \n```bash\npip install .\n```\n\n\n---\n\n\n# Documentation\n\nThe full ATON documentation is available [online](https://pablogila.github.io/ATON/).  \nAn offline version of the documentation is found at `docs/aton.html`.  \nCode examples are included in the [`ATON/examples/`](https://github.com/pablogila/ATON/tree/main/examples) folder.    \n\n\n## Interfaces for *ab-initio* codes\n\nThe **interface** module contains interfaces for several *ab-initio* codes.\nThese are powered by the [aton.txt](#general-text-edition) module and can be easily extended.\n\n### [aton.interface](https://pablogila.github.io/ATON/aton/interface.html)\n\n| | |  \n| --- | --- |  \n| [interface.qe](https://pablogila.github.io/ATON/aton/interface/qe.html)           | Interface for [Quantum ESPRESSO](https://www.quantum-espresso.org/)'s [pw.x](https://www.quantum-espresso.org/Doc/INPUT_PW.html) module |  \n| [interface.phonopy](https://pablogila.github.io/ATON/aton/interface/phonopy.html) | Interface for [Phonopy](https://phonopy.github.io/phonopy/) calculations |  \n| [interface.castep](https://pablogila.github.io/ATON/aton/interface/castep.html)   | Interface for [CASTEP](https://castep-docs.github.io/castep-docs/) calculations |  \n| [interface.slurm](https://pablogila.github.io/ATON/aton/interface/slurm.html) | Batch jobs via [Slurm](https://slurm.schedmd.com/) |\n\n\n## Physico-chemical constants\n\nThe **phys** module contains physico-chemical definitions.\nValues are accessed directly as `phys.value` or `phys.function()`.\n\n### [aton.phys](https://pablogila.github.io/ATON/aton/phys.html)\n\n| | |  \n| --- | --- |  \n| [phys.units](https://pablogila.github.io/ATON/aton/phys/units.html)         | Physical constants and conversion factors |  \n| [phys.atoms](https://pablogila.github.io/ATON/aton/phys/atoms.html)         | Megadictionary with data for all chemical elements |  \n| [phys.functions](https://pablogila.github.io/ATON/aton/phys/functions.html) | Functions to sort and analyse element data, and to update the atoms dictionary |  \n\n\n## Spectra analysis\n\nThe **spx** module includes tools for spectral analysis from\nInelastic Neutron Scattering, Raman, Infrared, etc.\n\n### [aton.spx](https://pablogila.github.io/ATON/aton/spx.html)\n\n| | |  \n| --- | --- |  \n| [spx.classes](https://pablogila.github.io/ATON/aton/spx/classes.html)     | Class definitions for the spectra module |  \n| [spx.fit](https://pablogila.github.io/ATON/aton/spx/fit.html)             | Spectra fitting functions |  \n| [spx.normalize](https://pablogila.github.io/ATON/aton/spx/normalize.html) | Spectra normalization |  \n| [spx.plot](https://pablogila.github.io/ATON/aton/spx/plot.html)           | Plotting |  \n| [spx.deuterium](https://pablogila.github.io/ATON/aton/spx/deuterium.html) | Deuteration estimations via INS |  \n| [spx.samples](https://pablogila.github.io/ATON/aton/spx/samples.html)     | Sample materials for testing |  \n\n\n## General text edition\n\nThe **text** module handles text files.\nIt powers more complex subpackages,\nsuch as [aton.interface](#interfaces-for-ab-initio-codes).\n\n### [aton.txt](https://pablogila.github.io/ATON/aton/txt.html)\n\n| | |  \n| --- | --- |  \n| [txt.find](https://pablogila.github.io/ATON/aton/txt/find.html)       | Search for specific content in text files |  \n| [txt.edit](https://pablogila.github.io/ATON/aton/txt/edit.html)       | Manipulate text files |  \n| [txt.extract](https://pablogila.github.io/ATON/aton/txt/extract.html) | Extract data from raw text strings |  \n\n\n## System tools\n\nThe **st** module contains System Tools for common system tasks across subpackages.\n\n### [aton.st](https://pablogila.github.io/ATON/aton/st.html)\n\n| | |  \n| --- | --- |  \n| [st.file](https://pablogila.github.io/ATON/aton/st/file.html)   | File manipulation |  \n| [st.call](https://pablogila.github.io/ATON/aton/st/call.html)   | Run bash scripts and related |  \n| [st.alias](https://pablogila.github.io/ATON/aton/st/alias.html) | Useful dictionaries for user input correction |  \n\n\n---\n\n\n# Contributing\n\nIf you are interested in opening an issue or a pull request, please feel free to do so on [GitHub](https://github.com/pablogila/ATON/).  \nFor major changes, please get in touch first to discuss the details.  \n\n\n## Code style\n\nPlease try to follow some general guidelines:  \n- Use a code style consistent with the rest of the project.  \n- Include docstrings to document new additions.  \n- Include automated tests for new features or modifications, see [automated testing](#automated-testing).  \n- Arrange function arguments by order of relevance. Most implemented functions follow something similar to `function(file, key/s, value/s, optional)`.  \n\n\n## Automated testing\n\nIf you are modifying the source code, you should run the automated tests of the [`ATON/tests/`](https://github.com/pablogila/ATON/tree/main/tests) folder to check that everything works as intended.\nTo do so, first install PyTest in your environment,\n```bash\npip install pytest\n```\n\nAnd then run PyTest inside the `ATON/` directory,\n```bash\npytest -vv\n```\n\n\n## Compiling the documentation\n\nThe documentation can be compiled automatically to `docs/aton.html` with [Pdoc](https://pdoc.dev/) and ATON itself, by running:\n```shell\npython3 makedocs.py\n```\n\nThis runs Pdoc, updating links and pictures, and using the custom theme CSS template from the `css/` folder.\n\n\n---\n\n\n# Citation\n\nATON development started for the following paper, please cite if you use ATON in your work:  \n[*Cryst. Growth Des.* 2024, 24, 391\u2212404](https://doi.org/10.1021/acs.cgd.3c01112)  \n\n\n# License\n\nCopyright (C) 2025 Pablo Gila-Herranz  \nThis program is free software: you can redistribute it and/or modify\nit under the terms of the **GNU Affero General Public License** as published\nby the Free Software Foundation, either version **3** of the License, or\n(at your option) any later version.  \nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  \nSee the attached GNU Affero General Public License for more details.  \n\n",
    "bugtrack_url": null,
    "license": "AGPL-3.0",
    "summary": "The Ab-iniTiO & Neutron research toolbox, or Aton, provides powerful and comprehensive tools for cutting-edge materials research, focused on (but not limited to) neutron science.",
    "version": "0.0.1rc29",
    "project_urls": null,
    "split_keywords": [
        "aton",
        " neutron",
        " neutron research",
        " spectra",
        " inelastic neutron scattering",
        " ins",
        " ab-initio",
        " dft",
        " density functional theory",
        " md",
        " molecular dynamics",
        " quantum espresso",
        " phonopy",
        " castep"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "94645f198e19399aa87c205a5ff72203e9022bc9302c26e156899091119d1e2e",
                "md5": "700188778a3eb84a8a427abd56edb9a5",
                "sha256": "5a76dc31c05d6733cad4534a9007d3861595cfbae35b476f42d223684cdd5e6a"
            },
            "downloads": -1,
            "filename": "aton-0.0.1rc29-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "700188778a3eb84a8a427abd56edb9a5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3",
            "size": 98683,
            "upload_time": "2025-01-21T15:01:34",
            "upload_time_iso_8601": "2025-01-21T15:01:34.328396Z",
            "url": "https://files.pythonhosted.org/packages/94/64/5f198e19399aa87c205a5ff72203e9022bc9302c26e156899091119d1e2e/aton-0.0.1rc29-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f45d7a1ffb2ff4b43947055524e217e33201161d5c40cc2ff0e4fa6e1cf11174",
                "md5": "b7d652a6585694052873936a577fe9b1",
                "sha256": "5243098c131e6028fa27e399f32f0bc1e986efa38ff67196adb62f7cb70445be"
            },
            "downloads": -1,
            "filename": "aton-0.0.1rc29.tar.gz",
            "has_sig": false,
            "md5_digest": "b7d652a6585694052873936a577fe9b1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3",
            "size": 89698,
            "upload_time": "2025-01-21T15:01:37",
            "upload_time_iso_8601": "2025-01-21T15:01:37.608743Z",
            "url": "https://files.pythonhosted.org/packages/f4/5d/7a1ffb2ff4b43947055524e217e33201161d5c40cc2ff0e4fa6e1cf11174/aton-0.0.1rc29.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-21 15:01:37",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "aton"
}
        
Elapsed time: 0.96405s