Package: goodvibes
GoodVibes is a Python program to compute thermochemical data from one or a series of electronic structure calculations. It has been used since 2015 by several groups, primarily to correct the poor description of low frequency vibrations by the rigid-rotor harmonic oscillator treatment. The current version includes thermochemistry at variable temperature/concentration, various quasi-harmonic entropy and enthalpy schemes, automated detection of frequency scaling factors, D3-dispersion corrections calculations, Boltzmann averaging, duplicate conformer detection, automated tabulation and plotting of energy profiles, and error checking. Developed byRobert Paton,Ignacio Funes-Ardoiz, and members of thePaton Research Group, Colorado State:Guilian Luchini,Juan V. Alegre-Requena, andYanfei Guan. Integration with Travis CI testing byJaime Rodríguez-Guerrawith additions from Guilian Luchini.All (electronic, translational, rotational and vibrational) partition functions are recomputed and will be adjusted to any temperature or concentration. These default to 298.15 Kelvin and 1 atmosphere.The program will attempt to parse the level of theory and basis set used in the calculations and then try to apply the appropriate vibrational (zpe) scaling factor. Scaling factors are taken from theTruhlar group database.DocumentationGoodVibes documentation can be found on ourread-the-docs page.Quasi-Harmonic ApproximationTwo types of quasi-harmonic approximation are readily applied. The first is vibrational entropy: below a given cut-off value vibrational normal modes are not well described by the rigid-rotor-harmonic-oscillator (RRHO) approximation and an alternative expression is instead used to compute the associated entropy. The quasi-harmonic vibrational entropy is always less than or equal to the standard (RRHO) value obtained using Gaussian. Two literature approaches have been implemented. In the simplest approach, fromCramer and Truhlar,1all frequencies below the cut-off are uniformly shifted up to the cut-off value before entropy calculation in the RRHO approximation. Alternatively, as proposed byGrimme,2entropic terms for frequencies below the cut-off are obtained from the free-rotor approximation; for those above the RRHO expression is retained. A damping function is used to interpolate between these two expressions close to the cut-off frequency.The second type of quasi-harmonic approximation available is applied to the vibrational energy used in enthalpy calculations. Similar to the entropy corrections, the enthalpy correction implements a quasi-harmonic correction to the RRHO vibrational energy computed in DFT methods. The quasi-harmonic enthalpy value as specified byHead-Gordon3will be less than or equal to the uncorrected value using the RRHO approach, as the quasi-RRHO value of the vibrational energy used to compute the enthalpy is damped to approach a value of 0.5RT, opposed to the RRHO value of RT. Because of this, the quasi-harmonic enthalpy correction is appropriate for use in systems and reactions resulting in a loss of a rotational or translational degree of freedom.InstallationWith pypi:pip install goodvibesWith conda:conda install -c patonlab goodvibesManually Cloning the repositoryhttps://github.com/bobbypaton/GoodVibes.gitand then adding the location of the GoodVibes directory to the PYTHONPATH environment variable.Run the script with your Gaussian output files (the program expects .log or .out extensions). It has been tested with Python 2 and 3 on Linux, macOS and WindowsCiting GoodVibesLuchini, G.; Alegre-Requena, J. V.; Funes-Ardoiz, I.; Paton, R. S. GoodVibes: Automated Thermochemistry for Heterogeneous Computational Chemistry Data.F1000Research,2020,9, 291DOI:10.12688/f1000research.22758.1Using GoodVibespython-mgoodvibes[-q][--qsgrimme/truhlar][--qh][-fcutoff_freq][--fsS_cutoff_freq][--fhH_cutoff_freq][--check][-ttemperature][-cconcentration][--ti't_initial, t_final, step'][--ee][--bav"global"or"conf"][--cosmocosmo_filename][--cosmointcosmo_filename,initial_temp,final_temp][-vfrequency_scale_factor][--vmmmm_freq_scale_factor][--ssymm][--spclink/filename][--boltz][--dup][--pespes_yaml][--nogconf][--graphgraph_yaml][--cpu][--imag][--invertifreq][--freespacesolvent_name][--outputoutput_name][--mediasolvent_name][--xyz][--csv][--custom_extfile_extension]<output_file(s)>The-hoption gives help by listing all available options, default values and units, and proper usage.The-qoption turns on quasi-harmonic corrections to both entropy and enthalpy, defaulting to the Grimme method for entropy and the Head-Gordon enthalpy correction.The--qsoption selects the approximation for the quasi-harmonic entropic correction:--qs truhlaror--qs grimmerequest the options explained above. Both avoid the tendency of RRHO vibrational entropies towards infinite values for low frequencies. If not specified this defaults to Grimme's expression.The--qhoption selects the approximation for the quasi-harmonic enthalpy correction. Calling this argument requests the enthalpy correction option explained above. This replaces harmonic energy contributions with a quasi-RRHO vibrational energy term. If not specified the Head-Gordon expression is defaulted.The-foption specifies the frequency cut-off for both entropy and enthalpy calculations (in wavenumbers) i.e.-f 10would use 10 cm-1when calculating thermochemical values. The default value is 100 cm-1. N.B. when set to zero all thermochemical values match standard (i.e. harmonic) Gaussian quantities.The--fsoption specifies the frequency cut-off for only entropy calculations(in wavenumbers).--fs 40would use 40 cm-1when calculating entropies. The default value is 100 cm-1.The--fhoption specifies the frequency cut-off for only enthalpy calculations (in wavenumbers).--fh 200would use 200 cm-1when calculating enthalpies. The default value is 100 cm-1.The--checkoption applies the checks specified above to the calculation output files and displays a pass or fail message to the user.The-toption specifies temperature (in Kelvin). N.B. This does not have to correspond to the temperature used in the Gaussian calculation since all thermal quantities are reevalulated by GoodVibes at the requested temperature. The default value is 298.15 K.The-coption specifies concentration (in mol/l).  It is important to notice that the ideal gas approximation is used to relate the concentration with the pressure, so this option is the same as the Gaussian Pressure route line specification. The correction is applied to the Sackur-Tetrode equation of the translational entropy e.g.-c 1corrects to a solution-phase standard state of 1 mol/l. The default is 1 atmosphere.The--tioption specifies a temperature interval (for example to see how a free energy barrier changes with the temperature). Usage is--ti 'initial_temperature, final_temperature, step_size'. The step_size is optional, the default is set by the relationship (final_temp-initial_temp) / 10The--eeoption takes a file naming pattern (such as"*_R*:*_S*") with files named as structure_R.log, structure_S.log, and will calculate and display values for stereoisomer excess (in %), ratio, major isomer present, and ddG.The--cosmooption can be used to read Gibbs Free Energy of Solvation data from a COSMO-RS .out formatted file. GSOLV should be used as a COSMO-RS input with no argument.-c 1should be used in conjunction with this argument.The--cosmo_intoption allows for Gibbs Free Energy of Solvation calculated using COSMO-RS with a temperature interval to be applied at a range of temperatures. Since temperature gaps may not be consistent, the interval is automatically detected. Usage is--cosmo_int cosmo_gsolv.out,initial_temp,final_temp. GoodVibes will detect temperatures within the range provided.The-voption is a scaling factor for vibrational frequencies. DFT-computed harmonic frequencies tend to overestimate experimentally measured IR and Raman absorptions. Empirical scaling factors have been determined for several functional/basis set combinations, and these are applied automatically using values from the Truhlar group4based on detection of the level of theory and basis set in the output files. This correction scales the ZPE by the same factor, and also affects vibrational entropies. The default value when no scaling factor is available is 1 (no scale factor). The automated scaling can also be suppressed by-v 1.0The--vmmoption is a second scaling factor for vibrational frequencies when performing QM/MM calculations with ONIOM. The correction is applied using the additional information in the output file, %ModelSys and %RealSys. This correction is only applied when requested with ONIOM calculation files. The option is activated with the command-vmm scale_factorThe--ssymmoption will apply a symmetry correction to the entropy by detecting a molecule's internal and external symmetry. Symmetry correction is calculated separately (GoodVibes does not read the symmetry number from QM packages when this option is on to avoid duplicate corrections).The--spcoption can be used to obtain single point energy corrected values. For multi-step jobs in which a frequency calculation is followed by an additional (e.g. single point energy) calculation, the energy is taken from the final job and all thermal corrections are taken from the frequency calculation. Alternatively, the energy can be taken from an additional file.The--boltzoption will display the Boltzmann weighted factors based on free energy of each specified output file.The--dupoption will check multiple output files for duplicate structures based on energy, rotational constants and calculated frequencies. Cutoffs are currently specified as: energy cutoff = 0.1 mHartree; RMS Rotational Constant cutoff = 0.1 GHz; RMS Freq cutoff = 10 wavenumbers, Max Freq difference = 10 wavenumbers.The--pesoption takes a .yaml file input (see template below) along with calculation output files to allow for the construction of a potential energy surface from relative computed Gibbs free-energy values.The--nogconfoption will turn off a correction to the Gibbs free-energy due to multiple conformations when constructing a potential energy surface (use only with --pes option). Default is to calculate Gconf correction.The--graphoption takes a .yaml file input (see template below) along with calculation output files and will compute and graph relative Gibbs free-energy values along a reaction path (requires matplotlib library to be installed)The--cpuoption will add up all of the CPU time across all files (including single point calculations if requested).The--imagoption will print any imaginary frequencies (in wavenumbers) for each structure. Presently, all are reported. The hard-coded variable im_freq_cutoff can be edited to change this. To generate new input files (i.e. if this is an undesirable imaginary frequency) seepyQRCThe--invertifreqoption will convert any low lying imaginary frequencies lying in a certain range to positive values (in wavenumbers). The default cutoff is to make imaginary frequencies above -50 cm-1positive.The--freespaceoption specifies the solvent. The amount of free space accessible to the solute is computed based on the solvent's molecular and bulk densities. This is then used to correct the volume available to each molecule from the ideal gas approximation used in the Sackur-Tetrode calculation of translational entropy, as proposed byShakhnovich and Whitesides.5The keywords H2O, toluene, DMF (N,N-dimethylformamide), AcOH (acetic acid) and chloroform are recognized.The--outputoption is used to change the default output file name to a specified name instead. Use as--output NAMEto change the name of the output file of thermochemical data from "GoodVibes.dat" to "GoodVibes_NAME.dat"The--mediaoption applies an entropy correction to calculations done on solvent molecules calculated from their standard concentration.-c 1should be used in conjunction with this argument.The--xyzoption will write all molecular Cartesian coordinates to a .xyz output file.The--csvoption will write GoodVibes calculated thermochemical data to a .csv output file.The--custom_extoption allows for custom file extensions to be used. Current default calculation output files accepted are.logor.outfile extensions. New extensions can be detected by using GoodVibes with the option--custom_ext file_extension.The--bavoption allows the user to choose how the average moment of inertia is computed, used in computing the free-rotor entropy. Options are--bav globalto have all molecules computed with the same moment of inertia=10*10-44 kg m2 or--bav confto use the averaged rotational constants parsed from Gaussian output files to compute the average moment of inertiaThe--g4option allows the user to analyze G4 calculations from Gaussian. This option might be combined with a scaling factor of 0.9854 for vibrational frequencies (-v 0.9854) as suggested previously (doi: 10.1021/jp508422u).Example 1: Grimme-type quasi-harmonic correction with a (Grimme type) cut-off of 150 cm-1python-mgoodvibesexamples/methylaniline.out-f150StructureEZPEHT.ST.qh-SG(T)qh-G(T)*********************************************************************************************************omethylaniline-326.6649010.142118-326.5144890.0396680.039465-326.554157-326.553954*********************************************************************************************************The output shows both standard harmonic and quasi-harmonic corrected thermochemical data (in Hartree). The corrected enthalpy and entropy values are always less than or equal to the harmonic value.Example 2: Quasi-harmonic thermochemistry with a larger basis set single point energy correction link jobpython-mgoodvibesexamples/ethane_spc.out--spclinkStructureE_SPCEZPEH_SPCT.ST.qh-SG(T)_SPCqh-G(T)_SPC***********************************************************************************************************************oethane_spc-79.858399-79.8304210.073508-79.7804480.0275690.027570-79.808017-79.808019***********************************************************************************************************************This calculation contains a multi-step job: an optimization and frequency calculation with a small basis set followed by (--Link1--) a larger basis set single point energy. Note the use of the--spc linkoption. The standard harmonic and quasi-harmonic corrected thermochemical data are obtained from the small basis set partition function combined with the larger basis set single point electronic energy. In this example, GoodVibes automatically recognizes the level of theory used in the frequency calculation, B3LYP/6-31G(d), and applies the appropriate scaling factor of 0.977 (this can be suppressed to apply no scaling with -v 1.0)Alternatively, if a single point energy calculation has been performed separately, provided both file names share a common root e.g.ethane.outandethane_TZ.outthen use of the--spc TZoption is appropriate. This will give identical results as above.python-mgoodvibesexamples/ethane.out--spcTZStructureE_SPCEZPEH_SPCT.ST.qh-SG(T)_SPCqh-G(T)_SPC***********************************************************************************************************************oethane-79.858399-79.8304210.073508-79.7804480.0275690.027570-79.808017-79.808019***********************************************************************************************************************Example 3: Changing the temperature (from standard 298.15 K to 1000 K) and concentration (from standard state in gas phase, 1 atm, to standard state in solution, 1 mol/l)python-mgoodvibesexamples/methylaniline.out–t1000–c1.0StructureEZPEHT.ST.qh-SG(T)qh-G(T)*********************************************************************************************************omethylaniline-326.6649010.142118-326.4523070.2182120.216559-326.670519-326.668866*********************************************************************************************************This correction from 1 atm to 1 mol/l is responsible for the addition 1.89 kcal/mol to the Gibbs energy of each species (at 298K). It affects the translational entropy, which is the only component of the molecular partition function to show concentration dependence. In the example above the correction is larger due to the increase in temperature.Example 4: Analyzing the Gibbs energy across an interval of temperatures 300-1000 K with a stepsize of 100 K, applying a (Truhlar type) cut-off of 100 cm-1python-mgoodvibesexamples/methylaniline.out--ti'300,1000,100'--qstruhlar-f120StructureTemp/KHT.ST.qh-SG(T)qh-G(T)******************************************************************************************************omethylaniline300.0-326.5143990.0400050.039842-326.554404-326.554241omethylaniline400.0-326.5087350.0598160.059596-326.568551-326.568331omethylaniline500.0-326.5016700.0826250.082349-326.584296-326.584020omethylaniline600.0-326.4934290.1081480.107816-326.601577-326.601245omethylaniline700.0-326.4842220.1360950.135707-326.620317-326.619930omethylaniline800.0-326.4742180.1662160.165772-326.640434-326.639990omethylaniline900.0-326.4635450.1983000.197800-326.661845-326.661346omethylaniline1000.0-326.4523070.2321690.231614-326.684476-326.683921******************************************************************************************************Note that the energy and ZPE are not printed in this instance since they are temperature-independent. The Truhlar-type quasi-harmonic correction sets all frequencies below than 120 cm-1to a value of 100. Constant pressure is assumed, so that the concentration is recomputed at each temperature.Example 5: Analyzing the Gibbs Energy using scaled vibrational frequenciespython-mgoodvibesexamples/methylaniline.out-v0.95StructureEZPEHT.ST.qh-SG(T)qh-G(T)*********************************************************************************************************omethylaniline-326.6649010.135012-326.5212650.0402380.040091-326.561503-326.561356*********************************************************************************************************The frequencies are scaled by a factor of 0.95 before they are used in the computation of the vibrational energies (including ZPE) and entropies.Example 6: Writing Cartesian coordinatespython-mgoodvibesexamples/HCN*.out--xyzOptimized cartesian-coordinates found in files HCN_singlet.out and HCN_triplet.out are written to Goodvibes_output.xyzExample 7: Analyzing multiple files at oncepython-mgoodvibesexamples/*.out--cpuStructureEZPEHT.ST.qh-SG(T)qh-G(T)*********************************************************************************************************oAl_298K-242.3287080.000000-242.3263470.0176700.017670-242.344018-242.344018oAl_400K-242.3287080.000000-242.3263470.0176700.017670-242.344018-242.344018oH2O-76.3681280.020772-76.3435770.0214580.021458-76.365035-76.365035oHCN_singlet-93.3588510.015978-93.3393730.0228960.022896-93.362269-93.362269oHCN_triplet-93.1537870.012567-93.1377800.0240700.024070-93.161850-93.161850oallene-116.5696050.053913-116.5109160.0276180.027621-116.538534-116.538537obenzene-232.2272010.101377-232.1205210.0327420.032745-232.153263-232.153265oethane-79.8304210.075238-79.7507700.0275230.027525-79.778293-79.778295oisobutane-158.4588110.132380-158.3198040.0342410.034252-158.354046-158.354056omethylaniline-326.6649010.142118-326.5144890.0396680.039535-326.554157-326.554024oneopentane-197.7729800.160311-197.6048240.0369520.036966-197.641776-197.641791*********************************************************************************************************TOTALCPU0days2hrs29mins28secsThe program will detect several different levels of theory and give a warning that any vibrational scaling factor other than 1 would be inappropriate in this case. Wildcard characters (*) can be used to represent any character or string of characters.Example 8: Entropic Symmetry Correctionpython-mgoodvibesexamples/allene.outexamples/benzene.outexamples/ethane.outexamples/isobutane.outexamples/neopentane.out--ssymmStructureEZPEHT.ST.qh-SG(T)qh-G(T)PointGroup**********************************************************************************************************************oallene-116.5696050.053913-116.5109160.0263090.026312-116.537225-116.537228D2dobenzene-232.2272010.101377-232.1205210.0303960.030399-232.150917-232.150919D6hoethane-79.8304210.075238-79.7507700.0258310.025833-79.776601-79.776603D3doisobutane-158.4588110.132380-158.3198040.0332040.033214-158.353008-158.353019C3voneopentane-197.7729800.160311-197.6048240.0346060.034620-197.639430-197.639444Td*********************************************************************************************************************************************GoodVibes will apply a symmetry correction described above to the entropy term of each molecule after determining the symmetry number. It is always a good idea to double-check that the point group GoodVibes returns is the correct group.Example 9: Potential Energy Surface (PES) Comparison with Accessible Conformer Correctionpython-mgoodvibesexamples/gconf_ee_boltz/*.log--pesexamples/gconf_ee_boltz/gconf_aminox_cat.yamlStructureEZPEHT.ST.qh-SG(T)qh-G(T)************************************************************************************************************oAminoxylation_TS1_R-879.4051380.295352-879.0913740.0637460.061481-879.155120-879.152855oAminoxylation_TS2_S-879.4044450.295301-879.0905620.0643660.061891-879.154928-879.152453oaminox_cat_conf212_S-517.8751650.200338-517.6621950.0518170.049814-517.714012-517.712009oaminox_cat_conf280_R-517.8773080.200869-517.6641710.0499960.048777-517.714167-517.712948oaminox_cat_conf65_S-517.8771610.200789-517.6641590.0497900.048656-517.713949-517.712815oaminox_subs_conf713-361.5357570.095336-361.4331670.0378240.037696-361.470991-361.470863************************************************************************************************************Gconfcorrectionrequestedtobeappliedtobelowrelativevaluesusingquasi-harmonicBoltzmannfactorsRXN:Reaction(kcal/mol)DEDZPEDHT.DST.qh-DSDG(T)qh-DG(T)************************************************************************************************************oCat+Subs0.000.000.000.000.000.000.00oTS4.72-0.463.53-15.85-16.3719.3919.90************************************************************************************************************A.yamlfile is given to the--pesargument which specifies the reaction:Catalyst + Substrate -> TS. Because multiple conformers for the catalysts and transition states have been provided, GoodVibes will calculate a correction to the free energy based on the number of accessible conformations based on the Boltzmann-weighted energies of the conformers. To turn this correction off,--nogconfshould be specified. An example.yamlfile is shown below to show how these files should be formatted.Example 10: Stereoselectivity and Boltzmann populationspython-mgoodvibesexamples/gconf_ee_boltz/Aminoxylation_TS1_R.logexamples/gconf_ee_boltz/Aminoxylation_TS2_S.log--boltz--ee"*_R*:*_S*"StructureEZPEHT.ST.qh-SG(T)qh-G(T)Boltz*******************************************************************************************************************oAminoxylation_TS1_R-879.4051380.295352-879.0913740.0637460.061481-879.155120-879.1528550.605oAminoxylation_TS2_S-879.4044450.295301-879.0905620.0643660.061891-879.154928-879.1524530.395*******************************************************************************************************************SelectivityExcess(%)Ratio(%)RatioMajorIsoddG*****************************************************************************************o20.9860:401.5:1R0.25*****************************************************************************************The--boltzoption will provide Boltzmann probabilities to the right of energy results under theboltztab. With the--eeoption, %ee, er and a reduced ratio are shown along with the dominant isomer and a calculated transition state energy value, ddG or ΔG‡.ChecksA computational workflow can become less effective without consistency throughout the process. By using the--checkoption, GoodVibes will enforce a number of pass/fail checks on the input files given to make sure uniform options were used. Checks employed are:Gaussian Output ChecksSame version of Gaussian used across all output filesSame solvation state/gas phase used across all output filesSame level of theory and basis set usedSame charge and multiplicity usedCheck if standard concenctration of 1 atm was used in calculationCheck for duplicate structures or enantiomeric conformers based on E, H, qh_T.S and qh_G with a cutoff of 0.1 kcal/molCheck for potential calculation error in linear molecules by GaussianCheck for transition states (one imaginary frequency in output file)Check if empirical dispersion is used and consistent across all output filesSingle Point Calculation ChecksSame version and program used for all single point calculationsSame solvation model used across output filesSame level of theory used across all output filesSame charge and multiplicity usedSame geometry coordinates for SPC and associated geometry optimized and frequency calculation output fileCheck if empirical dispersion is used and consistent across all output filesSymmetryGoodVibes is able to detect a probable symmetry point group for each species and apply a symmetry correction to the entropy (Ssym) by finding a molecule's internal symmetry number using atom connectivity, and external symmetry with the help of the external open source C program, "Brute Force Symmetry Analyzer" developed by S. Patchkovskii. These numbers are combined to give a symmetry number, n, and Ssymis then defined as -Rln(n), which is applied to the GoodVibes calculated entropy.Note: this option may not function properly on some versions of Windows.File Naming ConventionsSome options (--pes, --graph, --spc, --ee, --media) require the calculation output files to be named in a certain way for GoodVibes to recognize them and perform extra calculations properly.PES & GraphPES and graphing file names need correlate with the file names specified in the# SPECIESblock of the .yaml file (see below for .yaml formatting).SPCTo link a frequency output file to a separately performed single point energy calculation file, the single point calculation file should have the same common root as the frequency file, with an additional underscore and descriptor at the end, such asethane.outandethane_TZ.outshown above, whereethane_TZ.outis the separate single point calculation file. When running GoodVibes in this case, the descriptor TZ should be passed as an argument, as--spc TZ.SelectivityTo calculate enantiomeric excess, enantiomeric ratio, or diastereomeric ratios,
file names should begin or end with a pattern identifier, such as_Rand_S. The argument then passed to GoodVibes should be--ee "*_R*:*_S*".MediaTo apply an entropic media correction to calculations performed on solvent molecules, the calculation output file should match the name passed in the media argument, for example, if performing the correction on water, the output file should be namedH2O.logand the command line option should be--media H2O.GoodVibes will recognize the following solvent molecule names:meco2h / aceticacid, acetone, mecn / acetonitrile, benzene, 1buoh / 1butanol, 2buoh / 2butanol, 2butanone, tbuoh / tbutylalcohol, ccl4 / carbontetrachloride,
  phcl / chlorobenzene, chcl3 / chloroform, cyclohexane, 12dce  / 12dichloroethane, diethyleneglycol, et2o / diethylether, diglyme, dme / 12dimethoxyethane,
  dmf / dimethylformamide, dmso / dimethylsulfoxide, 14dioxane, etoh / ethanol, etoac / acoet / ethylacetate, ethyleneglycol, glycerin, hmpa / hexamethylphosphoramide,
  hmpt / hexamethylphosphoroustriamide, hexane, meoh / methanol, mtbe / methyltbutylether, ch2cl2 / methylenechloride, dcm / dichloromethane, nmp / nmethyl2pyrrolidinone,
  meno2 / nitromethane, pentane, 1propanol, 2propanol, pyridine, thf / tetrahydrofuran, toluene, et3n / triethylamine, h2o / water, oxylene, mxylene, pxylene.yaml File FormattingWhen using the --pes or --graph options in GoodVibes, a .yaml file must be provided to the program to specify qualities like reaction pathways, provided conformers, and other formatting options. The same .yaml may be used for both --pes and --graphing options. An example .yaml file from an externalZenodo repositoryis shown below:--- # PES
    Ph: [Ph-Int1 + EtOH, Ph-TS1 + EtOH, Ph-Int2 + EtOH, Ph-TS2 + EtOH, Ph-Int3 + EtOH]
    Py: [Py-Int1 + EtOH, Py-TS1 + EtOH, Py-Int2 + EtOH, Py-TS2 + EtOH, Py-Int3 + EtOH]

--- # SPECIES
    Ph-Int1     : Int_I_Ph*
    Ph-TS1      : TS_1_Ph*
    Ph-Int2     : Int_II_Ph*
    Ph-TS2      : TS_II_Ph*
    Ph-Int3     : Int_III_Ph*
    Py-Int1     : Int_I_Py*
    Py-TS1      : TS_1_Py*
    Py-Int2     : Int_II_Py*
    Py-TS2      : TS_II_Py*
    Py-Int3     : Int_III_Py*
    EtOH        : ethanol*
    
--- # FORMAT
    dec :  2 
    legend : False
    color : black,#26a6a4
    pointlabel : False 
    gridlines: True
    show_conformers: True
    show_gconf: False
    dpi : 400
    title: Potential Energy Surfaceoptions in the # FORMAT block are optional, but allow for stylistic choices to be employed, especially when graphing. All current options that can be specified for either --pes or --graph options are:dec : 1 or 2 (decimal points in output)
    legend : True or False (puts legend on graph)
    ylim : y_min,y_max (y axis limits on graph)
    color : Color (color of line for a reaction pathway, multiple pathways can have different colors i.e. color1,color2,color3 etc., this follows rules for matplotlib standard colors)
    pointlabel : True or False (labels relative energy on graph at point)
    xlabel : True or False (displays structure labels at pathway points on x axis)
    title : Title (title displayed on graph)
    gridlines: True or False (displays gridlines on graph)
    dpi : number (specify dpi (dots per inch) of an image, will automatically save output image at specified dpi)
    show_conformers : True or False (displays a point for each conformer of a certain compound at its relative energy on graph)
    show_gconf : True or False (displays the effect of multiple accessible conformers correction if applied)Tips and TroubleshootingThe python file doesn’t need to be in the same folder as the Gaussian files. Just set the location of GoodVibes.py in the$PATHvariable of your system (this is not necessary if installed with pip or conda)It is possible to run on any number of files at once using wildcards to specify all of the Gaussian files in a directory (specify*.outor*.log)File names not in the form of filename.log or filename.out are not read, however more file extensions can be added with the option--custom_extThe script will not work if terse output was requested in the Gaussian jobProblems may occur with Restart Gaussian jobs due to missing information in the output file.HF, DFT, MP2, semi-empirical, time dependent (TD) DFT and HF, ONIOM, and G4 calculations from Gaussian are also supported.Papers from other research groups citing GoodVibesLi, Y.; Du, S.RSC Adv.2016,6, 84177-84186DOI:10.1039/C6RA16321AMyllys, N.; Elm, J.; Kurtén, T.Comp. Theor. Chem.2016,1098, 1–12DOI:10.1016/j.comptc.2016.10.015Mohamed, S.; Krenske, E. H.; Ferro, V.Org. Biomol. Chem.2016,14, 2950-2960DOI:10.1039/c6ob00283hGrayson, M. N.J. Org. Chem.2017,82, 4396–4401DOI:10.1021/acs.joc.7b00521Elm, J.J. Phys. Chem. A2017,121, 8288−8295DOI:10.1021/acs.jpca.7b08962Alegre-Requena, J. V.; Marqués-López, E.; Herrera, R. P.ACS Catal.2017,7, 6430–6439DOI:10.1021/acscatal.7b02446Elm, J.J. Phys. Chem. A2017,121, 8288–8295DOI:10.1021/acs.jpca.7b08962Alegre-Requena, J. V.; Marqués-López, E.; Herrera, R. P.Chem. Eur. J.2017,23, 15336–15347DOI:10.1002/chem.201702841Funes‐Ardoiz, I.; Nelson, D. J.; Maseras, F.Chem. Eur. J.2017,23, 16728–16733DOI:10.1002/chem.201702331Morris, D. S.; van Rees, K.; Curcio, M.; Cokoja, M.; Kühn, F. E.; Duarte, F.; Love, J. B.Catal. Sci. Technol.2017, 5644–5649DOI:10.1039/C7CY01728FElm, J.; Passananti, M.; Kurtén, T.; Vehkamäki, H.J. Phys. Chem. A2017,121, 6155–6164DOI:10.1021/acs.jpca.7b05658De Silvestro, I.; Drew, S. L.; Nichol, G. S.; Duarte, F.; Lawrence, A. L.Angew. Chem. Int. Ed.2017,56, 6813–6817DOI:10.1002.anie.201701481Besora, M.; Vidossich, P.; Lledos, A.; Ujaque, G.; Maseras, F.J. Phys. Chem. A2018,122, 1392–1399DOI:10.1021/acs.jpca.7b11580Harada, T.J. Org. Chem.2018,83, 7825–7835DOI:10.1021/acs.joc.8b00712Lewis, R. D.; Garcia-Borràs, M.;  Chalkley, M. J.; Buller, A. R.; Houk, K. N.; Kan, S. B. J.; Arnold, F. H.Proc. Natl. Acad. Sci.2018,115, 7308-7313DOI:10.1073/pnas.1807027115Park, H.; Chekshin, N.; Shen, P.; Yu, J.ACS Catal.2018,8, 9292–9297DOI:10.1021/acscatal.8b03014Ye, J.; Kalvet, I.; Schoenebeck, F.; Rovis, T.Nature Chem.2018,10, 1037–1041DOI:10.1038/s41557-018-0085-9Green, N. J.; Connolly, C. A.; Rietdijk, K. P. W.; Nichol, G. S.; Duarte, F.; Lawrence, A. L.Angew. Chem. Int. Ed.2018,57, 6198–6202.DOI:10.1002/anie.201802125dos Passos Gomes, G.; Loginova, Y.; Vatsadze, S. Z.; Alabugin, I. V.J. Am. Chem. Soc.2018,140, 14272-14288DOI:10.1021/jacs.8b08513Wodrich, M. D.; Busch, M.; Corminboeuf, C.Helv. Chim. Acta2018,101, e1800107DOI:10.1002/hlca.201800107Simon, L.Org. Biomol. Chem.2018,16, 2225–2238DOI:10.1039/c7ob02875jKildgaard, J. V.; Mikkelsen, K. V.; Bilde, M.; Elm, J.J. Phys. Chem. A.,2018,122, 5026-5036DOI:10.1021/acs.jpca.8b02758Tanoury, G. J.; Roeper, S.Tetrahedron,2018,74, 7103-7110DOI:10.1016/j.tet.2018.10.060Sawatlon, B.; Wodrich, M. D.; Corminboeuf, C.Organometallics,2018,37, 4568-4575DOI:10.1021/acs.organomet.8b00490Audic, B.; Wodrich, M. D.; Cramer, N.Chem. Sci.2019,10, 781-787DOI:10.1039/C8SC04385JTuguldurova, V. P.; Fateev, A. V.; Poleshchuk, O. K.; Vodyankina, O. V.Phys. Chem. Chem. Phys.2019,21, 9326--9334DOI:10.1039/c8cp07270aFischer, T.; Bamberger, J.; Gomez‐Martinez, M.; Piekarski, D. G.; Garcia Mancheño, O.Angew Chem. Int. Ed.2019,58, 3217–3221DOI:10.1002/anie.201812031Svatunek, D.; Houszka, N.; Hamlin, T. A.; Bickelhaupt, F. M.; Mikula, H.Chem. Eur. J.2019,25, 754–758DOI:10.1002/chem.201805215Green, S.; Montgomery, H.; Benton, T. R.; Chan, N.; Nelson, H.DOI:10.26434/chemrxiv.7824755.v1Putatunda, S.; Alegre-Requena, J. V.; Meazza, M.; Franc, M.; Rohal'ova, D.; Vemuri, P.; Cısarova, I.; Herrera, R. P.; Rios, R.; Vesely, J.Chem. Sci.2019,10, 4107–4115DOI:10.1039/c8sc05258aSilva, V. S.; Tolentino, T. A.; Rodrigues, T. C. A. F.; Santos, F. F. M.; Machado, D. F. S.; Silva, W. A.; de Oliveira, H. C. B.; Machado, A. H. L.Org. Biomol. Chem.,2019,17, 4498-4511DOI:10.1039/C9OB00533AWodrich, M. D.; Sawatlon, B.; Solel, E.; Kozuch, S.; Corminboeuf, C.ACS Catal.,2019,9, 5716-5725DOI:10.1021/acscatal.9b00717Martí-Centelles, V.; Duarte, F.; Lusby, P. J.Isr. J. Chem.,2019,59, 257-266DOI:10.1002/ijch.201800106van der Ham, A.; Hansen, T.; Lodder, G.; Codée, J. D. C.; Hamlin, T. A.; Filippov, D. V.Chem. Phys. Chem.,2019,20, 1-8DOI:10.1002/cphc.201900496Merz, L. S.; Blasius, C. K.; Wadepohl, H.; Gade, L. H.Inorg. Chem.,2019,58, 6102-6113DOI:10.1021/acs.inorgchem.9b00384Ivanov, S. M.; Dmitrienko, A. O.; Medvedev, M. G.; Mironovich, L. M.J. Organomet. Chem.,2019,896, 168-182DOI:10.1016/j.jorganchem.2019.06.009References for the underlying theoryRibeiro, R. F.; Marenich, A. V.; Cramer, C. J.; Truhlar, D. G.J. Phys. Chem. B2011,115, 14556-14562DOI:10.1021/jp205508zGrimme, S.Chem. Eur. J.2012,18, 9955–9964DOI:10.1021/jp509921rLi, Y.; Gomes, J.; Sharada, S. M.; Bell, A. T.; Head-Gordon, M.J. Phys. Chem. C2015,119, 1840-1850DOI:10.1002/chem.201200497Alecu, I. M.; Zheng, J.; Zhao, Y.; Truhlar, D. G.;J. Chem. Theory Comput.2010,6, 2872-2887DOI:10.1021/ct100326hMammen, M.; Shakhnovich, E. I.; Deutch, J. M.; Whitesides, G. M.J. Org. Chem.1998,63, 3821-3830DOI:10.1021/jo970944fLicense:GoodVibes is freely available under anMITLicense