Skip to content

AutoCat Documentation

AutoCat Logo

AutoCat is a suite of python tools for sequential learning for materials applications and automating structure generation for DFT catalysis studies.

Development of this package stems from ACED, as part of the ARPA-E DIFFERENTIATE program.

Below we provide an overview of the key functionalities of AutoCat. For additional details please see the User Guide, Tutorials, and API sections.

Sequential Learning

One of the core philosophies of AutoCat is to provide modular and extensible tooling to facilitate closed-loop computational materials discovery workflows. Within this submodule are classes for defining a design space, featurization, regression, selecting candidate systems, and defining a closed-loop sequential learning iterator. The key classes intended for each of these purposes are:

Structure Generation

Adsorption Figure

This submodule contains functions for automating atomic structure generation within the context of a catalysis study using density functional theory. Specifically, this includes generating bulk structures, surfaces, and placing adsorbates. In addition, functions for generating the single-atom alloys material class are also included. These functions are organized within AutoCat as follows:

Structures generated or read with this package are typically of the form of ase.Atoms objects.

When opting to write structures to disk using these functions, they are automatically organized into a clean, scalable directory organization. All structures are written in the file format. For further details on the directory structure, see the User Guide.


There are two options for installation, either via pip or from the repo directly.

If you are planning on strictly using AutoCat rather than contributing to development, we recommend using pip within a virtual environment (e.g. conda ). This can be done as follows:

pip install autocat

Github (for developers)

Alternatively, if you would like to contribute to the development of this software, AutoCat can be installed via a clone from Github. First, you'll need to clone the github repo to your local machine (or wherever you'd like to use AutoCat) using git clone. Once the repo has been cloned, you can install AutoCat as an editable package by changing into the created directory (the one with and installing via:

pip install -e .


Contributions through issues, feature requests, and pull requests are welcome. Guidelines are provided here.


The code presented herein was funded by the Advanced Research Projects Agency-Energy (ARPA-E), U.S. Department of Energy, under Award Number DE-AR0001211 and in part by the National Science Foundation, under Award Number CBET-1554273. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.