ASH: Documentation
ASH is a Python-based computational chemistry and multiscale modelling program designed for ultimate flexibility. This works by separating the Hamiltonians (of the QM or MM programs) from the typical jobtypes of computational chemistry (optimization, frequencies, MD, scans etc.). The program is open-source and the code is available on Github
The program allows for convenient ways of doing single-point calculations, geometry optimizations, surface scans, nudged elastic band optimizations, molecular dynamics and numerical frequencies using any MM or QM method in a program for which there is an interface. MM and QM objects are easily combined into QM/MM objects. ASH is a great solution for automating workflows and performing multi-scale and multi-theory calculations. Interfaces are available to various popular QM codes, such as ORCA, xTB, CP2K, Psi4, PySCF, ccpy, Dalton, MRCC, CFour, MNDO, Terachem, QUICK, Gaussian, NWChem. Reaction profiles and saddlepoint optimizations can be performed using the nudged elastic band method (NEB).
The program is developed in the research group of Dr. Ragnar Bjornsson in the CoMX group , of the Laboratory for Chemistry and Biology of Metals, at the CEA in Grenoble, France.
Curious? Try it out in a Google Colab notebook: ASH in Google Colab
- About ASH
- Setup
- Basic usage
- Basic examples
- ASH Program Philosophy
- Coordinates and fragments
- The Fragment class
- Creating/modifying fragment objects
- Direct creation of an ASH fragment from coordinates
- Adding coordinates to object
- Replace coordinates of object
- Calculate connectivity of fragment object
- Charge and Multiplicity
- Label
- Inspect defined fragment objects
- Calculate distances,angles and dihedral angles between atoms in a fragment
- Parallelization in ASH
- QM Interfaces
- Scientific articles using ASH
- MM Interfaces
- OpenMM interface
- Installing OpenMM
- Checking OpenMM for CPU and GPU execution
- The OpenMMTheory class
- OpenMMTheory examples
- Executing OpenMM on the GPU
- Periodic boundary conditions
- Molecular Dynamics of an OpenMMTheory object
- PBC box relaxation via NPT
- Simple minimization via OpenMM
- Gentle WarmupMD
- System setup via OpenMM: Modeller
- Setting up a protein system with implicit solvation
- Create forcefield for ligand / small molecule
- write_nonbonded_FF_for_ligand
- small_molecule_parameterizer
- Small molecule solvation
- Hybrid Theory
- QM/MM Theory
- QMMMTheory class
- Defining the charge and spin multiplicity of the QM-region
- Defining QM-region and active region
- QM/MM coupling: mechanical vs. electrostatic embedding
- QM/MM boundary treatment: linkatoms
- QM/MM boundary treatment: mechanical vs. electrostatic embedding
- How QM/MM works behind the scenes in ASH
- QM/MM Truncated PC approximation
- Example: QM/MM with ORCA and NonbondedTheory
- Example: QM/MM with ORCA and OpenMMTheory
- ONIOM
- Machine learning in ASH
- Ensemble averaging
- Electronic structure analysis
- Workflow functionality
- Highlevel workflows
- Specific workflows
- Benchmarking in ASH
- MOLCRYS: Automatic QM/MM for Molecular Crystals
- MOLCRYS function: Creating a cluster
- Dealing with Molcrys errors
- MOLCRYS Example: Spherical QM/MM Cluster setup from CIF-file
- MOLCRYS: QM/MM Geometry optimization
- MOLCRYS: Expanded QM region calculation
- MOLCRYS: Property calculation
- MOLCRYS: Reaction path and saddle-point finding via NEB method
- MOLCRYS: Fragment identification/Connectivity issues
- PES: PhotoElectron/PhotoEmission Spectrum
- Plotting
- ORCA interface
- xTB interface
- CP2K interface
- MRCC interface
- CFour interface
- Dalton interface
- PySCF interface
- Advanced: PySCFTheory methods
- PySCF installation
- Parallelization
- Using the interface
- Controlling restart and guess
- Controlling basis set and ECP
- SCF convergence
- Controlling integral approximation for Coulomb and HF Exchange
- Typical Examples
- Natural orbital calculations from various WF methods
- Write Molden files of orbitals
- Multireference calculations (CASSCF, MCPDFT etc.)
- Excited state calculation examples
- ccpy interface
- Dice interface
- Block2 interface
- Psi4 interface
- CREST interface
- QUICK interface
- NWChem interface
- Gaussian interface
- TeraChem interface
- Multiwfn interface
- MNDO interface
- MLatom interface
- Torch interface
- Helper-programs interfaces
- Explicit solvation (small molecule)
- Creating a small-molecule forcefield
- Example 1. Modelling of an organic molecule in explicit water with a ligand forcefield
- Example 2. Modelling of an inorganic molecule in explicit water using a simple non-bonded forcefield
- Example 3. Setting up an explicit non-aqueous solution system (with an inorganic solute)
- Running QM/MM MD simulations with periodic boundary conditions
- Issues
- Metalloprotein tutorial I: Rubredoxin
- Metalloprotein tutorial II: Ferredoxin
- Metadynamics in ASH: Tutorial
- Modelling protein-ligand binding in ASH: Tutorial
- 1. Preparing initial files
- 2. Preparing ligand forcefield
- 3. Merge and align protein and ligand
- 4. Prepare system using OpenMM_Modeller
- 5. STEPS 1-4 COMBINED
- 6. Run initial preparatory MD simulations
- 7. Run long time-scale NVT simulation
- 8. Funnel metadynamics of the protein-ligand system
- 9. QM/MM of the protein-ligand system
- QM/MM on a protein
- 1. Prepare a classical MM model of the system.
- 2a. Read coordinates and forcefield into ASH
- 3. Create the QM/MM model and test it by running an energy calculation
- 4. Run a QM/MM geometry optimization
- 5. Modifying the coordinates of the QM-region
- 6. Adding/removing atoms of the system
- 7. Other QM/MM jobtypes
- 8. EXAMPLE: Protein-setup, Opt, MD, QM/MM all in one script
- Tutorial: QM/MM boundary
- Workflow examples in ASH
- Example 1 : Optimization + Frequency + HighLevel-singlepoint
- Example 2a : Direct calculation of Reaction Energy: N2 + 3H2 → 2NH3
- Example 2b : Direct calculation of Reaction Energy with an Automatic Thermochemistry Protocol
- Example 3a : Running multiple single-point energies with different functionals (sequential)
- Example 3b : Running multiple single-point energies with different functionals (in parallel)
- Example 4a : Running single-point energies on a collection of XYZ files (sequential)
- Example 4b : Running single-point energies on a collection of XYZ files (parallel)
- Example 5 : Calculate localized orbitals and create Cube files for multiple XYZ files or an XYZ-trajectory
- Example 6 : Running conformer-sampling, geometry optimizations and High-level single-points
- Tutorial: High-level CCSD(T)/CBS workflows
- Example: CCSD(T)/CBS for the N2 total energy and Bond Dissociation Energy
- Example: Atomization energy and formation enthalpy of Methane
- Example: CCSD(T) and DLPNO-CCSD(T)/CBS calculations on threshold energy of chlorobenzene
- Example: DLPNO-CCSD(T)/CBS 3d Transition metal complex: Ionization of Ferrocene
- Example: DLPNO-CCSD(T)/CBS calculations on a 4d Transition metal complex
- Tutorial: High-level wavefunction and density analysis
- Tutorial: Kohn-Sham potential inversion
- Tutorial: Running fast protein QM/MM MD simulations in ASH
- 0. Lysozyme system
- 1. Lysozyme: Classical simulations
- 2. Lysozyme: QM/MM MD using semi-empirical methods
- 3. Lysozyme: QM/MM MD using non-hybrid DFT and composite methods
- 4. Lysozyme: QM/MM MD using a special tailored minimal basis set
- 5. Lysozyme: QM/MM MD using hybrid-DFT
- 6. Lysozyme: QM/MM MD using GPU-based DFT-programs
- 7. Lysozyme: QM/MM MD using WFT methods
- 8. Lysozyme: Machine-learning potentials
- 9. Lysozyme: Truncated PC gradient approximation
- 10. Lysozyme: QM/MM MD SUMMARY
- Writing a new Theory interface in ASH
Warning
This is ASH version 0.9. Use at your own risk!