# AaronTools.py
AaronTools provides a collection of tools for automating routine tasks encountered when running quantum chemistry computations.

These tools can be used either directly within a Python script using AaronTools objects, or via a series of command-line scripts. 

## Documentation
AaronTools documenation, including tutorials on the Python API, can be found on our Read-the-Docs Page (https://aarontools.readthedocs.io/en/latest/).

## Installation
* with pypi: pip install AaronTools

See the installation guide (https://aarontools.readthedocs.io/en/latest/tutorials/install.html) for more details, including how to manually install from this GitHub repository.

## Citation
If you use AaronTools, please cite:

V. M. Ingman, A. J. Schaefer, L. R. Andreola, and S. E. Wheeler "QChASM: Quantum Chemistry Automation and Structure Manipulation" WIREs Comp. Mol. Sci. 11, e1510 (2021) (http://dx.doi.org/10.1002/wcms.1510)

## Features
AaronTools has a wide variety of features that can be accessed through the Python API as well as command line scripts (CLSs). These features include, but are not limited to:

* Calculating steric parameters
  * Sterimol Parameters, including Sterimol2Vec (substituent CLS (https://aarontools.readthedocs.io/en/latest/cls/substituentSterimol.html), ligand CLS (https://aarontools.readthedocs.io/en/latest/cls/ligandSterimol.html), substituent API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/substituent.py#L504), ligand API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/component.py#L219))
  * Buried Volume (CLS (https://aarontools.readthedocs.io/en/latest/cls/percentVolumeBuried.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/geometry.py#L2408))
  * Steric Maps (CLS (https://aarontools.readthedocs.io/en/latest/cls/stericMap.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/geometry.py#L2739))
  * Ligand Solid Angle (CLS (https://aarontools.readthedocs.io/en/latest/cls/solidAngle.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/component.py#L901))
  * Ligand Cone Angle - Tolman for asymmetric mono- and bidentate ligands, as well as exact cone angles (CLS (https://aarontools.readthedocs.io/en/latest/cls/coneAngle.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/component.py#L456))
* Molecular Structure Editing
  * add or modify substituents (single CLS (https://aarontools.readthedocs.io/en/latest/cls/substitute.html), batch CLS (https://aarontools.readthedocs.io/en/latest/cls/multiSubstitute.html), single API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/geometry.py#L3979))
  * swap ligands (CLS (https://aarontools.readthedocs.io/en/latest/cls/mapLigand.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/geometry.py#L4907))
* Generating Molecular Structures
  * coordination complexes (CLS (https://aarontools.readthedocs.io/en/latest/cls/getCoordinationComplexes.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/geometry.py#L271))
  * organic molecules from SMILES or IUPAC (CLS (https://aarontools.readthedocs.io/en/latest/cls/fetchMolecule.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/geometry.py#L154))
* Quantum Computation Setup and Processing
  * making input files for Gaussian, ORCA, Psi4, Q-Chem, xTB, and SQM (CLS (https://aarontools.readthedocs.io/en/latest/cls/makeInput.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/fileIO.py#L190))
  * parsing data from output files (CLS (https://aarontools.readthedocs.io/en/latest/cls/printInfo.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/fileIO.py#L1077))
  * thermochemistry based on Boltzmann-populated vibrational modes (CLS (https://aarontools.readthedocs.io/en/latest/cls/grabThermo.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/comp_output.py#L36))
  * normal vibrational modes (displace along mode CLS (https://aarontools.readthedocs.io/en/latest/cls/follow.html), print data CLS (https://aarontools.readthedocs.io/en/latest/cls/printFreq.html), IR or VCD spectrum CLS (https://aarontools.readthedocs.io/en/latest/cls/plotIR.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/spectra.py#L691))
  * valence excitations (UV/vis or ECD spectrum CLS (https://aarontools.readthedocs.io/en/latest/cls/plotUVVis.html), API (https://github.com/QChASM/AaronTools.py/blob/ff461166927faff684d6d16e4deb1e4a45375eae/spectra.py#L1327))
  * orbitals, electron density, and Fukui functions (CLS (https://aarontools.readthedocs.io/en/latest/cls/printCube.html), API (https://github.com/QChASM/AaronTools.py/blob/e5f218341e47c74e41df3340ab6a31d3cadcaf6a/orbitals.py#L14))
* Parse data from output files of several popular quantum chemistry programs (Read-the-Docs Tutorial (https://aarontools.readthedocs.io/en/latest/tutorials/coding_with_filereaders.html))
  * Gaussian
  * ORCA
  * Psi4
  * Q-Chem
  * NBO
  * xTB

Features are explained in more detail in the documentation and in docstrings of the Python API. 

## Other Versions

### ChimeraX Plugin
The majority of these features are also available with a graphical interface in the SEQCROW plugin (https://cxtoolshed.rbvi.ucsf.edu/apps/seqcrow) for ChimeraX (https://www.cgl.ucsf.edu/chimerax/).

### Perl
A Perl implementation of AaronTools is also available here. (https://github.com/QChASM/AaronTools)
However, users are strongly urged to use the Python version since it has far more powerful features and, unlike the Perl version, will continue to be developed and supported.

## Contact
If you have any questions or would like to discuss bugs or additional needed features, feel free to contact us at qchasm@uga.edu
