Procedures

  1. Make a directory for the Born Oppenheimer Molecular Dynamics (BOMD) calculations and go to that directory.
  2. Create a data file that describes molecular system in XYZ file format.
    • If the data file named with “test.gjf” is in Gaussian Input format, you can covert it to XYZ format using: ~/mopac/gjfcom2xyz.py test.gjf;
    • To convert multiple Gaussian input files ending with “.gjf”: for i in *.gjf; do ~/mopac/gjfcom2xyz.py $i; done.
  3. Create files and folders for one or more XYZ files to conduct BOMD calculations in parallel using ~/mopac/pm6bomd_parallel.py charge multiplicity temperature1 temperature2 temperature 3 ....
    • charge: An integer that represents the charge of all xyz files.
    • multiplicity: An integer that shares by all the xyz files calculated using 2S+1.
    • temperature: Specify at least 1 temperature. If multiple temperatures exist, multiple trajectories will be generated under all different temperatures for all xyz files in the current directory.
  4. Edit the time, partition and account in “parallel_run.sh” if needed.
  5. Submit the BOMD tasks using sbatch parallel_run.sh.

Additional Keywords

  • If job fails because of not self-consistency,  add  mopac_keywords: "camp" to “anneal.yaml” file.
    • One way to achieve that is to delete the pound sign “#” on line 15 of  “~/mopac/pm6bomd_parallel.py” before Procedure 3. To show the line number, type :set nu directly after open the file using vi.
    • Another way to add the keyword to multiple anneal.yaml files under subdirectories is for i in d*/anneal.yaml; do echo 'mopac_keywords: "camp"' >> $i; done.
  • If need to fix specific atoms such as atom 58 and 65 for a 65-atom molecule during the BOMD calculations, add keywords md_region: "1-57,59-64" and trajectory_selection: "1-65" to “anneal.yaml” file.
    • One way to achieve that is to delete the pound sign “#” on line 16 and 17 and edit the atomic numbers of “~/mopac/pm6bomd_parallel.py” before Procedure 3.
    • Another way is to add these keywords to multiple anneal.yaml files under subdirectories is to use command: for i in d*/anneal.yaml; do echo 'md_region: "1-57,59-64"' >> $i; echo 'trajectory_selection: "1-65"' >> $i; done.

Process Output

After the task completes, you can see the output file named with “trajectory_anneal.xyz” in each sub-directory.

  • Get snapshots and pick distinct conformers:
    • In the same directory created in Procedures 1, type ~/mopac/traj2xyzs.py 100. This script will go through current and all direct sub-directories containing “trajectory_anneal.xyz” to extract one geometry from every 100 geometries and write it to new sub-directories.
    • Run machine learning scripts to pick conformers.
  • Measure distances.