Computational chemistry is a rapidly developing field that uses advanced computer simulations to study the properties and behavior of chemical systems. In recent years, many cutting-edge open source tools have been developed that allow researchers and scientists to perform complex calculations and simulations on their own computers. These tools offer a wide range of capabilities, from basic quantum mechanics calculations to sophisticated molecular dynamics simulations, and can be used to tackle a wide variety of problems in chemistry, materials science, and other related fields. In this blog post, I will introduce you to some of the most promising and powerful tools in computational chemistry that are available today.
Most of these tools can be run on a wide range of computers, from laptops to HPC clusters, and different operative systems including Linux, Windows, and Mac. Additionally, all of them are completely free to use, making them accessible both to researchers and scientists or the general public interested in running their own simulations. However, it's important to note that some of these tools require a license for commercial use, so if you plan on using them for business purposes, make sure to check the licensing terms carefully. These tools are really powerful and versatile, but also have an entry barrier, not very difficult to overcome though with a bit of effort, so whether you're a seasoned computational chemist or just starting out in the field, you're sure to find something here that will pique your interest.
This list is far from being complete, but I believe it covers a good amount of tools that can produce the highest quality simulations to date. I will keep updating the list, so you can bookmark this link and come visit every now and then. Note that most of the descriptions of each code here are taken from their respective websites. The classification is not always strict, as many codes can do many things so would fit in different categories. With all that in mind, let's take a look at some of the most exciting and innovative tools in computational chemistry that are available today.
Molecular editors and viewers
- Jmol is a free, open source viewer of molecular structures and also has molecular build and manipulation capabilities. It is cross-platform, running on Windows, Mac OS X, and Linux/Unix systems.
- The Jmol application is a standalone Java application that runs on the desktop.
- The JmolViewer is a development tool kit that can be integrated into other Java applications.
- Avogadro2 is an advanced molecule editor and visualizer designed for cross-platform use in computational chemistry, molecular modeling, bioinformatics, materials science, and related areas. It offers flexible high quality rendering and a powerful plugin architecture. Download the nightly app image from git.
- Avogadro1 also exists but is dated and no longer under development. However, it still has some features that have not yet been included in the newer Avogadro2. Some of those features are very cool, so I installed it via docker, but the installation is a bit more complicated and is out of the scope of this article. But if you are interested, drop me a line and I will explain the process.
- Tetr is a text based software but it can be combined with ChimeraX to have a GUI. It offers a wide set of tools for creation, manipulation, analysis and conversion between many different file formats of periodic boundary conditions softwares. This is the Plugin for ChimeraX.
- ChimeraX is the next-generation molecular visualization program from the Resource for Biocomputing, Visualization, and Informatics (RBVI), following UCSF Chimera.
- Ovito is a visualization and analysis software for output data generated in molecular dynamics, atomistic Monte-Carlo and other particle-based simulations.
- VMD (Visual Molecular Dynamics) is a molecular visualization program for displaying, animating, and analyzing large biomolecular systems using 3-D graphics and built-in scripting. VMD supports computers running MacOS X, Unix, or Windows, is distributed free of charge, and includes source code.
- VESTA is a 3D visualization program for structural models, volumetric data such as electron/nuclear densities, and crystal morphologies. It runs on Windows, Mac OS X, and Linux. It is contributed free of charge for non-commercial users.
- XCrysDen is a crystalline and molecular structure visualisation program aiming at display of isosurfaces and contours, which can be superimposed on crystalline structures and interactively rotated and manipulated. It runs on GNU/Linux. XCrySDen has been also ported to Mac OS (requires X11) and Windows (requires either CYGWIN or WSL).
- MolView is an online 2D molecular editor that generates their corresponding 3D molecular structures. You can use MolView to search through different scientific databases including compound databases, protein databases and spectral databases, and view records from these databases as interactive visualizations using WebGL and HTML5 technologies.
- Molecular Nodes is an add-on and set of pre-made nodes for Blender and Blender’s Geometry Nodes, to import, animate and manipulate molecular data.
- Crystallography Open Database Open-access collection of crystal structures of organic, inorganic, metal-organic compounds and minerals, excluding biopolymers.
- Protein Data Bank is a repository of information about the 3D structures of proteins, nucleic acids, and complex assemblies.
- Openbabel: Conformer generation. OpenBabel is a chemical toolbox designed to speak the many languages of chemical data. It's an open, collaborative project allowing anyone to search, convert, analyze, or store data from molecular modeling, chemistry, solid-state materials, biochemistry, or related areas. The goal of conformer generation is not simply to find a low energy conformation but to generate several different conformations. Such conformations may be required by another piece of software such as some protein-ligand docking and pharmacophore programs.
- Packmol Initial configurations for Molecular Dynamics Simulations by packing optimization.
- Moltemplate is a general cross-platform text-based molecule builder for LAMMPS. Moltemplate was intended for building custom coarse-grained molecular models, but it can be used to prepare realistic all-atom simulations as well. Example of CNT + Water here.
- Cell A python package for building Cluster Expansion models of simple and complex alloys and performing thermodynamic analyses of materials.
- Sqsgenerator is a Python package, which allows you to generate optimised Special-Quasirandom-Structures (SQS). Therefore the package use Warren-Cowley Short-Range-Order (SRO) parameters to quantify randomness. sqsgenerator can be also used to analyse SRO parameters in existing structures.
- CREST was developed as a utility and driver program for the semiempirical quantum chemistry package xtb. The program's name originated as an abbreviation for Conformer–Rotamer Ensemble Sampling Tool as it was developed as a program for conformational sampling at the extended tight-binding level GFN-xTB
- autoD is a Python module designed for the automated generation of reaction profiles as fast as possible. Profiles are generated using a double-ended search form reactant(s) and product(s) given as 1D SMILES or 3D structures. Functionality for conformational sampling (RR algorithm) and transition state finding (NEB, CI-NEB, adapt.) is also available.
- AutoMekin (formerly tsscds) has been designed to discover reaction mechanisms in an automated fashion. Transition states are located using MD simulations and Graph Theory algorithms. Monte Carlo simulations afford kinetic results. The only input is a starting structure in XYZ format.
- XtalOpt is a free and truly open source evolutionary algorithm designed for a priori crystal structure prediction.
- Calypso (Crystal structure AnaLYsis by Particle Swarm Optimization) is an efficient structure prediction method. The approach requires only chemical compositions for a given compound to predict stable or metastable structures at given external conditions (e.g., pressure).
- Uspex (Universal Structure Predictor: Evolutionary Xtallography) allows to predict crystal structure with arbitrary P-T conditions by knowing only chemical composition of the material.
DFT (Density Functional Theory) Codes
- QuantumEsppresso Is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials.
- CP2K is a quantum chemistry and solid state physics software package that can perform atomistic simulations of solid state, liquid, molecular, periodic, material, crystal, and biological systems. CP2K provides a general framework for different modeling methods such as DFT using the mixed Gaussian and plane waves approaches GPW and GAPW.
- abinit is a software suite to calculate the optical, mechanical, vibrational, and other observable properties of materials. Starting from the quantum equations of density functional theory, you can build up to advanced applications with perturbation theories based on DFT, and many-body Green's functions (GW and DMFT). ABINIT can calculate molecules, nanostructures and solids with any chemical composition, and comes with several complete and robust tables of atomic potentials.
- SIESTA is both a method and its computer program implementation, to perform efficient electronic structure calculations and ab initio molecular dynamics simulations of molecules and solids. SIESTA's efficiency stems from the use of a basis set of strictly-localized atomic orbitals. A very important feature of the code is that its accuracy and cost can be tuned in a wide range, from quick exploratory calculations to highly accurate simulations matching the quality of other approaches, such as plane-wave methods.
- GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW) method and the atomic simulation environment (ASE). The wave functions can be described with: Plane-waves (PW); Real-space uniform grids, multigrid methods and the finite-difference approximation (FD); Atom-centered basis-functions (LCAO).
- SPHInX S/PHI/nX is a C++ library for materials simulation, mostly electronic-structure theory. It also is a program (sphinx) to perform such simulations using density-functional theory, and k.p theory. In addition, the package offers dozens of specialized programs (add-ons) for smaller tasks related to setup, analysis, post-processing, and other types of simulations.
- BigDFT A fast, precise, and flexible DFT code for ab-initio atomistic simulation. Open source software for innovative research of materials and macro-molecular systems at the nanoscale.
- OneTep (Order-N Electronic Total Energy Package) is a linear-scaling code for quantum-mechanical calculations based on density-functional theory
- Castep is a code for calculating the properties of materials from first principles. Using DFT, it can simulate a wide range of materials proprieties. In particular it has a wide range of spectroscopic features that link directly to experiment, such as infra-red and Raman spectroscopies, NMR, and core level spectra.
- Fleur is an all-electron density functional theory code based on the full-potential linearized augmented plane wave (FLAPW) method.
- ELK is an all-electron full-potential linearised augmented-plane wave (LAPW) code with many advanced features.
- NWChem provides computational chemistry tools that are scalable both in their ability to treat large scientific computational chemistry problems efficiently, and available parallel computing resources from high-performance parallel supercomputers to conventional workstation clusters.
- DFTB+ is a fast and efficient versatile quantum mechanical simulation software package that can carry out quantum mechanical simulations similar to density functional theory but in an approximate way (Tight Binding), typically gaining around two orders of magnitude in speed.
These below are neither free software nor open source. I include them here for completeness, but you will need to find the links yourself:
Molecular Dynamics and Monte Carlo
- LAMMPS is a classical molecular dynamics code with a focus on materials modeling. It's an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has potentials for solid-state materials (metals, semiconductors) and soft matter (biomolecules, polymers) and coarse-grained or mesoscopic systems. It can be used to model atoms or, more generically, as a parallel particle simulator at the atomic, meso, or continuum scale.
- Gromacs A free and open-source software suite for high-performance molecular dynamics and output analysis.
- Sharc (Surface Hopping including ARbitrary Couplings) molecular dynamics program suite is an ab initio MD software package developed to study the excited-state dynamics of molecules.
- Enhanced Monte Carlo A multi-purpose modular and easily extendable solution to molecular and mesoscale simulations.
- PLUMED is a plugin that works with a large number of molecular dynamics codes. It provides a wide range of different methods, which include: enhanced-sampling algorithms, free-energy methods, tools to analyze the vast amounts of data produced by molecular dynamics (MD) simulations.
- Phonopy is an open source package for phonon calculations at harmonic and quasi-harmonic levels.
- Phono3py is another open source package for phonon-phonon interaction and lattice thermal conductivity calculations.
- DynaPhoPy allows to calculate anharmonic phonon linewidhts and frequency shifts using the mode descomposition technique. To do that it uses a VASP or LAMMPS Molecular Dynamics (MD) trajectory and projects it onto a set of harmonic phonon modes obtained by Phonopy.
- Tetr Again? Yes, i told you. Tetr is one of my favorites for a reason. Still, as the others above, it needs to be plugged to an external program to calculate the forces.
- SSCHA (stochastic self-consistent harmonic approximation) is a full computational python package that simulates thermodynamic and phononic properties of materials accounting for anharmonicity at a nonperturbative level, fully including quantum and thermal fluctuations.
- Pymatgen (Python Materials Genomics) is a robust, open-source Python library for materials analysis.
- Atomic Simulation Environment (ASE) is a set of tools and Python modules for setting up, manipulating, running, visualizing and analyzing atomistic simulations.
- Atomman the Atomistic Manipulation Toolkit is a Python library for creating, representing, manipulating, and analyzing large-scale atomic systems of atoms. The focus of the package is to facilitate the rapid design and development of simulations that are fully documented and easily adaptable to new potentials, configurations, etc.
- Chemistry Development Kit is a collection of modular Java libraries for processing chemical information (cheminformatics). The modules are free and open-source and are easy to integrate with other open-source or in-house projects.
- RDKit collection of cheminformatics and machine-learning software written in C++ and Python.
Fitting, Analysis and Postprocessing
- Critic2 is a program for the analysis of quantum mechanical calculation results in molecules and periodic solids.
- Gibbs2 is a program for the calculation of thermodynamic properties in periodic solids under arbitrary conditions of temperature and pressure. Gibbs2 uses the results of periodic solid-state quantum-mechanical calculations, specifically the energy-volume curve and possibly the harmonic phonon frequencies, to compute the thermodynamic properties of the solid within the framework of the quasiharmonic approximation.
- Lev00 is used for the post-processing, i.e. calculating electronic DOS and charge density maps after the DFT run, STM image simulation, etc.
- Fityk is a program for data processing and nonlinear curve fitting.
- DifPy is a free and open source software project to provide python software for diffraction analysis and the study of the atomic structure of materials.
- Physical-validation A Python package to assess the physical validity of molecular simulation results.
Force Fields and Potentials Generators
- QuickFF is a Python package developed at the Center for Molecular Modeling (CMM) to quickly derive accurate force fields from ab initio calculations.
- Q-Force is a software package for deriving all-atom force fields from quantum mechanical calculations in an automated manner. Here are the docs.
- xtb : Semiempirical eXtended Tight Binding program package. Includes the GFN-FF force field : a completely automated partially polarizable generic force-field for the accurate description of structures and dynamics of large molecules across the periodic table. This method combines force-field speed with almost quantum mechanical accuracy.
- Atomicrex is a tool for the construction of interaction models. It was primarily developed to fit interatomic potential models. Thanks to its flexible generic structure its application range, however, is larger. In a general sense, it allows one to develop models that describe a given property as a function of an atomic (or atom-like) configuration. The property in question can be scalar or vectorial in nature, and could represent e.g., total energies and forces. At the moment is not longer under active development.
- OpenKIM is not a tool for constructing potentials, but a curated repository of interatomic potentials.
- hiPhive is a tool for efficiently extracting high-order force constants from atomistic simulations, most commonly density functional theory calculations. The construction of a force constant potential object can be subsequently used for generating phonon dispersions, computing phonon lifetimes, or running molecular dynamics simulations.
Machine Learning and Neural Networks Potential generator
- QUIP with the plugin GAP. The purpose of the GAP code is to fit interatomic potentials and then use them for molecular simulation
- N2P2 contains software that will allow you to use existing neural network potential parametrizations to predict energies and forces (with standalone tools but also in conjunction with the MD software LAMMPS). In addition it is possible to train new neural network potentials with the provided training tool
- Schnetpack. Deep Neural Networks for Atomistic Systems. SchNetPack aims to provide accessible atomistic neural networks that can be trained and applied out-of-the-box, while still being extensible to custom atomistic architectures.
- SchNarc A SchNetPack/SHARC interface for machine-learning accelerated excited state simulations
- Pacemaker (PythonACE maker) is a tool for fitting of interatomic potentials in a general nonlinear Atomic Cluster Expansion (ACE) form. It is based on the pyace (this repo) and tensorpotential (another repo) Python packages.
- FLAME is a highly modular open source software package to perform atomistic simulations using a variety of techniques. It provides an atomistic simulation environment to study clusters, crystals, and 2D sheets using a plethora of methods ranging from structure prediction to training neural network potentials.
- AENET The Atomic Energy NETwork (ænet) package is a collection of tools for the construction and application of atomic interaction potentials based on artificial neural networks (ANN). The ænet code allows the accurate interpolation of structural energies, e.g., from electronic structure calculations, using ANNs. ANN potentials generated with ænet can then be used in larger scale atomistic simulations and in situations where extensive sampling is required, e.g., in molecular dynamics or Monte-Carlo simulations.
- RuNNer allows developing Neural Network potential-energy surfaces for a variety of high-dimensional systems. The online documentation can be found here.
- MAISE (Module for ab initio structure evolution) is an open-source package for materials modeling and prediction. The code’s main feature is an automated generation of neural network interatomic potentials for use in global structure searches.
- KLIFF is an interatomic potential fitting package that can be used to fit both physics-motivated potentials (e.g. the Stillinger-Weber potential) and machine learning potentials (e.g. neural network potential).
- SIMPLE-NN (SNU Interatomic Machine-learning PotentiaL packagE – version Neural Network)
is an open package that constructs Behler-Parrinello-type neural-network interatomic potentials from ab initio data. The package provides an interfacing module to LAMMPS for MD simulations.
- MLAtom is a package for atomistic simulations with machine learning. It is an open-source software free for noncommercial uses such as academic research and education.
- Amp is an open-source package designed to easily bring machine-learning to atomistic calculations. This allows one to predict (or really, interpolate) calculations on the potential energy surface, by first building up a regression representation from a “training set” of atomic images.
- TorchAni is a PyTorch based software for training/inference of ANI (ANAKIN-ME) deep learning models to obtain potential energy surfaces and other physical properties of molecular systems.
- sGDML Accurate global machine learning force fields with hundreds of atoms.
- SpookyNet Learning force fields with electronic degrees of freedom and nonlocal effects.
- There are even more, as it is a rapid evolving field, like: PhysNet, Allegro or Mace
Automatize Computational Strategies and Workflows
- Pyiron Complex workflows made easy. From rapid prototyping to high performance computing in material science. Check Tutorials section for some recordings about using it.
- Aiida Automated workflows for computational science. More info on how to use it in the Tutorial section
- Atomate helps the user generate Workflow objects as defined by the FireWorks workflow software. Mainly designed to work with VASP.
- Miniconda is a free minimal installer for conda. It is a small, bootstrap version of Anaconda that includes only conda, Python, the packages they depend on, and a small number of other useful packages, including pip, zlib and a few others. Use the conda install command to install 720+ additional conda packages from the Anaconda repository.
- Mamba is a reimplementation of the conda package manager in C++. Conda sometimes struggles and is really slow at solving the environment. Mamba is extremely fast and fixes this an some other issues.
To install the codes listed here, you have two options: either contact the administrator of your HPC or do it yourself. The most efficient method (performance wise) always will be to generate the binary in your working machine by compiling the code and linking it the the also compiled and optimized libraries in your specific machine. This is not always an easy task, but is what generates the most efficient code. If you are going to run complex and expensive calculations, this will be the way to go. Your administrator can do it, or you can do it yourself if you know how (usually it is painful).
If you want to run small or medium size simulations, were performance is not a big issue, or you want to try the tools and learn how to use them, the best method I've found so far is using Conda, and create a virtual environment. Conda not only manages Python modules, but it also can install many different precompiled packages. It deals with the dependencies and environment variables, and it can even generate binaries that run the code in parallel! If the codes you want are in the Anaconda repository (and most of them are), the steps you may want to follow are:
- Install miniconda for your OS. Does not require admin permissions.
- Create an environment
conda create -n environmentName
- Activate your brand new environment
conda activate environmentName
- install in your environment the packages you want
(environmentName) $ conda install -c conda-forge package1 package2
alternatively, you can use
condato install the packages
(environmentName) $ mamba install -c conda-forge package1 package2
- Rclone is a command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors' web storage interfaces. To synchronize clients and servers with different cloud providers, including GDrive, and Dropbox, OneDrive and ownCloud on Linux.
- Bilbao Crystallographic Server offers its crystallographic and solid state programs and utilities, free of charge.
- Jarvis (Joint Automated Repository for Various Integrated Simulations) is a repository designed to automate materials discovery and optimization using classical force-field, density functional theory, machine learning calculations and experiments. Access to the database and web-apps requires a user-credential. User-registration is free.
- Materials Cloud is built to enable the seamless sharing and dissemination of resources in computational materials science, offering educational, research, and archiving tools; simulation software and services; and curated and raw data. These underpin published results and empower data-based discovery, compliant with data management plans and the FAIR principles.
- MaterialsProject provides open web-based access to computed information on known and predicted materials as well as powerful analysis tools to inspire and design novel materials.
- MatSci This forum is a shared space used by several materials science research groups for discussion about research, data, codes, and materials science in general.
- MAX Training and Education offers integrated training and education in the field of HPC developments and in the computational materials science domain.
- Literature compilation An overview of literature that discusses the use of machine learning for atomistic simulations. By Max Shirokawa
- Chemistry Toolkit Rosetta Wiki is a wiki for sharing how to use different chemistry toolkits for the same set of common tasks. The main focus is on chemical informatics, with toolkits that handle molecular structures, depiction, databases, property analysis, nomenclature, and the like.
- Datasets are also important to train and test your models.
- Quanticorum is a Discord server that I've created in order to build a community of computational scientist where we can exchange ideas, workflows, questions and collaborate in real time. It is in its most incipient time.
Workshops, Courses and Tutorials
Density Functional Theory
- Coursera course gives a thorough introduction to Density Functional Theory (DFT). DFT is today the most widely used method to study interacting electrons, and its applicability ranges from atoms to solid systems, from nuclei to quantum fluids.
- Computational Material Physics Online courses on different methodologies. All content is offered via prerecorded videos. Each video comes with a task, and after submitting the task there is in many cases either automated feedback or peer feedback. During the fall term at Ghent University (September-December), instructors are present in the course to give a weekly feedback webinar in which student’s questions are discussed. At any other time of the year, you can still study this course in a self-paced way. There is the opportunity to be part of a team to work on a project. The course is free of cost and open to anyone. Emphasis is on conceptual understanding and hands-on training, not on mathematical theory.
Theoretical Chemistry, Physics and Mathematics
- Linear Algebra, lectures of Professor Gilbert Strang recorded in 1999.
- Quantum Physics I MIT Open Course Ware and the same course with Allan Adams, who is a great teacher!
- Introduction to Solid State Chemistry
- David Tong: Lectures on Theoretical Physics
- Workshop 2022: From Electrons to Phase Diagrams
- Workshop 2021: Fitting Potentials
- Workshop 2020: Workflow for atomistic simulations
- Aiida Workshop 2021
- Aiida Workshop 2020
- Aiida Plugin Migration Workshop 2019
- Aiida on Reproducible Workflow, 2019
- Tutorial Aiida-Quantumespresso video and QE-Aiida
- School on QE: Hands On Aiida
- JARVIS: Recorded Videos
- Deep Learning for Molecules & Materials
- Pattern Recognition and Machine Learning is a free textbook in the field of Machine Learning. It is not specific for computational chemistry, but assumes no previous knowledge of pattern recognition or machine learning concepts.
Well, if you've reached this far, congratulations! I hope you found something useful in this list and you can use for your own research. If you think i really missed some important code or you just want to share something, just leave a comment, send me a message or joint the community in the Quanticorum server.
I want to thank Dr. Fernando Izquierdo Ruiz and Dr. Philipp Marquetand for their kind contribution to this list. I am an MSCA UNA4CAREER postdoctoral research fellow and this project has received funding from the European Union’s Horizon 2020 Research and Innovation Programme under the Marie Sklodowska-Curie grant agreement Nº 847635.