{ "info": { "author": "Alex Ganose", "author_email": "aganose@lbl.gov", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Topic :: Other/Nonlisted Topic", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Chemistry", "Topic :: Scientific/Engineering :: Physics" ], "description": "# Robocrystallographer\n\n[](https://pypi.org/project/robocrys/)\n[](https://www.codacy.com/app/utf/robocrystallographer)\n[](https://www.codacy.com/app/utf/robocrystallographer)\n[](https://circleci.com/gh/hackingmaterials/robocrystallographer)\n\n\nRobocrystallographer is a tool to generate text descriptions of crystal\nstructures. Similar to how a real-life crystallographer would analyse a\nstructure, robocrystallographer looks at the symmetry, local environment, and\nextended connectivity when generating a description. The package includes\nutilities for identifying molecule names, component orientations,\nheterostructure information, and more...\n\n## Usage\n\nRobocrystallographer can be used from the command-line or from a python API.\nThe package integrates with the [Materials Project](https://materialsproject.org)\nto for allow generation of structure descriptions directly from Materials Project\nids. For example, to generate the description of SnO2 \n([mp-856](https://materialsproject.org/materials/mp-856/)), one\ncan simply run:\n\n```bash\nrobocrys mp-856\n```\n\nAlternatively, a structure file can be specified in place of a Materials Project id.\nRobocrystallographer supports the same file formats as \n[pymatgen](http://pymatgen.org), including the Crystallographic Information \nFormat (CIF), and common electronic structure package formats such as POSCAR files.\nMore information can be found on the \n[command-line interface page](https://hackingmaterials.github.io/robocrystallographer/cli.html).\n\n### Python interface\n\nThe two core classes in robocrystallographer are:\n\n- `StructureCondenser`: to condense the structure into an intermediate JSON\n representation.\n- `StructureDescriber`: to turn the condensed structure into a text description.\n\nA minimal working example for generating text descriptions is simply:\n\n```python\nfrom robocrys import StructureCondenser, StructureDescriber\n\ncondenser = StructureCondenser()\ndescriber = StructureDescriber()\n\ncondensed_structure = condenser.condense_structure(structure)\ndescription = describer.describe(condensed_structure)\n```\n\nWhere `structure` is a pymatgen Structure object. Both classes have many\noptions for customising the output of the structure\ndescriptions. More information is provided in the \n[module documentation](https://hackingmaterials.github.io/robocrystallographer/modules).\n\n### Intermediate JSON format\n\nThe format of the intermediate JSON representation is detailed on the\n[condensed structure format page](https://hackingmaterials.github.io/robocrystallographer/format.html).\n\n\n### Example output\n\nAn example of the output generated by robocrystallographer for SnO2 ([mp-856](https://materialsproject.org/materials/mp-856/)) is given below:\n\n
\n
\n