<img src="https://raw.githubusercontent.com/MaterSim/PyXtal/master/images/512px_type1.png" alt="PyXtal" width="300"/>
[![Documentation Status](https://readthedocs.org/projects/pyxtal/badge/?version=latest)](https://pyxtal.readthedocs.io/en/latest/?badge=latest)
[![Test Status](https://github.com/MaterSim/PyXtal/workflows/tests/badge.svg)](https://github.com/MaterSim/PyXtal/actions)
[![Download Status](https://img.shields.io/pypi/pyversions/pyxtal)](https://pypi.org/project/pyxtal/)
[![Download Status](https://img.shields.io/pypi/v/pyxtal)](https://pypi.org/project/pyxtal/)
[![Downloads](https://pepy.tech/badge/pyxtal)](https://pepy.tech/project/pyxtal)
[![DOI](https://zenodo.org/badge/128165891.svg)](https://zenodo.org/badge/latestdoi/128165891)
[![Gitter](https://badges.gitter.im/PyXtal/community.svg)](https://gitter.im/PyXtal/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
<img align="right" width="450" src="https://raw.githubusercontent.com/MaterSim/PyXtal/master/images/water.gif">
## Table of content
- [Introduction](#introduction)
- [Quick Start](#quick-start)
- [Current Features](#current-features)
- [Installation](#installation)
- [Citation](#citation)
- [How to contribute?](#how-to-contribute)
## Introduction
PyXtal is an open source Python package which was initiated by [Qiang Zhu](http://qzhu2017.github.io) and Scott Fredericks. The goal of PyXtal is to develop a fundamental library to allow one to design the material structure with a certain symmetry constraint. These structures can exported to various structural formats for further study. See the [documentation](https://pyxtal.readthedocs.io/en/latest/) for more information.
To contribute to this project, please check [How to contribute?](#how-to-contribute).
## Quick Start
- [Atomic crystal](https://nbviewer.jupyter.org/github/MaterSim/PyXtal/blob/master/examples/tutorials_notebook/01_atomic_crystals.ipynb)
- [Molecular crystal](https://nbviewer.jupyter.org/github/MaterSim/PyXtal/blob/master/examples/tutorials_notebook/02_molecular_crystals.ipynb)
- [XRD](https://nbviewer.jupyter.org/github/MaterSim/PyXtal/blob/master/examples/tutorials_notebook/03_pxrd.ipynb)
- [Molecular Packing](https://nbviewer.org/github/MaterSim/PyXtal/blob/master/examples/tutorials_notebook/05-crystal-packing.ipynb)
## Current Features
- Generation of atomic structures for a given symmetry and stoichiometry (0-3D)
- Generation of molecular crystals (1-3D) with the support of special Wyckoff positions.
- Structure manipulation via subgroup/supergroup symmetry relation
- Geometry optimization from built-in and external optimization methods.
- Internal support of ``cif`` file and many other formats via ``pymatgen`` or ``ASE``.
- Easy access to symmetry information (e.g., Wyckoff, site symmetry and international symbols).
- X-ray diffraction analysis and [its online application](https://vxrd.physics.unlv.edu)
## Installation
To install the code, one just needs to do
```sh
pip install pyxtal
```
or
```sh
pip install --upgrade git+https://github.com/MaterSim/PyXtal.git@master
```
If you want to add the Julia package install (required by the use of `pyxtal.lego` module), please use
```sh
export INSTALL_JULIA=1 && pip install pyxtal
```
To check if the installation is successful, run the following script,
```python
from juliacall import Main as jl
jl.seval("using CrystalNets")
print("Success")
```
## Citation
### General PyXtal
Fredericks S, Parrish K, Sayre D, Zhu Q\*(2020)
[PyXtal: a Python Library for Crystal Structure Generation and Symmetry Analysis](https://www.sciencedirect.com/science/article/pii/S0010465520304057).
\[[arXiv link](https://arxiv.org/pdf/1911.11123.pdf)\]
```bib
@article{pyxtal,
title = "PyXtal: A Python library for crystal structure generation and symmetry analysis",
journal = "Computer Physics Communications",
volume = "261",
pages = "107810",
year = "2021",
issn = "0010-4655",
doi = "https://doi.org/10.1016/j.cpc.2020.107810",
url = "http://www.sciencedirect.com/science/article/pii/S0010465520304057",
author = "Scott Fredericks and Kevin Parrish and Dean Sayre and Qiang Zhu",
}
```
### Site Symmetry Representation
Levy D, Panigrahi S-S, Kaba S-O, Zhu Q, Galkin M, Miret S, Ravanbakhsh S. (2024)
[SymmCD: Symmetry-Preserving Crystal Generation with Diffusion Models AI for Accelerated Materials Design](https://openreview.net/forum?id=V7x2KZQn2v)
NeurIPS 2024,
```bib
@inproceedings{
levy2024symmcd,
title={Symm{CD}: Symmetry-Preserving Crystal Generation with Diffusion Models},
author={Daniel Levy and Siba Smarak Panigrahi and S{\'e}kou-Oumar Kaba and Qiang Zhu and Mikhail Galkin and Santiago Miret and Siamak Ravanbakhsh},
booktitle={AI for Accelerated Materials Design - NeurIPS 2024},
year={2024},
url={https://openreview.net/forum?id=V7x2KZQn2v}
}
```
### Symmetry relation
Zhu Q, Kang B, Parrish K (2022).
[Symmetry Relation Database and Its Application to Ferroelectric Materials Discovery](https://link.springer.com/article/10.1557/s43579-022-00268-4)
```bib
@article{zhu2022symmetry,
title="Symmetry relation database and its application to ferroelectric materials discovery",
author="Zhu, Qiang and Kang, Byungkyun and Parrish, Kevin",
journal="MRS Communications",
volume="12",
number="5",
pages="686--691",
year="2022",
doi="https://doi.org/10.1557/s43579-022-00268-4",
```
### Organic crystal packing motif
Zhu Q, Tang W-L, Hattori S. (2022).
[Quantification of Crystal Packing Similarity from Spherical Harmonic Transform](https://pubs.acs.org/doi/10.1021/acs.cgd.2c00933)
```bib
@article{zhu2022quantification,
title="Quantification of Crystal Packing Similarity from Spherical Harmonic Transform",
author="Zhu, Qiang and Tang, Weilun and Hattori, Shinnosuke",
journal="Crystal Growth \& Design",
volume="22",
number="12",
pages="7308--7316",
year="2022",
doi="https://doi.org/10.1021/acs.cgd.2c00933",
}
```
## How to contribute?
This is an open-source project. Its growth depends on the community. To contribute to PyXtal, you don't necessarily have to write the code. Any contributions from the following list will be helpful.
- [![Star on GitHub](https://img.shields.io/github/stars/qzhu2017/pyxtal.svg?style=social)](https://github.com/MaterSim/pyxtal/stargazers)
the PyXtal project and recommend it to your colleagues/friends
- Open an [![GitHub issues](https://img.shields.io/github/issues/qzhu2017/pyxtal.svg)](https://GitHub.com/MaterSim/pyxtal/issues/) to report the bug or address your wishlist or improve our documentation
- [![GitHub forks](https://img.shields.io/github/forks/qzhu2017/pyxtal?style=social)](https://github.com/MaterSim/PyXtal/network/members) the repository and send us the pull request
Raw data
{
"_id": null,
"home_page": "https://github.com/MaterSim/PyXtal",
"name": "pyxtal",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": null,
"author": "Scott Fredericks, Kevin Parrish, Qiang Zhu",
"author_email": "alecfans@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/64/cb/61cb35e12ce1e426bd48710009feab161f118f60791745f37a5b11383e2e/pyxtal-1.0.6.tar.gz",
"platform": null,
"description": "<img src=\"https://raw.githubusercontent.com/MaterSim/PyXtal/master/images/512px_type1.png\" alt=\"PyXtal\" width=\"300\"/>\n\n[![Documentation Status](https://readthedocs.org/projects/pyxtal/badge/?version=latest)](https://pyxtal.readthedocs.io/en/latest/?badge=latest)\n[![Test Status](https://github.com/MaterSim/PyXtal/workflows/tests/badge.svg)](https://github.com/MaterSim/PyXtal/actions)\n[![Download Status](https://img.shields.io/pypi/pyversions/pyxtal)](https://pypi.org/project/pyxtal/)\n[![Download Status](https://img.shields.io/pypi/v/pyxtal)](https://pypi.org/project/pyxtal/)\n[![Downloads](https://pepy.tech/badge/pyxtal)](https://pepy.tech/project/pyxtal)\n[![DOI](https://zenodo.org/badge/128165891.svg)](https://zenodo.org/badge/latestdoi/128165891)\n[![Gitter](https://badges.gitter.im/PyXtal/community.svg)](https://gitter.im/PyXtal/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)\n<img align=\"right\" width=\"450\" src=\"https://raw.githubusercontent.com/MaterSim/PyXtal/master/images/water.gif\">\n\n\n## Table of content\n- [Introduction](#introduction)\n- [Quick Start](#quick-start)\n- [Current Features](#current-features)\n- [Installation](#installation)\n- [Citation](#citation)\n- [How to contribute?](#how-to-contribute)\n\n\n## Introduction\n\nPyXtal is an open source Python package which was initiated by [Qiang Zhu](http://qzhu2017.github.io) and Scott Fredericks. The goal of PyXtal is to develop a fundamental library to allow one to design the material structure with a certain symmetry constraint. These structures can exported to various structural formats for further study. See the [documentation](https://pyxtal.readthedocs.io/en/latest/) for more information.\n\nTo contribute to this project, please check [How to contribute?](#how-to-contribute).\n\n## Quick Start\n\n- [Atomic crystal](https://nbviewer.jupyter.org/github/MaterSim/PyXtal/blob/master/examples/tutorials_notebook/01_atomic_crystals.ipynb)\n- [Molecular crystal](https://nbviewer.jupyter.org/github/MaterSim/PyXtal/blob/master/examples/tutorials_notebook/02_molecular_crystals.ipynb)\n- [XRD](https://nbviewer.jupyter.org/github/MaterSim/PyXtal/blob/master/examples/tutorials_notebook/03_pxrd.ipynb)\n- [Molecular Packing](https://nbviewer.org/github/MaterSim/PyXtal/blob/master/examples/tutorials_notebook/05-crystal-packing.ipynb)\n\n## Current Features\n\n- Generation of atomic structures for a given symmetry and stoichiometry (0-3D)\n- Generation of molecular crystals (1-3D) with the support of special Wyckoff positions.\n- Structure manipulation via subgroup/supergroup symmetry relation\n- Geometry optimization from built-in and external optimization methods.\n- Internal support of ``cif`` file and many other formats via ``pymatgen`` or ``ASE``.\n- Easy access to symmetry information (e.g., Wyckoff, site symmetry and international symbols).\n- X-ray diffraction analysis and [its online application](https://vxrd.physics.unlv.edu)\n\n## Installation\n\nTo install the code, one just needs to do\n\n```sh\npip install pyxtal\n```\n\nor\n\n```sh\npip install --upgrade git+https://github.com/MaterSim/PyXtal.git@master\n```\n\nIf you want to add the Julia package install (required by the use of `pyxtal.lego` module), please use\n\n```sh\nexport INSTALL_JULIA=1 && pip install pyxtal \n```\n\nTo check if the installation is successful, run the following script,\n```python\n\nfrom juliacall import Main as jl\njl.seval(\"using CrystalNets\")\nprint(\"Success\")\n```\n\n## Citation\n\n### General PyXtal\n\nFredericks S, Parrish K, Sayre D, Zhu Q\\*(2020)\n[PyXtal: a Python Library for Crystal Structure Generation and Symmetry Analysis](https://www.sciencedirect.com/science/article/pii/S0010465520304057).\n\\[[arXiv link](https://arxiv.org/pdf/1911.11123.pdf)\\]\n\n```bib\n@article{pyxtal,\ntitle = \"PyXtal: A Python library for crystal structure generation and symmetry analysis\",\njournal = \"Computer Physics Communications\",\nvolume = \"261\",\npages = \"107810\",\nyear = \"2021\",\nissn = \"0010-4655\",\ndoi = \"https://doi.org/10.1016/j.cpc.2020.107810\",\nurl = \"http://www.sciencedirect.com/science/article/pii/S0010465520304057\",\nauthor = \"Scott Fredericks and Kevin Parrish and Dean Sayre and Qiang Zhu\",\n}\n```\n\n### Site Symmetry Representation\nLevy D, Panigrahi S-S, Kaba S-O, Zhu Q, Galkin M, Miret S, Ravanbakhsh S. (2024) \n[SymmCD: Symmetry-Preserving Crystal Generation with Diffusion Models AI for Accelerated Materials Design](https://openreview.net/forum?id=V7x2KZQn2v)\nNeurIPS 2024, \n\n```bib\n@inproceedings{\nlevy2024symmcd,\ntitle={Symm{CD}: Symmetry-Preserving Crystal Generation with Diffusion Models},\nauthor={Daniel Levy and Siba Smarak Panigrahi and S{\\'e}kou-Oumar Kaba and Qiang Zhu and Mikhail Galkin and Santiago Miret and Siamak Ravanbakhsh},\nbooktitle={AI for Accelerated Materials Design - NeurIPS 2024},\nyear={2024},\nurl={https://openreview.net/forum?id=V7x2KZQn2v}\n}\n```\n\n\n### Symmetry relation\nZhu Q, Kang B, Parrish K (2022). \n[Symmetry Relation Database and Its Application to Ferroelectric Materials Discovery](https://link.springer.com/article/10.1557/s43579-022-00268-4)\n\n```bib\n@article{zhu2022symmetry,\n title=\"Symmetry relation database and its application to ferroelectric materials discovery\",\n author=\"Zhu, Qiang and Kang, Byungkyun and Parrish, Kevin\",\n journal=\"MRS Communications\",\n volume=\"12\",\n number=\"5\",\n pages=\"686--691\",\n year=\"2022\",\n doi=\"https://doi.org/10.1557/s43579-022-00268-4\",\n```\n\n### Organic crystal packing motif\nZhu Q, Tang W-L, Hattori S. (2022). \n[Quantification of Crystal Packing Similarity from Spherical Harmonic Transform](https://pubs.acs.org/doi/10.1021/acs.cgd.2c00933)\n\n```bib\n@article{zhu2022quantification,\n title=\"Quantification of Crystal Packing Similarity from Spherical Harmonic Transform\",\n author=\"Zhu, Qiang and Tang, Weilun and Hattori, Shinnosuke\",\n journal=\"Crystal Growth \\& Design\",\n volume=\"22\",\n number=\"12\",\n pages=\"7308--7316\",\n year=\"2022\",\n doi=\"https://doi.org/10.1021/acs.cgd.2c00933\",\n}\n```\n\n## How to contribute?\n\nThis is an open-source project. Its growth depends on the community. To contribute to PyXtal, you don't necessarily have to write the code. Any contributions from the following list will be helpful.\n\n- [![Star on GitHub](https://img.shields.io/github/stars/qzhu2017/pyxtal.svg?style=social)](https://github.com/MaterSim/pyxtal/stargazers)\n the PyXtal project and recommend it to your colleagues/friends\n- Open an [![GitHub issues](https://img.shields.io/github/issues/qzhu2017/pyxtal.svg)](https://GitHub.com/MaterSim/pyxtal/issues/) to report the bug or address your wishlist or improve our documentation\n- [![GitHub forks](https://img.shields.io/github/forks/qzhu2017/pyxtal?style=social)](https://github.com/MaterSim/PyXtal/network/members) the repository and send us the pull request\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python code for generation of crystal structures based on symmetry constraints.",
"version": "1.0.6",
"project_urls": {
"Homepage": "https://github.com/MaterSim/PyXtal"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "490d12b302b8cb4c7b744c23e994cad03b87fd78a37fbca6f6edc5330ab83220",
"md5": "f984966bdedb83c579c379582e3f71e6",
"sha256": "83a15b40e01949351e80049d30c39cd4f87ea4285eed4acfeb7b9f5a0300ccbe"
},
"downloads": -1,
"filename": "pyxtal-1.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f984966bdedb83c579c379582e3f71e6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 3882879,
"upload_time": "2024-12-08T01:51:46",
"upload_time_iso_8601": "2024-12-08T01:51:46.051380Z",
"url": "https://files.pythonhosted.org/packages/49/0d/12b302b8cb4c7b744c23e994cad03b87fd78a37fbca6f6edc5330ab83220/pyxtal-1.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "64cb61cb35e12ce1e426bd48710009feab161f118f60791745f37a5b11383e2e",
"md5": "992eb5cf5c37d2fec394fa84ae69c16c",
"sha256": "5e590f0f7a3d23535e98a379ce0e9fc34f07444e8e52ad98bae3980858ef6fd7"
},
"downloads": -1,
"filename": "pyxtal-1.0.6.tar.gz",
"has_sig": false,
"md5_digest": "992eb5cf5c37d2fec394fa84ae69c16c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 3748432,
"upload_time": "2024-12-08T01:51:51",
"upload_time_iso_8601": "2024-12-08T01:51:51.636167Z",
"url": "https://files.pythonhosted.org/packages/64/cb/61cb35e12ce1e426bd48710009feab161f118f60791745f37a5b11383e2e/pyxtal-1.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-08 01:51:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MaterSim",
"github_project": "PyXtal",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "ase",
"specs": [
[
"==",
"3.23.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2024.7.4"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.3.2"
]
]
},
{
"name": "contourpy",
"specs": [
[
"==",
"1.2.1"
]
]
},
{
"name": "cycler",
"specs": [
[
"==",
"0.12.1"
]
]
},
{
"name": "fonttools",
"specs": [
[
"==",
"4.53.1"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.7"
]
]
},
{
"name": "importlib-metadata",
"specs": [
[
"==",
"8.0.0"
]
]
},
{
"name": "joblib",
"specs": [
[
"==",
"1.4.2"
]
]
},
{
"name": "juliacall",
"specs": [
[
"==",
"0.9.22"
]
]
},
{
"name": "juliapkg",
"specs": [
[
"==",
"0.1.13"
]
]
},
{
"name": "kiwisolver",
"specs": [
[
"==",
"1.4.5"
]
]
},
{
"name": "latexcodec",
"specs": [
[
"==",
"3.0.0"
]
]
},
{
"name": "matplotlib",
"specs": [
[
"==",
"3.9.1"
]
]
},
{
"name": "monty",
"specs": [
[
"==",
"2024.5.24"
]
]
},
{
"name": "mpmath",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "networkx",
"specs": [
[
"==",
"3.3"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.26.4"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"24.1"
]
]
},
{
"name": "palettable",
"specs": [
[
"==",
"3.3.3"
]
]
},
{
"name": "pandas",
"specs": [
[
"==",
"2.2.2"
]
]
},
{
"name": "pillow",
"specs": [
[
"==",
"10.4.0"
]
]
},
{
"name": "plotly",
"specs": [
[
"==",
"5.22.0"
]
]
},
{
"name": "pybtex",
"specs": [
[
"==",
"0.24.0"
]
]
},
{
"name": "pymatgen",
"specs": [
[
"==",
"2024.6.10"
]
]
},
{
"name": "pyparsing",
"specs": [
[
"==",
"3.1.2"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.9.0.post0"
]
]
},
{
"name": "pytz",
"specs": [
[
"==",
"2024.1"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "ruamel-yaml",
"specs": [
[
"==",
"0.18.6"
]
]
},
{
"name": "ruamel-yaml-clib",
"specs": [
[
"==",
"0.2.8"
]
]
},
{
"name": "scipy",
"specs": [
[
"==",
"1.14.0"
]
]
},
{
"name": "semver",
"specs": [
[
"==",
"3.0.2"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "spglib",
"specs": [
[
"==",
"2.5.0"
]
]
},
{
"name": "sympy",
"specs": [
[
"==",
"1.13.0"
]
]
},
{
"name": "tabulate",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "tenacity",
"specs": [
[
"==",
"8.5.0"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.66.4"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.12.2"
]
]
},
{
"name": "tzdata",
"specs": [
[
"==",
"2024.1"
]
]
},
{
"name": "uncertainties",
"specs": [
[
"==",
"3.2.2"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.2.2"
]
]
},
{
"name": "zipp",
"specs": [
[
"==",
"3.19.2"
]
]
}
],
"lcname": "pyxtal"
}