{"id":16492372,"url":"https://github.com/tilde-lab/pycrystal","last_synced_at":"2025-03-21T07:31:38.860Z","repository":{"id":50906847,"uuid":"160237193","full_name":"tilde-lab/pycrystal","owner":"tilde-lab","description":"Utilities for ab initio modeling suite CRYSTAL, developed in Turin University","archived":false,"fork":false,"pushed_at":"2025-01-11T15:21:17.000Z","size":318,"stargazers_count":12,"open_issues_count":7,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T22:42:27.729Z","etag":null,"topics":["abinitio","abinitio-simulations","atomistic-simulations","computational-chemistry","computational-materials","crystal","crystal-ab-initio","crystal-structure","crystallography","emsl","first-principles","gaussian","gaussian-lcao","materials-science"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tilde-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-03T18:41:15.000Z","updated_at":"2025-01-18T19:29:46.000Z","dependencies_parsed_at":"2023-09-27T04:43:53.085Z","dependency_job_id":"47743b57-6117-480a-8ad4-a40f455174fc","html_url":"https://github.com/tilde-lab/pycrystal","commit_stats":{"total_commits":92,"total_committers":4,"mean_commits":23.0,"dds":"0.21739130434782605","last_synced_commit":"a619977e0c11f056e78a2460ae696d3078d8eacd"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilde-lab%2Fpycrystal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilde-lab%2Fpycrystal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilde-lab%2Fpycrystal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilde-lab%2Fpycrystal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tilde-lab","download_url":"https://codeload.github.com/tilde-lab/pycrystal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244757945,"owners_count":20505541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abinitio","abinitio-simulations","atomistic-simulations","computational-chemistry","computational-materials","crystal","crystal-ab-initio","crystal-structure","crystallography","emsl","first-principles","gaussian","gaussian-lcao","materials-science"],"created_at":"2024-10-11T14:05:25.333Z","updated_at":"2025-03-21T07:31:38.846Z","avatar_url":"https://github.com/tilde-lab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"CRYSTAL ab initio code utilities\n==========\n\n[![DOI](https://zenodo.org/badge/160237193.svg)](https://doi.org/10.5281/zenodo.7693500)\n[![PyPI](https://img.shields.io/pypi/v/pycrystal.svg?style=flat)](https://pypi.org/project/pycrystal)\n\n![CRYSTAL ab initio code with the LCAO Gaussian basis sets, by Turin university](https://raw.githubusercontent.com/tilde-lab/pycrystal/master/crystal-dft-redrawn-logo.svg \"CRYSTAL17 ab initio LCAO code with the Gaussian basis sets, Torino\")\n\nIntro\n------\n\nThe [CRYSTAL](http://www.crystal.unito.it) is an _ab initio_ solid state modeling suite employing the Gaussian basis sets in the LCAO framework. The `pycrystal` Python utilities are good for:\n\n* quick logs parsing, getting the maximum information, and presenting it in a systematic machine-readable way\n* preparing and handling the Gaussian LCAO basis sets, based on the EMSL and own CRYSTAL libraries\n\nAll the popular versions of the CRYSTAL code are supported (CRYSTAL03, CRYSTAL06, CRYSTAL09, CRYSTAL14, and CRYSTAL17).\n\nThe `pycrystal` was tested on about 20k in-house simulation logs for about 700 distinct materials systems, produced with the different CRYSTAL versions. Its development was initiated in 2009 by [Maxim Losev](https://github.com/mlosev) at the quantum chemistry chair, chemistry dept. of St. Petersburg State University (Russia) under supervision of Professor Robert Evarestov.\n\nInstallation\n------\n\n`pip install pycrystal`\n\nUsage\n------\n\nParsing is done as follows:\n\n```python\nimport os, sys\nfrom pprint import pprint\n\nfrom pycrystal import CRYSTOUT\n\ntry:\n    sys.argv[1] and os.path.exists(sys.argv[1])\nexcept (IndexError, OSError):\n    sys.exit(\"USAGE: \u003cscript\u003e \u003cfile\u003e\")\n\n#CRYSTOUT.PERIODIC_LIMIT = 30\n\nassert CRYSTOUT.acceptable(sys.argv[1])\nresult = CRYSTOUT(sys.argv[1])\npprint(result.info)\n```\n\nMind `CRYSTOUT.PERIODIC_LIMIT` value which has to be fine-tuned while dealing with the molecules (e.g. saving them in the other formats).\n\nAlso, for any basis set taken from [EMSL](https://bse.pnl.gov) in Gaussian'94 format:\n\n```python\nimport os, sys\n\nfrom pycrystal import parse_bs\n\ntry:\n    sys.argv[1] and os.path.exists(sys.argv[1])\nexcept (IndexError, OSError):\n    sys.exit(\"USAGE: \u003cscript\u003e \u003cfile\u003e\")\n\ncontent = open(sys.argv[1]).read()\nfor atom in parse_bs(content):\n    print(atom.crystal_input())\n```\n\nTo deal with the CRYSTAL (University of Turin) online BS library:\n\n```python\nfrom pycrystal import download_basis_library\n\nlibrary = download_basis_library()\nprint(library['Bi'])\n```\n\nRelated work\n------\n\nThere is another Python parser [ejplugins](https://github.com/chrisjsewell/ejplugins) for CRYSTAL14 and CRYSTAL17 by [Chris Sewell](https://github.com/chrisjsewell) (Imperial College London, UK). The comparison was done using `cmp_unito_crystal_parsers.py` script on the above-mentioned 20k logs, the results are as follows:\n\n* the final total energies and atomic structures are the same in more than 99% cases\n* `pycrystal` supports slightly more CRYSTAL features than `ejplugins`\n* `pycrystal` is more lightweight than `ejplugins` and has less dependencies\n* performance is nearly the same\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftilde-lab%2Fpycrystal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftilde-lab%2Fpycrystal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftilde-lab%2Fpycrystal/lists"}