This repository contains a customized Python-based pipeline for high-throughput quantum chemical calculations, specifically designed for execution on the Niagara HPC cluster.
The workflow automates geometry optimization, vibrational frequency checks, vertical excitation energy calculations, and natural transition orbital (NTO) analysis for organic molecules.
⚠️ Note: This pipeline is tailored for use on the Niagara cluster. Please ensure the following dependencies are properly installed and their paths are specified in each.shscript:
- ORCA v5.0.3
- CREST v2.12
- OpenBabel v3.1.1
- TheoDORE v3.1.1
- Jmol v16.2.1
The pipeline was developed and tested using Python 3.10.2.
python filter_smiles.py --raw_smiles smiles_raw/ --pp_smiles smiles_pppython create_gen_smiles.py --smiles smiles_pp --smiles_gen smiles_pp/gen_smiles.csvHere, smiles.csv provides the SMILES strings of A-B-A type oligomers for example.
python obabel.py
python run_uff.pypython obabel_parallel.pypython xyz_distribution.py
python run_crest.pypython run_geo_opt_b97-3c.pypython run_s0_freq_b97-3c.pypython get_s0_freq_check.pyIf any imaginary frequencies are detected, input files for re-optimization will be automatically generated. The script will print a list of affected subdirectories:
Modified subdirectories: ['2', '13', '24', '31', '39', '49', '50', '58', '63', '68', '73', '74']
Paste this list into the following two scripts:
run_geo_opt_mod_freq_b97-3c.pyrun_s0_freq_b97-3c.py
Example:
lists = ['2', '13', '24', '31', '39', '49', '50', '58', '63', '68', '73', '74']Then re-run:
python run_geo_opt_mod_freq_b97-3c.py
python run_s0_freq_b97-3c.pyRepeat the frequency check step until no imaginary frequencies remain.
python get_geo_opt_result.pypython run_vert_exc.pypython get_vert_exc_result.pyThe results, including oscillator strengths, singlet/triplet energies, and spin–orbit coupling, will be saved in:
VEE_b97-3c.csv
pip install numpy networkx
pip install git+https://github.com/jensengroup/xyz2mol.gitpython nto_analysis_visualization.py
bash nto_analysis_visualization.shThe NTO figures will be saved as PNGs in:
opt_b97-3c/vert_exc/nto_mulliken/
python get_orb_density.pyResult:
orbital_density_mulliken.csv
Output Example
Example theoretical output forSP001is available on FigShare.ORCA Dependency
This project uses the ORCA quantum chemistry software, which is not included in this repository.
To run ORCA-dependent scripts, please download ORCA separately from the official website after agreeing to its academic license terms.
We do not distribute ORCA binaries, source, or installation tools.Production-level calculations
The production-level DFT calculations reported in this study require high-performance computing (HPC) resources and are not feasible on a standard desktop computer, with run times depending strongly on system size and computational settings.Installation time
The main quantum chemistry packages (ORCA, CREST, TheoDORE, etc.) were accessed via pre-installed HPC modules, so installation time on a desktop computer is not applicable.
This customized pipeline was developed and used in the study:
"A self-driving lab for discovering tunable and soluble organic lasers"
Hyun Suk Park, Mahdi Mazaheri, Changhyeok Choi, Han Hao, Davide Avagliano, Eric Isbrandt, Buddhika S. B. Karunathilaka, Chihaya Adachi, Alán Aspuru-Guzik