A Python library to crack crystals

pip install soprano


  Fork on Github


Soprano is a Python library developed and maintained by the CCP for NMR Crystallography as a tool to help scientists working with crystallography and simulations to generate, manipulate, run calculations on and analyse large data sets of crystal structures, with a particular attention to the output of ab-initio random structure searching, or AIRSS. It provides a number of functionalities to help automate many common tasks in computational crystallography.


You can install Soprano using pip:
pip install soprano
or you can download the library from Github and install it from your local computer.

Soprano requires Python 2.7 or higher and the libraries Numpy, Scipy and ASE (Atomic Simulation Environment). If you have no experience with the latter, you might want to familiarise yourself before using Soprano - it's an excellent library with support for loading and manipulating lots of chemical structure formats, like .cif, as well as interfacing with many of the most used classical molecular dynamics, tight binding and ab initio simulation software packages.

Getting started

Soprano comes with a number of tutorials in the form of Jupyter Notebooks. If you don't have Jupyter installed on your computer, all you need to do is use pip:
pip install jupyter
Once you have Jupyter, download Soprano's tutorials. You can either download the entire repository from Github and find the folder in the parent directory or use
svn export
After navigating to the tutorials folder, launch the notebook:
jupyter notebook
and you're good to go!

So what is it about?

Soprano has a lot of functionality meant to make working with crystallographic sets simple. Here, following the tutorials, we will outline some of it. The tutorials only cover the essentials of how to use Soprano - for detailed information about the various functions and classes and how they work, refer to the documentation.

Citing Soprano

There is no single paper to cite for Soprano. If you use our library in your work, please refer to this site and cite it as "Soprano - A library developed by the CCP for NMR Crystallography", including the URL of this page.

For the specific problem of finding muon stopping sites with Soprano, refer to L. Liborio, S. Sturniolo, D. Jochym, "Computational prediction of muon stopping sites using ab initio random structure searching (AIRSS)", JCP 148, 134114 (2018)