ReactionMechanismGenerator / ARC

ARC - Automatic Rate Calculator
https://reactionmechanismgenerator.github.io/ARC/index.html
MIT License
43 stars 21 forks source link

Bad Conformer Id error #685

Open hwpang opened 1 year ago

hwpang commented 1 year ago

Describe the bug I was running CBS-QB3 calculation for C1=CC2C3=CCC(C3)C2C1 and ran into the following error during conformer generation.

Generating conformers for C1=CC2C3=CCC[C3]C2C1
Traceback (most recent call last):
  File "/home/gridsan/hwpang/Software/ARC/ARC.py", line 69, in <module>
    main()
  File "/home/gridsan/hwpang/Software/ARC/ARC.py", line 65, in main
    arc_object.execute()
  File "/home/gridsan/hwpang/Software/ARC/arc/main.py", line 594, in execute
    ts_adapters=self.ts_adapters,
  File "/home/gridsan/hwpang/Software/ARC/arc/scheduler.py", line 492, in __init__
    self.schedule_jobs()
  File "/home/gridsan/hwpang/Software/ARC/arc/scheduler.py", line 508, in schedule_jobs
    self.run_conformer_jobs()
  File "/home/gridsan/hwpang/Software/ARC/arc/scheduler.py", line 1039, in run_conformer_jobs
    label, 'geometry', 'conformers'))
  File "/home/gridsan/hwpang/Software/ARC/arc/species/species.py", line 1088, in generate_conformers
    diastereomers=diastereomers,
  File "/home/gridsan/hwpang/Software/ARC/arc/species/conformers.py", line 269, in generate_conformers
    num_confs=num_confs_to_generate, force_field=force_field)
  File "/home/gridsan/hwpang/Software/ARC/arc/species/conformers.py", line 647, in generate_force_field_conformers
    xyz=xyzs[0] if xyzs is not None else None)
  File "/home/gridsan/hwpang/Software/ARC/arc/species/conformers.py", line 834, in determine_number_of_conformers_to_generate
    xyzs = get_force_field_energies(label, mol, num_confs=1, suppress_warning=True)[0]
  File "/home/gridsan/hwpang/Software/ARC/arc/species/conformers.py", line 1125, in get_force_field_energies
    optimize=optimize,
  File "/home/gridsan/hwpang/Software/ARC/arc/species/conformers.py", line 1491, in rdkit_force_field
    ignoreInterfragInteractions=True,
ValueError: Bad Conformer Id

How to reproduce Try running the following input file using main branch at commit af4a9d6cbec764e38a3089ce0207b0e7a6b221ad

level_of_theory: cbs-qb3
project: project
species:
- charge: 0
  is_ts: false
  label: C1=CC2C3=CCC(C3)C2C1
  multiplicity: 1
  smiles: C1=CC2C3=CCC(C3)C2C1

Expected behavior I expect that ARC can catch this type of error and skip the calculation for the problematic species, and throw more meaningful error message.

kfir4444 commented 1 year ago

Thanks @hwpang! I have noted your issue, which seem to be an RDKit issue, but I have some a suggestion for a quick fix-up :smile: First you can manually find the conformer (you can either try to use rdkit again or openbabel for example). Next you can use the following input file:

level_of_theory: cbs-qb3
job_types:
  bde: false
  conformers: false
  fine: true
  freq: true
  opt: true
  rotors: true
  sp: true
project: project
species:
  - charge: 0
    is_ts: false
    label: C1=CC2C3=CCC(C3)C2C1
    multiplicity: 1
    smiles: C1=CC2C3=CCC(C3)C2C1
    xyz: |
      C       1.77018171    0.93529787   -1.09736240
      C       1.08787741    1.71732309   -0.25270650
      C       0.42048715    0.94093240    0.83465502
      C      -1.10536077    0.81835979    0.79760791
      C      -1.66245633    0.78174972   -0.43723995
      C      -1.47140520   -0.65881011   -0.88446529
      C      -0.64563461   -1.20856669    0.31394979
      C      -1.38164838   -0.52773338    1.45781527
      C       0.76594092   -0.54146411    0.48248051
      C       1.67880388   -0.51487519   -0.74589249
      H       2.32748466    1.30106183   -1.94935570
      H       1.02067856    2.79377741   -0.33236658
      H       0.78315594    1.23114266    1.82573797
      H      -1.49783116    1.55001133   -1.18716722
      H      -0.93522626   -0.72719714   -1.83398451
      H      -2.44097720   -1.15957262   -0.97812977
      H      -0.61414873   -2.29965984    0.35739103
      H      -2.44732289   -0.77091321    1.52712667
      H      -0.90751132   -0.64004176    2.43800442
      H       1.28669440   -1.01602282    1.32577478
      H       1.29313644   -1.11146662   -1.57661513
      H       2.67508180   -0.89333262   -0.49246666

and replace the xyz value by the conformer you have found. Specifically for your case, the xyz I have added to the input seem be the correct conformer, but I do encourage you to verify this for yourself. Hope this helps!