software for materials science

View on GitHub is a community initiative to build the world's most comprehensive collection of software for materials science.

The intent is to improve the accessibility of these tools to all researchers by enabling one-line installations of highly useful software packages without the need for compilation, etc. All packages are hosted on the matsci channel on Anaconda Cloud.

Getting started

Step 1: Install conda

Follow the instructions at the Miniconda page, or we have written a simplified set of instructions here.

Step 2: Using the matsci channel

You can now install materials science software packages in via the following command:

conda install --channel matsci <package>

where --channel matsci indicates to use the matsci channel.

If you believe you will be using the channel frequently, you can add it to the list of channels in your environment with the following command:

conda config --add channels matsci

Available packages

The packages available are constantly updated. You can check out the currently available packages on the matsci channel on Anaconda Cloud, or simply look at the conda-skeletons folder in this repo. The main packages available are:

pymatgenPython Materials Genomics is a robust materials analysis code that defines core object representations for structures and molecules with support for many electronic structure codes. It is currently the core analysis code powering the Materials Project (
pymatgen-dbPymatgen-db is a database add-on for the Python Materials Genomics (pymatgen) materials analysis library. It enables the creation of Materials Project-style MongoDB databases for management of materials data. A query engine is also provided to enable the easy translation of MongoDB docs to useful pymatgen objects for analysis purposes.
spglibSpglib is a library for finding and handling crystal symmetries written in C. This is the Python extension version of spglib.
aseASE is an Atomic Simulation Environment written in the Python programming language with the aim of setting up, steering, and analyzing atomistic simulations.
baderA fast algorithm for doing Bader's analysis on a charge density grid. The program can read in charge densities in the VASP CHGCAR format, or the Gaussian CUBE format. The program outputs the total charge associated with each atom, and the zero flux surfaces defining the Bader volumes.
BoltzTraPBoltzmann Transport Properties (BoltzTraP) is a program for calculating the semi-classic transport coefficients. The code uses a mesh of self-consistent band energies and is interfaced to the WIEN2k, AB-INIT, SIESTA, VASP and QuantumEspresso programs.
custodianCustodian is a simple, robust and flexible just-in-time (JIT) job management framework written in Python. Using custodian, you can create wrappers that perform error checking, job management and error recovery. It has a simple plugin framework that allows you to develop specific job management workflows for different applications. The current version of Custodian also comes with sub-packages for error handling for Vienna Ab Initio Simulation Package (VASP), NwChem and QChem calculations.
enumlibThis code generates the derivative superstructures of a parent lattice. It works for general lattices, including "multilattices," like HCP, which have more than one lattice point in the unit cell. The code can enumerate over all concentrations or in a restricted concentration range.

This effort initially arose from the desire to make Python Materials Genomics and its associated dependencies a lot easier to install for users on all platforms. So these will always be available. Note that not all packages are available for all OSes. Most packages are available for Linux/OSX. Python packages supports usually both Python 2.7+ and latest Python 3.x (3.5+) on both Linux and OSX, and only latest Python 3.x for Windows.


Contributions are always welcome. Feel free to fork this repo and add your proposed conda software recipes to the conda-skeletons folder. This repo is continuously integrated via TravisCI and Appveyor to build all Linux, OSX and Windows versions, where compatible.

This initiative is started by the Materials Virtual Lab.