Awesome Python Chemistry !Awesome (https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg) (https://github.com/sindresorhus/awesome) !License: CC BY 4.0 (https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg) (https://creativecommons.org/licenses/by/4.0/) A curated list of awesome Python frameworks, libraries, software and resources related to Chemistry. Inspired by awesome-python (https://awesome-python.com). Table of contents - Awesome Python Chemistry !Awesome (https://github.com/sindresorhus/awesome) (#awesome-python-chemistry-)  - General Chemistry (#general-chemistry)  - Machine Learning (#machine-learning)  - Generative Molecular Design (#generative-molecular-design)  - Simulations (#simulations)  - Molecular Visualization (#molecular-visualization)  - Database Wrappers (#database-wrappers)  - Learning Resources (#learning-resources)  - See Also (#see-also) ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― General Chemistry Packages and tools for general chemistry. - AQME (https://github.com/jvalegre/aqme) - Ensemble of automated QM workflows that can be run through jupyter notebooks, command lines and yaml files. - aizynthfinder (https://github.com/MolecularAI/aizynthfinder) - A tool for retrosynthetic planning. - batchcalculator (http://lukaszmentel.com/batchcalculator/) - A GUI app based on wxPython for calculating the correct amount of reactants (batch) for a particular composition given by the molar ratio of its  components. - cctbx (https://cctbx.github.io/) - The Computational Crystallography Toolbox. - ChemFormula (https://github.com/molshape/ChemFormula) - ChemFormula provides a class for working with chemical formulas. It allows parsing chemical formulas, calculating formula weights, and generating  formatted output strings (e.g. in HTML, LaTeX, or Unicode). - chemlib (https://chemlib.readthedocs.io/en/latest/) - A robust and easy-to-use package that solves a variety of chemistry problems. - chempy (http://pythonhosted.org/chempy/) - ChemPy is a package useful for chemistry (mainly physical/inorganic/analytical chemistry). - datamol (https://github.com/datamol-org/datamol): - Molecular Manipulation Made Easy. A light wrapper build on top of RDKit. - GoodVibes (https://github.com/bobbypaton/GoodVibes) - A Python program to compute quasi-harmonic thermochemical data from Gaussian frequency calculations. - hgraph2graph (https://github.com/wengong-jin/hgraph2graph) - Hierarchical Generation of Molecular Graphs using Structural Motifs. - ionize (http://lewisamarshall.github.io/ionize/) - Calculates the properties of individual ionic species in aqueous solution, as well as aqueous solutions containing arbitrary sets of ions. - LModeA-nano (https://lmodea-nano.readthedocs.io/en/latest/) - Calculates the intrinsic chemical bond strength based on local vibrational mode theory in solids and molecules. - mendeleev (http://mendeleev.readthedocs.io/en/stable/) - A package that provides a python API for accessing various properties of elements from the periodic table of elements. - nmrglue (https://github.com/jjhelmus/nmrglue) - A package for working with nuclear magnetic resonance (NMR) data including functions for reading common binary file formats and processing NMR data. - Open Babel (http://openbabel.org/wiki/Main_Page) - A chemical toolbox designed to speak the many languages of chemical data. - periodictable (https://github.com/pkienzle/periodictable) - This package provides a periodic table of the elements with support for mass, density and xray/neutron scattering information. - propka (https://github.com/jensengroup/propka) - Predicts the pKa values of ionizable groups in proteins and protein-ligand complexes based in the 3D structure. - pybel (https://openbabel.org/docs/dev/UseTheLibrary/Python_Pybel.html) - Pybel provides convenience functions and classes that make it simpler to use the Open Babel libraries from Python. - pycroscopy (https://pycroscopy.github.io/pycroscopy/index.html) - Scientific analysis of nanoscale materials imaging data. - pyEQL (https://pyeql.readthedocs.io/en/latest/index.html) - A set of tools for conventional calculations involving solutions (mixtures) and electrolytes. - pyiron (http://pyiron.org/) - pyiron - an integrated development environment (IDE) for computational materials science. - pymatgen (http://pymatgen.org) - Python Materials Genomics is a robust, open-source library for materials analysis. - pymatviz (https://github.com/janosh/pymatviz) - A toolkit for visualizations in materials informatics. - symfit (https://symfit.readthedocs.io/en/stable/) - a curve-fitting library ideally suited to chemistry problems, including fitting experimental kinetics data. - symmetry (http://pythonhosted.org/symmetry/) - Symmetry is a library for materials symmetry analysis. - stk (https://github.com/lukasturcani/stk) - A library for building, manipulating, analyzing and automatic design of molecules, including a genetic algorithm. - spectrochempy (https://github.com/spectrochempy/spectrochempy) - A library for processing, analyzing and modeling spectroscopic data. Machine Learning Packages and tools for employing machine learning and data science in chemistry. - amp (http://amp.readthedocs.io/en/latest/) - Is an open-source package designed to easily bring machine-learning to atomistic calculations. - atom3d (https://github.com/drorlab/atom3d) - Enables machine learning on three-dimensional molecular structure. - chainer-chemistry (https://github.com/chainer/chainer-chemistry) - A deep learning framework (based on Chainer) with applications in Biology and Chemistry. - chemml (https://hachmannlab.github.io/chemml/) - A machine learning and informatics program suite for the analysis, mining, and modeling of chemical and materials data. - chemprop (https://github.com/chemprop/chemprop) - Message Passing Neural Networks for Molecule Property Prediction . - cgcnn (https://github.com/txie-93/cgcnn) - Crystal graph convolutional neural networks for predicting material properties. - deepchem (http://deepchem.io/) - Deep-learning models for Drug Discovery and Quantum Chemistry. - DeepPurpose (https://github.com/kexinhuang12345/DeepPurpose) - A Deep Learning Library for Compound and Protein Modeling DTI, Drug Property, PPI, DDI, Protein Function Prediction. - DescriptaStorus (https://github.com/bp-kelley/descriptastorus) - Descriptor computation (chemistry) and (optional) storage for machine learning. - DScribe (https://github.com/SINGROUP/dscribe) - Descriptor library containing a variety of fingerprinting techniques, including the Smooth Overlap of Atomic Positions (SOAP). - graphein (https://github.com/a-r-j/graphein) - Provides functionality for producing geometric representations of protein and RNA structures, and biological interaction networks. - Matminer (https://github.com/hackingmaterials/matminer) - Library of descriptors to aid in the data-mining of materials properties, created by the Lawrence Berkeley National Laboratory. - MoleOOD (https://github.com/yangnianzu0515/MoleOOD) - a robust molecular representation learning framework against distribution shifts. - megnet (https://github.com/materialsvirtuallab/megnet) - Graph Networks as a Universal Machine Learning Framework for Molecules and Crystals. - MAML (https://github.com/materialsvirtuallab/maml) - Aims to provide useful high-level interfaces that make ML for materials science as easy as possible. - MORFEUS (https://github.com/kjelljorner/morfeus) - Library for fast calculations of molecular features from 3D structures for machine learning with a focus on steric descriptors. - olorenchemengine (https://github.com/Oloren-AI/olorenchemengine) - Molecular property prediction with unified API for diverse models and respresentations,  with integrated uncertainty quantification, interpretability, and hyperparameter/architecture tuning. - ROBERT (https://github.com/jvalegre/robert) - Ensemble of automated machine learning protocols that can be run sequentially through a single command line. The program works for regression and classification  problems. - schnetpack (https://github.com/atomistic-machine-learning/schnetpack) - Deep Neural Networks for Atomistic Systems. - selfies (https://github.com/aspuru-guzik-group/selfies) - Self-Referencing Embedded Strings (SELFIES): A 100% robust molecular string representation. - Summit (https://github.com/sustainable-processes/summit) - Package for optimizing chemical reactions using machine learning (contains 10 algorithms + several benchmarks). - TDC (https://github.com/mims-harvard/TDC) - Therapeutics Data Commons (TDC) is the first unifying framework to systematically access and evaluate machine learning across the entire range of therapeutics. - XenonPy (https://github.com/yoshida-lab/XenonPy) - Library with several compositional and structural material descriptors, along with a few pre-trained neural network models of material properties. Generative Molecular Design Packages and tools for generating molecular species - GraphINVENT (https://github.com/MolecularAI/GraphINVENT) - A platform for graph-based molecular generation using graph neural networks. - GuacaMol (https://github.com/BenevolentAI/guacamol) - A package for benchmarking of models for _de novo_ molecular design. - moses (https://github.com/molecularsets/moses) - A benchmarking platform for molecular generation models. - perses (https://github.com/choderalab/perses) - Experiments with expanded ensembles to explore chemical space. Simulations Packages for atomistic simulations and computational chemistry. - alchemlyb (https://github.com/alchemistry/alchemlyb) - Makes alchemical free energy calculations easier by leveraging the full power and flexibility of the PyData stack. - atomate2 (https://github.com/materialsproject/atomate2) - atomate2 is a library of computational materials science workflows. - Atomic Silumation Environment (ASE) (https://wiki.fysik.dtu.dk/ase/index.html) - Is a set of tools and modules for setting up, manipulating, running, visualizing and analyzing atomistic simulations. - basis_set_exchange (https://github.com/MolSSI-BSE/basis_set_exchange) - A library containing basis sets for use in quantum chemistry calculations. In addition, this library has functionality for manipulation  of basis set data. - CACTVS (https://www.xemistry.com/academic/) - Cactvs is a universal, scriptable cheminformatics toolkit, with a large collection of modules for property computation, chemistry data file I/O and other tasks. - CalcUS (https://github.com/cyllab/CalcUS) - Quantum chemisttry web platform that brings all the necessary tools to perform quantum chemistry in a user-friendly web interface. - cantera (https://github.com/Cantera/cantera) - A collection of object-oriented software tools for problems involving chemical kinetics, thermodynamics, and transport processes. - CatKit (https://github.com/SUNCAT-Center/CatKit) - General purpose tools for high-throughput catalysis. - ccinput (https://github.com/cyllab/ccinput/) - A tool and library for creating quantum chemistry input files. - cclib (https://cclib.github.io/) - A library for parsing output files various quantum chemical programs. - cinfony (http://cinfony.github.io/) - A common API to several cheminformatics toolkits (Open Babel, RDKit, the CDK, Indigo, JChem, OPSIN and cheminformatics webservices). - chemlab (http://chemlab.readthedocs.io/en/latest/index.html) - Is a library that can help the user with chemistry-relevant calculations. - emmet (https://github.com/materialsproject/emmet) - A package to 'build' collections of materials properties from the output of computational materials calculations. - fromage (https://github.com/Crespo-Otero-group/fromage/) - The "FRamewOrk for Molecular AGgregate Excitations" enables localised QM/QM' excited state calculations in a solid state environment. - GPAW (https://wiki.fysik.dtu.dk/gpaw/) - Is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW) method and the atomic simulation environment (ASE). - horton (http://theochem.github.io/horton/2.0.1/index.html) - Helpful Open-source Research TOol for N-fermion system, a quantum-chemistry program that can perform computations involving model Hamiltonians. - HTMD (https://github.com/Acellera/htmd) - High-Throughput Molecular Dynamics: Programming Environment for Molecular Discovery. - Indigo (https://github.com/epam/Indigo) - Universal cheminformatics libraries, utilities and database search tools. - Jarvis-tools (https://github.com/usnistgov/jarvis) - An open-access software package for atomistic data-driven materials design - mathchem (http://mathchem.iam.upr.si/) - Is a free open source package for calculating topological indices and other invariants of molecular graphs. - MDAnalysis (http://www.mdanalysis.org/) - Is an object-oriented library to analyze trajectories from molecular dynamics (MD) simulations in many popular formats. - MDTraj (http://mdtraj.org) - Package for manipulating molecular dynamics trajectories with support for multiple formats. - MMTK (http://dirac.cnrs-orleans.fr/MMTK/) - The Molecular Modeling Toolkit is an Open Source program library for molecular simulation applications. - MolMod (http://molmod.github.io/molmod/index.html) - A library with many components that are useful to write molecular modeling programs. - oddt (https://github.com/oddt/oddt) - Open Drug Discovery Toolkit, a modular and comprehensive toolkit for use in cheminformatics, molecular modeling etc. - OPEM (https://github.com/ECSIM/opem) - Open source PEM (Proton Exchange Membrane) fuel cell simulation tool. - openmmtools (https://github.com/choderalab/openmmtools) - A batteries-included toolkit for the GPU-accelerated OpenMM molecular simulation engine. - overreact (https://github.com/geem-lab/overreact) - A library and command-line tool for building and analyzing complex homogeneous microkinetic models from quantum chemistry calculations, with support for  quasi-harmonic thermochemistry, quantum tunnelling corrections, molecular symmetries and more. - ParmEd (https://github.com/ParmEd/ParmEd) - Parameter/topology editor and molecular simulator with visualization capability. - pGrAdd (https://github.com/VlachosGroup/PythonGroupAdditivity) - A library for estimating thermochemical properties of molecules and adsorbates using group additivity. - phonopy (http://atztogo.github.io/phonopy/) - An open source package for phonon calculations at harmonic and quasi-harmonic levels. - PLAMS (https://github.com/SCM-NV/PLAMS) - Python Library for Automating Molecular Simulation: input preparation, job execution, file management, output processing and building data workflows. - pMuTT (https://vlachosgroup.github.io/pMuTT/) - A library for ab-initio thermodynamic and kinetic parameter estimation. - PorePy (https://github.com/pmgbergen/porepy) - A Simulation Tool for Fractured and Deformable Porous Media. - ProDy (http://prody.csb.pitt.edu/) - An open source package for protein structural dynamics analysis with a flexible and responsive API. - ProLIF (https://github.com/chemosim-lab/ProLIF) - Interaction Fingerprints for protein-ligand complexes and more. - Psi4 (http://psicode.org) - A hybrid Python/C++ open-source package for quantum chemistry. - Psi4NumPy (https://github.com/psi4/psi4numpy/) - Psi4-based reference implementations and Jupyter notebook-based tutorials for foundational quantum chemistry methods. - pyEMMA (http://www.emma-project.org/latest/) - Library for the estimation, validation and analysis Markov models of molecular kinetics and other kinetic and thermodynamic models from molecular dynamics data. - pygauss (https://pygauss.readthedocs.io/en/stable/index.html) - An interactive tool for supporting the life cycle of a computational molecular chemistry investigations. - PyQuante (http://pyquante.sourceforge.net/) - Is an open-source suite of programs for developing quantum chemistry methods. - pysic (https://github.com/thynnine/pysic) - A calculator incorporating various empirical pair and many-body potentials. - Pyscf (https://github.com/sunqm/pyscf) - A quantum chemistry package written in Python. - pyvib2 (http://pyvib2.sourceforge.net/) - A program for analyzing vibrational motion and vibrational spectra. - RDKit (http://www.rdkit.org/) - Open-Source Cheminformatics Software. - ReNView (https://github.com/VlachosGroup/ReNView/wiki/Reaction-Network-Viewer-(ReNView)-Usage-Instructions) - A program to visualize reaction networks. - stk (https://github.com/lukasturcani/stk) - A library for building, manipulating, analyzing and automatic design of molecules. - QMsolve (https://github.com/quantum-visualizations/qmsolve) - A module for solving and visualizing the Schrödinger equation. - QUIP (http://libatoms.github.io/QUIP/) - A collection of software tools to carry out molecular dynamics simulations. - torchmd (https://github.com/torchmd/torchmd) - End-To-End Molecular Dynamics (MD) Engine using PyTorch. - tsase (http://theory.cm.utexas.edu/tsase/) - The library which depends on ASE to tackle transition state calculations. - yank (https://github.com/choderalab/yank) - An open, extensible Python framework for GPU-accelerated alchemical free energy calculations. Force Fields Packages related to force fields - CHGNet (https://github.com/CederGroupHub/chgnet) - Pretrained universal neural network potential for charge-informed atomistic modeling. - FitSNAP (https://github.com/FitSNAP/FitSNAP) - A Package For Training SNAP Interatomic Potentials for use in the LAMMPS molecular dynamics package. - fftool (https://github.com/paduagroup/fftool) - Tool to build force field input files for molecular simulation. - FLARE (https://github.com/mir-group/flare) - A package for creating fast and accurate interatomic potentials. - global-chem (https://github.com/Sulstice/global-chem) - A Chemical Knowledge Graph and Toolkit, writting in IUPAC/SMILES/SMARTS, for common small molecules from diverse communities to aid users in selecting  compounds for forcefield parametirization. - matbench-discovery (https://github.com/janosh/matbench-discovery) - A benchmark for ML-guided high-throughput materials discovery. - NeuralForceField (https://github.com/learningmatter-mit/NeuralForceField) - Neural Network Force Field based on PyTorch. - openff-toolkit (https://github.com/openforcefield/openff-toolkit) - The Open Forcefield Toolkit provides implementations of the SMIRNOFF format, parameterization engine, and other tools. Molecular Visualization Packages for viewing molecular structures. - ase-gui (https://wiki.fysik.dtu.dk/ase/ase/gui/gui.html#module-ase.gui) - The graphical user-interface allows users to visualize, manipulate, and render molecular systems and atoms objects. - chemiscope (https://github.com/lab-cosmo/chemiscope) - An interactive structure/property explorer for materials and molecules. - chemview (http://chemview.readthedocs.io/en/latest/) - An interactive molecular viewer designed for the IPython notebook. - imolecule (http://patrickfuller.github.io/imolecule/) - An embeddable webGL molecule viewer and file format converter. - moleculekit (https://github.com/Acellera/moleculekit) - A molecule manipulation library. - nglview (https://github.com/arose/nglview) - A Jupyter (https://jupyter.org/) widget to interactively view molecular structures and trajectories. - PyMOL (https://pymol.org/) - A user-sponsored molecular visualization system on an open-source foundation, maintained and distributed by Schrödinger. - pymoldyn (https://pgi-jcns.fz-juelich.de/portal/pages/pymoldyn-main.html) - A viewer for atomic clusters, crystalline and amorphous materials in a unit cell corresponding to one of the seven 3D Bravais  lattices. - sumo (http://sumo.readthedocs.io/en/latest/) - A toolkit for plotting and analysis of ab initio solid-state calculation data. - surfinpy (https://surfinpy.readthedocs.io/en/latest/) - A library for the analysis, plotting and visualisation of ab initio surface calculation data. - trident-chemwidgets (https://github.com/tridentbio/trident-chemwidgets) - Jupyter Widgets to interact with molecular datasets. Database Wrappers Providing a python layer for accessing chemical databases - ccdc (https://downloads.ccdc.cam.ac.uk/documentation/API/index.html) - An API for the Cambridge Structural Database System. - ChemSpiPy (http://chemspipy.readthedocs.io/en/latest/) - ChemSpider (http://www.chemspider.com/) wrapper, that allows chemical searches, chemical file downloads, depiction and retrieval of chemical properties. - CIRpy (http://cirpy.readthedocs.io/en/latest/) - An interface for the Chemical Identifier Resolver (CIR) by the CADD Group at the NCI/NIH. - pubchempy (http://pubchempy.readthedocs.io/en/latest/) - PubChemPy provides a way to interact with PubChem in Python. - chembl-downloader (https://github.com/cthoyt/chembl-downloader) - Automate downloading and querying the latest (or a given) version of ChEMBL (https://www.ebi.ac.uk/chembl/) - drugbank-downloader (https://github.com/cthoyt/drugbank_downloader) - Automate downloading, opening, and parsing DrugBank (https://www.drugbank.com/) Learning Resources Resources for learning to apply python to chemistry. - An Introduction to Applied Bioinformatics (https://github.com/applied-bioinformatics/iab2) - A Jupyter book demonstrating working with biochemical data using the scikit-bio library for tasks such as sequence  alignment and calculating Hamming distances. - Computational Thermodynamics (https://kyleniemeyer.github.io/computational-thermo/content/intro.html) - This collection of Jupyter notebooks demonstrates solutions to a range of thermodynamic problems  including solving chemical equilibria, comparing real versus ideal gas behavior, and calculating the temperature and composition of a combustion reaction. - SciCompforChemists (https://github.com/weisscharlesj/SciCompforChemists) - Scientific Computing for Chemists with Python is a Jupyter book teaching basic python in chemistry skills, including relevant  libraries, and applies them to solving chemical problems. Miscellaneous Awesome - Colorful Nuclide Chart (https://people.physics.anu.edu.au/~ecs103/chart/) - A beatuful, interactive visualization of nuclides with access to a varirty of nuclear properties and allows saving high quality  images for publications, presentations and outreach. See Also - awesome-cheminformatics (https://github.com/hsiaoyi0504/awesome-cheminformatics) Another list focuses on Cheminformatics, including tools not only in Python. - awesome-small-molecule-ml (https://github.com/benb111/awesome-small-molecule-ml) A collection of papers, datasets, and packages for small-molecule drug discovery. Most links to code are in Python. - awesome-molecular-docking (https://github.com/yangnianzu0515/awesome-molecular-docking) A curated list of molecular docking software, datasets, and papers. - jarvis (https://jarvis.nist.gov/) 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. - polypharmacy-ddi-synergy-survey (https://github.com/AstraZeneca/polypharmacy-ddi-synergy-survey) A collection of research papers (with Python implementations) focusing on drug-drug interactions, synergy and  polypharmacy.