spectroscopy.py: Calculation of Boltzmann-Averaged Properties
VCD, ECD, NMR, NOE, Vibrational, Electronic, Circular Dichroism, Chemical Shift
- Overview
- Examples
Experimental measurements are often obtained from a mixture of conformers. To accurately predict the experimental values, a series of calculations over a set of conformers must be performed, and the Boltzmann-weighted average of the quantity of interest obtained. The spectroscopy.py script automates such calculations, which include conformational searching of the input structure (with MacroModel, using the OPLS4 or OPLS_2005 force field), quantum mechanical refinement of the conformers (using Jaguar), elimination of redundant conformers (again using MacroModel), calculation of the property of interest for the remaining conformers (using Jaguar), and computation of Boltzmann weighting factors for the conformers (using Jaguar). This information can then be used to generate Boltzmann-averaged quantities. This script currently supports computation of VCD or ECD spectra, optical rotation calculations, NMR chemical shifts of carbon and hydrogen atoms, and NMR spin-spin couplings between atom pairs. IR spectra can be computed separately or as part of a VCD computation. UV-Vis can be computed separately or as part of a ECD computation. NOE distances can also be computed, either separately or as part of an NMR computation.
The command syntax is as follows:
jaguar run spectroscopy.py ([-ir] [-vcd] [uv_vis] [-ecd] |[-nmr] [-chem_shifts] [-ssc] [-noe] | [-optrot) [options] filename
where filename is a Maestro structure file. If the file contains multiple structures, all of the structures must be conformers of each other and conformer searching is skipped. If the input file contains a single structure, then a conformational search is run on it by default, although this may be suppressed with the appropriate option, -skip_csrch. For a description of the options, see spectroscopy.py Command Help or run the command with the -h option.
The script offers several choices of solvent. Only water and chloroform are available in MacroModel, so the conformational search for the other solvents is performed with either water or chloroform, depending on whether the chosen solvent is polar or nonpolar. The geometry optimization of the conformers is then done with the chosen solvent by Jaguar. When a solvent is requested, the geometry optimizations and spectroscopy property calculations are done using the PCM solvation model. The Boltzmann weights used to average properties are improved by recomputing the electronic energy using the PBF solvation model.
For a more complete conformational search, you can set -conf_search_acc=high.
You can set the temperature at which the Boltzmann weighting is calculated for the generated conformers with the --temperature TEMPERATURE option.
Below are details of important output files and quantities for CD, NMR, and NOE calculations.
VCD/ECD spectra calculations:
Boltzmann-Averaged VCD/ECD .spm and .csv files are generated and found in the jobname folder in the directory the script is executed in. They are named jobname + a descriptive suffix. The contents of the files are described in Vibrational and Electronic Circular Dichroism Spectra.
The computation of IR spectra is included in a VCD calculation (setting -vcd also sets -ir), but you can compute it on its own by setting the -ir property flag. The computation of UV/Visible spectra is included in an ECD calculation (setting -ecd also sets -uv_vis), but you can compute it on its own by setting the -uv_vis property flag.
Note that while the -vcd/-ir options can be used together with -ecd/-uv_vis, none can be used in conjunction with any nmr or noe property flags (-nmr/-chem_shifts/-ssc/-noe).
Optical Rotation calculations:
A jobname_optrot.csv file is generated after the calculation has finished, which lists the name, weight, specific optical rotation, and data type. The data type is "raw" for conformers and "averaged" for the Boltzmann-averaged structure. -optrot cannot be set in conjunction with the -nmr, -vcd, or -ecd options.
Calculate all NMR properties:
Set the -nmr option to calculate NMR chemical shifts, spin-spin couplings, and H-H/H-F vector distances for NOE analysis. This is equivalent to setting all three of the nmr properties: -chem_shifts, -ssc, and -noe. -nmr cannot be set in conjunction with the -vcd or -ecd options. For each NMR spectrum jobname_nmr.csv file generated in the calculation, a jobname_nmr_peaks.csv file reporting peak positions and heights is also generated.
NMR chemical shift calculations:
These calculations are currently supported for hydrogen, boron, carbon, nitrogen, fluorine, and phosphorus atoms in the gas phase or in chloroform.
The Boltzmann-averaged chemical shifts are reported for each atom, as well as further averaged over 3D equivalent atoms. The shifts are written as atom-level Maestro properties in a copy of the minimum-energy conformer, as Boltzmann-Avg NMR Chemical Shift and Boltzmann-Avg NMR Chemical Shift 3D Avg. The Boltzmann-averaged chemical shifts are reported in csv files that start with jobname_avg_.
Note that -chem_shifts cannot be used in conjunction with the -vcd or -ecd options.
NMR spin-spin coupling calculations:
The Boltzmann-averaged isotropic spin-spin couplings are reported for each atom pair, as well as further averaged over 3D equivalent pairs of atoms. By default, pairs whose members are 3D-equivalent to one another are not computed since their couplings have no physical meaning. To compute couplings for all pairs, add the -compute_all_ssc option. The couplings are written as structure-level Maestro properties in a copy of the minimum-energy conformer as, for example, Boltzmann-Avg F2 H2 Total SpinSpin Coupling iso and Boltzmann-Avg F2 H2 Total SpinSpin Coupling iso 3D Avg.
The Boltzmann- and 3D-averaged spin-spin couplings are printed in both the .out file and a csv file named jobname_SpinSpin_Couplings.csv.
Note that -ssc cannot be used in conjunction with the -vcd or -ecd options.
NOE distance calculations:
For Nuclear Overhauser Effect (NOE) analysis, we also calculate the Boltzmann-averaged distances of all H-H and H-F vectors.
H-H and H-F distances are written to a CSV file and as a table in the .out file, for the nuclear Overhauser effect (NOE). The distance values include Boltzmann-averaged, minimum, and maximum values, and values for each conformer.
The Boltzmann-averaged distances are printed in both the .out file and a csv file named jobname_HH_HF_distances.csv.
Note that -noe cannot be used in conjunction with the -vcd or -ecd options. NOE distances will still be calculated if any nmr property flag (-nmr/-chem_shifts/-ssc) is specified. Using the -noe option alone will skip calculation of other nmr properties.
Atropisomerism
Compounds exhibiting two atropisomers around one dihedral can be accounted for with the -check_for_atropisomers option. Setting this option alone will task the workflow with searching all dihedrals in the input compound for atropisomerism. If the structure of the atropisomers is known, searching around a specific dihedral can be set with the -target_dihedral option. The search involves rotating each dihedral of interest and constructing potential energy surfaces (PES) to look for barriers. If high enough barriers around a dihedral are found, atropisomers are recognized. The PES is constructed using QRNN or xTB by default, depending on the elements present in the input compound. One can specify a DFT method/basis to construct the PES with the -pes_method and -pes_basis options. Currently atropisomerism is not compatible with NMR spectra.
The below example shows how a check for atropisomers can be included as part of the command:
jaguar run spectroscopy.py ... -check_for_atropisomers -target_dihedral [1,4,5,8] -pes_method b3lyp-d3 -pes_basis 6-31G* filename