pyobjcryst documentation#

pyobjcryst - Python bindings to the ObjCryst++ Object-Oriented Crystallographic Library

Software version 2024.1.1.post13.
Last updated September 10, 2024.

Authors#

pyobjcryst was written as part of the DANSE open-source project by Christopher Farrow, Pavol Juhás, and Simon J.L. Billinge. The sources are maintained as a part of the DiffPy-CMI complex modeling initiative at the Brookhaven National Laboratory. The underlying library ObjCryst++ was developed by V. Favre-Nicolin as part of the development of the Fox software.

Further developments including the ability to index and refine powder patterns, solve and display crystal structures, using the global optimisation and least squares algorithms (see the Example notebooks) are provided by Vincent Favre-Nicolin (ESRF).

For a complete list of contributors, see diffpy/pyobjcryst and diffpy/libobjcryst.

Installation#

pyobjcryst and libobjcryst conda packages can be easily installed under Linux and macOS using channel conda-forge or diffpy channels, e.g.

conda install -c conda-forge libobjcryst pyobjcryst

or

conda install -c diffpy libobjcryst pyobjcryst

It is recommended to use the conda-forge channel which is updated more frequently than the diffpy one, unless you only use pyobjcryst through the DiffPy-CMI tools.

See the README file included with the distribution for more details.

Complete conda environment with optional GUI and jupyter dependencies#

The fastest way to use pyobjcryst is to first install the Mamba-forge distribution (which is faster than traditional conda), and then you can directly create a new conda environment named pyobjcryst with all useful dependencies (including jupyter-lab, python 3.11..) using

mamba create -n pyobjcryst python=3.11 pyobjcryst matplotlib py3dmol jupyterlab ipympl multiprocess

(note: if you do not know mamba, it is a command equivalent to conda except much faster)

Then activate the environment and launch jupyter-lab using

conda activate pyobjcryst
jupyter-lab

Usage & notebooks#

pyobjcryst can be used

The API documentation can be found in pyobjcryst API.

You can also read the documentation of the underlying ObjCryst++ library.

Table of contents#

Indices#