crystals
========
[![Documentation Status](https://readthedocs.org/projects/crystals/badge/?version=master)](https://crystals.readthedocs.io/) [![PyPI Package latest release](https://img.shields.io/pypi/v/crystals.svg)](https://pypi.python.org/pypi/crystals) [![Conda-forge Version](https://img.shields.io/conda/vn/conda-forge/crystals.svg)](https://anaconda.org/conda-forge/crystals) [![DOI badge](https://img.shields.io/badge/DOI-10.1186%2Fs40679--018--0060--y-blue)](https://doi.org/10.1186/s40679-018-0060-y)
`crystals` is a library of data structure and algorithms to manipulate
abstract crystals in a Pythonic way. `crystals` helps with reading
crystallographic files (like .cif and .pdb), provides access to atomic
positions, scattering utilities, allows for symmetry determination, and
indexing of diffraction peaks. Although `crystals` can be used on its own,
it was made to be integrated into larger projects (like
[scikit-ued](https://github.com/LaurentRDC/scikit-ued)).
Take a look at the [documentation](https://crystals.readthedocs.io/) for
more information and examples.
Installation
------------
`crystals` is available on the Python Package Index:
pip install crystals
For users of the conda package manager, `crystals` is also available
from the conda-forge channel:
conda install -c conda-forge crystals
### From source
`crystals` can also be installed from source:
git clone https://github.com/LaurentRDC/crystals.git
cd crystals
python setup.py install
You can install the latest development version using `pip` as well:
python -m pip install git+git://github.com/LaurentRDC/crystals.git
To build documentation, you will need a few more packages, listed in
`dev-requirements.txt`. For example, to build documentation from source:
git clone https://github.com/LaurentRDC/crystals.git
cd crystals
pip install -r dev-requirements.txt
python setup.py build_sphinx
Documentation
-------------
The documentation, including user guides as well as detailed reference,
is available here: <https://crystals.readthedocs.io/>
Development
-----------
Tests can be run with the `pytest` package:
python -m pytest --pyargs crystals
Some optional tests might be skipped if dependencies are not installed,
e.g. [ASE](https://wiki.fysik.dtu.dk/ase/).
Citations
---------
As this package is a spinoff from `scikit-ued`, please consider citing
the following publication if you find `crystals` useful:
> L. P. René de Cotret, M. R. Otto, M. J. Stern. and B. J. Siwick, *An open-source software ecosystem for the interactive exploration of ultrafast electron scattering data*, Advanced Structural and Chemical Imaging 4:11 (2018) [DOI: 10.1186/s40679-018-0060-y.](https://ascimaging.springeropen.com/articles/10.1186/s40679-018-0060-y)
Underlying algorithms provided by `spglib` are described in the
following publication:
> A. Togo and I. Tanaka, *spglib: a software library for crystal symmetry search*. [https://arxiv.org/abs/1808.01590](https://arxiv.org/abs/1808.01590) (written at version 1.10.4).
Structure parsing from CIF files has been tested for correctness against
CIF2CELL, detailed here:
> Torbjorn Bjorkman, *CIF2Cell: Generating geometries for electronic structure programs*, Computer Physics Communications 182, 1183-1186 (2011) [DOI: 10.1016/j.cpc.2011.01.013](https://doi.org/10.1016/j.cpc.2011.01.013)
Structure parsing from PDB files has been tested for correctness against
`Bio.PDB`, detailed here:
> Hamelryck, T., Manderick, B. *PDB parser and structure class implemented in Python*. Bioinformatics 19: 2308–2310 (2003)
Atomic weights are reported in the following publication:
> Meija, J., Coplen, T., Berglund, M., et al. (2016). *Atomic weights of the elements 2013* (IUPAC Technical Report). Pure and Applied Chemistry, 88(3), pp. 265-291. Retrieved 30 Nov. 2016, [DOI:10.1515/pac-2015-0305](https://doi.org/10.1515/pac-2015-0305)
Covalent radii are reported in the following article:
> Cordero, B. et al. (2008). *Covalent radii revisited*. Dalton Transactions, issue 21, pp. 2832-2838. The Royal Society of Chemistry. [DOI: 10.1039/B801115j](https://dx.doi.org/10.1039/B801115J)
Support / Report Issues
-----------------------
All support requests and issue reports should be [filed on Github as an
issue](https://github.com/LaurentRDC/crystals/issues).
License
-------
`crystals` is made available under the GPLv3 license. For more
details, see [LICENSE](https://github.com/LaurentRDC/crystals/blob/master/LICENSE).
Related projects
----------------
- Streaming operations on NumPy arrays are available in the [npstreams
package](https://pypi.org/pypi/npstreams).
- Interactive exploration of ultrafast electron diffraction data with
the [iris-ued package](https://pypi.org/project/iris-ued/).
- Data structures and algorithms to handle ultrafast electron
scattering data in the [scikit-ued
package](https://pypi.org/project/scikit-ued).
Raw data
{
"_id": null,
"home_page": "http://crystals.readthedocs.io",
"name": "crystals",
"maintainer": "Laurent P. Ren\u00e9 de Cotret",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "laurent.renedecotret@mail.mcgill.ca",
"keywords": "crystallography,material science,structural biology",
"author": "Laurent P. Ren\u00e9 de Cotret",
"author_email": "laurent.renedecotret@mail.mcgill.ca",
"download_url": "https://files.pythonhosted.org/packages/30/88/4991ae504e028c50ec80a08a5cfdb5bf8d21c58e3bc6a49d7d467b2e864d/crystals-1.6.2.tar.gz",
"platform": null,
"description": "crystals\n========\n[![Documentation Status](https://readthedocs.org/projects/crystals/badge/?version=master)](https://crystals.readthedocs.io/) [![PyPI Package latest release](https://img.shields.io/pypi/v/crystals.svg)](https://pypi.python.org/pypi/crystals) [![Conda-forge Version](https://img.shields.io/conda/vn/conda-forge/crystals.svg)](https://anaconda.org/conda-forge/crystals) [![DOI badge](https://img.shields.io/badge/DOI-10.1186%2Fs40679--018--0060--y-blue)](https://doi.org/10.1186/s40679-018-0060-y)\n\n`crystals` is a library of data structure and algorithms to manipulate\nabstract crystals in a Pythonic way. `crystals` helps with reading\ncrystallographic files (like .cif and .pdb), provides access to atomic\npositions, scattering utilities, allows for symmetry determination, and\nindexing of diffraction peaks. Although `crystals` can be used on its own, \nit was made to be integrated into larger projects (like\n[scikit-ued](https://github.com/LaurentRDC/scikit-ued)).\n\nTake a look at the [documentation](https://crystals.readthedocs.io/) for\nmore information and examples.\n\nInstallation\n------------\n\n`crystals` is available on the Python Package Index:\n\n pip install crystals\n\nFor users of the conda package manager, `crystals` is also available\nfrom the conda-forge channel:\n\n conda install -c conda-forge crystals\n\n### From source\n\n`crystals` can also be installed from source:\n\n git clone https://github.com/LaurentRDC/crystals.git\n cd crystals\n python setup.py install\n\nYou can install the latest development version using `pip` as well:\n\n python -m pip install git+git://github.com/LaurentRDC/crystals.git\n\nTo build documentation, you will need a few more packages, listed in\n`dev-requirements.txt`. For example, to build documentation from source:\n\n git clone https://github.com/LaurentRDC/crystals.git\n cd crystals\n pip install -r dev-requirements.txt\n python setup.py build_sphinx\n\nDocumentation\n-------------\n\nThe documentation, including user guides as well as detailed reference,\nis available here: <https://crystals.readthedocs.io/>\n\nDevelopment\n-----------\n\nTests can be run with the `pytest` package:\n\n python -m pytest --pyargs crystals\n\nSome optional tests might be skipped if dependencies are not installed,\ne.g. [ASE](https://wiki.fysik.dtu.dk/ase/).\n\nCitations\n---------\n\nAs this package is a spinoff from `scikit-ued`, please consider citing\nthe following publication if you find `crystals` useful:\n\n> L. P. Ren\u00e9 de Cotret, M. R. Otto, M. J. Stern. and B. J. Siwick, *An open-source software ecosystem for the interactive exploration of ultrafast electron scattering data*, Advanced Structural and Chemical Imaging 4:11 (2018) [DOI: 10.1186/s40679-018-0060-y.](https://ascimaging.springeropen.com/articles/10.1186/s40679-018-0060-y)\n\nUnderlying algorithms provided by `spglib` are described in the\nfollowing publication:\n\n> A. Togo and I. Tanaka, *spglib: a software library for crystal symmetry search*. [https://arxiv.org/abs/1808.01590](https://arxiv.org/abs/1808.01590) (written at version 1.10.4).\n\nStructure parsing from CIF files has been tested for correctness against\nCIF2CELL, detailed here:\n\n> Torbjorn Bjorkman, *CIF2Cell: Generating geometries for electronic structure programs*, Computer Physics Communications 182, 1183-1186 (2011) [DOI: 10.1016/j.cpc.2011.01.013](https://doi.org/10.1016/j.cpc.2011.01.013)\n\nStructure parsing from PDB files has been tested for correctness against\n`Bio.PDB`, detailed here:\n\n> Hamelryck, T., Manderick, B. *PDB parser and structure class implemented in Python*. Bioinformatics 19: 2308\u20132310 (2003)\n\nAtomic weights are reported in the following publication:\n\n> Meija, J., Coplen, T., Berglund, M., et al. (2016). *Atomic weights of the elements 2013* (IUPAC Technical Report). Pure and Applied Chemistry, 88(3), pp. 265-291. Retrieved 30 Nov. 2016, [DOI:10.1515/pac-2015-0305](https://doi.org/10.1515/pac-2015-0305)\n\nCovalent radii are reported in the following article:\n\n> Cordero, B. et al. (2008). *Covalent radii revisited*. Dalton Transactions, issue 21, pp. 2832-2838. The Royal Society of Chemistry. [DOI: 10.1039/B801115j](https://dx.doi.org/10.1039/B801115J)\n\nSupport / Report Issues\n-----------------------\n\nAll support requests and issue reports should be [filed on Github as an\nissue](https://github.com/LaurentRDC/crystals/issues).\n\nLicense\n-------\n\n`crystals` is made available under the GPLv3 license. For more\ndetails, see [LICENSE](https://github.com/LaurentRDC/crystals/blob/master/LICENSE).\n\nRelated projects\n----------------\n\n- Streaming operations on NumPy arrays are available in the [npstreams\n package](https://pypi.org/pypi/npstreams).\n- Interactive exploration of ultrafast electron diffraction data with\n the [iris-ued package](https://pypi.org/project/iris-ued/).\n- Data structures and algorithms to handle ultrafast electron\n scattering data in the [scikit-ued\n package](https://pypi.org/project/scikit-ued).\n\n\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "Data structures for crystallography",
"version": "1.6.2",
"project_urls": {
"Documentation": "https://crystals.readthedocs.io/",
"Download": "http://github.com/LaurentRDC/crystals",
"Homepage": "http://crystals.readthedocs.io",
"Source": "https://github.com/LaurentRDC/crystals"
},
"split_keywords": [
"crystallography",
"material science",
"structural biology"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ca01bc7af06823b80299e81cb942ffaed5aa8ad54046be0bf3232451cc6f70bb",
"md5": "6d006cd45066f7a5f85bf97dca05928d",
"sha256": "4d19ca3df86763e31da09ee8a8070f790ca846d9e76f05dc05819ca1f01205ca"
},
"downloads": -1,
"filename": "crystals-1.6.2-py3.10.egg",
"has_sig": false,
"md5_digest": "6d006cd45066f7a5f85bf97dca05928d",
"packagetype": "bdist_egg",
"python_version": "1.6.2",
"requires_python": ">=3.7",
"size": 386746,
"upload_time": "2023-01-13T13:58:38",
"upload_time_iso_8601": "2023-01-13T13:58:38.343782Z",
"url": "https://files.pythonhosted.org/packages/ca/01/bc7af06823b80299e81cb942ffaed5aa8ad54046be0bf3232451cc6f70bb/crystals-1.6.2-py3.10.egg",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cce30dbed91764203992093e2094ec358768b405f3745b8c8e2c448fe4c91e93",
"md5": "f925f5ee1f55e228780ba448c427fcb6",
"sha256": "614caee3d5d1cfca4b6db48fc4ff1c6ab5521d2dba91395659df59318a37f5d1"
},
"downloads": -1,
"filename": "crystals-1.6.2-py3.11.egg",
"has_sig": false,
"md5_digest": "f925f5ee1f55e228780ba448c427fcb6",
"packagetype": "bdist_egg",
"python_version": "1.6.2",
"requires_python": ">=3.7",
"size": 450864,
"upload_time": "2023-01-13T13:58:40",
"upload_time_iso_8601": "2023-01-13T13:58:40.067043Z",
"url": "https://files.pythonhosted.org/packages/cc/e3/0dbed91764203992093e2094ec358768b405f3745b8c8e2c448fe4c91e93/crystals-1.6.2-py3.11.egg",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fb85197f291723b68d681bd30f4c37a632aa624b88ecf4aa5f1569a9907253a4",
"md5": "476ed000b764e6ea1727da7ec7870f68",
"sha256": "0b269c32e9c8b666ca4349b9ed32d0c2e8616f4f72e6fe2dec760b51b03de417"
},
"downloads": -1,
"filename": "crystals-1.6.2-py3.7.egg",
"has_sig": false,
"md5_digest": "476ed000b764e6ea1727da7ec7870f68",
"packagetype": "bdist_egg",
"python_version": "1.6.2",
"requires_python": ">=3.7",
"size": 360673,
"upload_time": "2023-01-13T13:58:44",
"upload_time_iso_8601": "2023-01-13T13:58:44.455145Z",
"url": "https://files.pythonhosted.org/packages/fb/85/197f291723b68d681bd30f4c37a632aa624b88ecf4aa5f1569a9907253a4/crystals-1.6.2-py3.7.egg",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fef2bbfba3c073326f0061e7dd8d621c4070145645724f4beb5bd8d590bfaec8",
"md5": "55bee3aea7baadf22217021fa21c1e1d",
"sha256": "71d8a1ac0660b17cd586a962f9e6c482a81c278a37c82185e37adf597b4f7936"
},
"downloads": -1,
"filename": "crystals-1.6.2-py3.8.egg",
"has_sig": false,
"md5_digest": "55bee3aea7baadf22217021fa21c1e1d",
"packagetype": "bdist_egg",
"python_version": "1.6.2",
"requires_python": ">=3.7",
"size": 362890,
"upload_time": "2023-01-13T13:58:46",
"upload_time_iso_8601": "2023-01-13T13:58:46.652445Z",
"url": "https://files.pythonhosted.org/packages/fe/f2/bbfba3c073326f0061e7dd8d621c4070145645724f4beb5bd8d590bfaec8/crystals-1.6.2-py3.8.egg",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b285c3e062b2a1efb2959ebbd563e32387e2e22afd51f2942a0338399572612b",
"md5": "e7481b049adb1c051bb161348cb814d1",
"sha256": "07c683c2ca1c46eeada9fbae91315cfc57d589db847edddced355bf6c5875f48"
},
"downloads": -1,
"filename": "crystals-1.6.2-py3.9.egg",
"has_sig": false,
"md5_digest": "e7481b049adb1c051bb161348cb814d1",
"packagetype": "bdist_egg",
"python_version": "1.6.2",
"requires_python": ">=3.7",
"size": 363312,
"upload_time": "2023-01-13T13:58:48",
"upload_time_iso_8601": "2023-01-13T13:58:48.958130Z",
"url": "https://files.pythonhosted.org/packages/b2/85/c3e062b2a1efb2959ebbd563e32387e2e22afd51f2942a0338399572612b/crystals-1.6.2-py3.9.egg",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "aa3a113a5b9720caeacbec438fd7ac85189bc0e3b813450a5b81b8053bd779dc",
"md5": "0374c29076b4951f695b7a1100947cfe",
"sha256": "2a9263f67cb441431026465f38da9d6e70f107b1228cf9c45c13d7e473a81868"
},
"downloads": -1,
"filename": "crystals-1.6.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0374c29076b4951f695b7a1100947cfe",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 257924,
"upload_time": "2023-01-13T13:58:36",
"upload_time_iso_8601": "2023-01-13T13:58:36.704663Z",
"url": "https://files.pythonhosted.org/packages/aa/3a/113a5b9720caeacbec438fd7ac85189bc0e3b813450a5b81b8053bd779dc/crystals-1.6.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "30884991ae504e028c50ec80a08a5cfdb5bf8d21c58e3bc6a49d7d467b2e864d",
"md5": "bca228f189660ebb67d445a375151e0e",
"sha256": "0c5a95e56af35be8f1660128344a3160bce7faaca268213a9c835b667f10366a"
},
"downloads": -1,
"filename": "crystals-1.6.2.tar.gz",
"has_sig": false,
"md5_digest": "bca228f189660ebb67d445a375151e0e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 159122,
"upload_time": "2023-01-13T13:58:50",
"upload_time_iso_8601": "2023-01-13T13:58:50.787077Z",
"url": "https://files.pythonhosted.org/packages/30/88/4991ae504e028c50ec80a08a5cfdb5bf8d21c58e3bc6a49d7d467b2e864d/crystals-1.6.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-13 13:58:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "LaurentRDC",
"github_project": "crystals",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "crystals"
}