pyXem - Crystallographic Electron Microscopy in Python

https://travis-ci.org/pyxem/pyxem.svg?branch=master https://coveralls.io/repos/github/pyxem/pyxem/badge.svg?branch=master

pyXem is an open-source Python library for crystallographic electron microscopy. The code is primarily developed as a platform for hybrid diffraction-imaging microscopy based on scanning electron diffraction (SED) data.


pyXem is released under the GPL v3 license.

If analysis using pyxem forms a part of published work please consider recognizing the code development by citing the github repository.


pyXem requires python 3 and conda - we suggest using the python 3 version of Miniconda and creating a new environment for pyxem using the following commands in the anaconda prompt::

$ conda create -n pyxem
$ conda activate pyxem

Download the source code and put it in a directory on your computer. The following commands will then install everything you need if entered into the anaconda promt (or terminal) when located in the pyxem directory::

$ conda install -c conda-forge diffpy.structure
$ conda install -c anaconda cython
$ conda install -c conda-forge spglib
$ conda install -c conda-forge traits
$ pip install . -r requirements.txt

Getting Started

To get started using pyxem, especially if you are unfamiliar with python, we recommend using jupyter notebooks. Having installed pyxem as above, a jupyter notebook can be opened using the following commands entered into an anaconda prompt or terminal::

$ conda activate pyxem
$ jupyter notebook

Tutorials and Example Workflows have been curated as a series of jupyter notebooks that you can work through and modify to perform many common analyses.


Documentation is available for all pyxem modules at the following links:


If you have a question about pyxem, an issue using the code, or find a bug - we want to know!

We prefer if you let us know by raising an issue on our Github page so that we can answer in “public” and potentially help someone else who has the same question. You can also e-mail the development team via: pyxem.team@gmail.com

Answers may sometimes also be found in our documentation.

Contributing and Feature Requests

Feature requests, if pyxem doesn’t do something you want it to, can be made by raising an issue or e-mailing the development team via pyxem.team@gmail.com

Contributions from new developers are strongly encouraged. Many potential contributors may be scientists with little or no open-source development experience and we have written a contributing guide particularly for this audience.