ReactionMechanismGenerator / ARC

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

Receiving KeyError: `conformers` when attempting to `arcrestart` #622

Open calvinp0 opened 1 year ago

calvinp0 commented 1 year ago

Describe the bug

!!! Warning !!! Distance between atoms 5 and 4 (0.970541 A) is suspicious.
Warning: Isomorphism check for all conformers of species r_82_[O-][Np][=O]O failed at wb97xd/def2svp. Attempting to troubleshoot using a different level.

Traceback (most recent call last):
  File "/Local/ce_dana/Code/ARC//ARC.py", line 69, in <module>
    main()
  File "/Local/ce_dana/Code/ARC//ARC.py", line 65, in main
    arc_object.execute()
  File "/Local/ce_dana/Code/ARC/arc/main.py", line 583, in execute
    fine_only=self.fine_only,
  File "/Local/ce_dana/Code/ARC/arc/scheduler.py", line 484, in __init__
    self.schedule_jobs()
  File "/Local/ce_dana/Code/ARC/arc/scheduler.py", line 494, in schedule_jobs
    self.determine_most_stable_conformer(species.label)
  File "/Local/ce_dana/Code/ARC/arc/scheduler.py", line 2001, in determine_most_stable_conformer
    self.troubleshoot_conformer_isomorphism(label=label)
  File "/Local/ce_dana/Code/ARC/arc/scheduler.py", line 3317, in troubleshoot_conformer_isomorphism
    job = self.job_dict[label]['conformers'][0]
KeyError: 'conformers'
(arc_env) calvinp@tech-ui02:/storage/ce_dana/calvinp/runs/nn_arc/low_level/50_rows_71_to_120_r$ 

How to reproduce I have an input file with 50 reactions to check and when attempting to restart the run due another issue, it then reports a KeyError: conformers

Here is the restart.yml

restart.zip

calvinp0 commented 1 year ago

This is the self.job_dict before it runs into

  File "/Local/ce_dana/Code/ARC/arc/scheduler.py", line 3317, in troubleshoot_conformer_isomorphism
    job = self.job_dict[label]['conformers'][0]

job_dict.csv

calvinp0 commented 1 year ago

so in the scheduler, in def troubleshoot_conformer_isomorphism(self, label: str): it gets to this line

job = self.job_dict[label]['conformers'][0]

and then has a KeyError: conformers

the label is 'r82[O-][Np][=O]O' and self.job_dict[labell] returns an empty dictionary, {}

calvinp0 commented 1 year ago

From my understanding and assumptions, it appears that during the restart, even if a molecule had this error: 'Error: No conformer was found to be isomorphic with the 2D graph representation at wb97xd/def2svp; Error: No conformer was found to be isomorphic with the 2D graph representation at wb97xd/def2svp; Error: No conformer was found to be isomorphic with the 2D graph representation at wb97xd/def2svp; Error: No conformer was found to be isomorphic with the 2D graph representation!; Error: No conformer was found to be isomorphic with the 2D graph representation at wb97xd/def2svp; '

It will try to troubleshoot the conformer isomorphism by finding the first conformer of a species to determine applicable troubleshooting method - but what if no conformer was found at all?

calvinp0 commented 1 year ago

Issue has returned

!!! Warning !!! Distance between atoms 5 and 4 (0.970541 A) is suspicious.
Warning: Isomorphism check for all conformers of species r_82_[O-][Np][=O]O failed at wb97xd/def2svp. Attempting to troubleshoot using a different level.
Traceback (most recent call last):
  File "/Local/ce_dana/Code/ARC//ARC.py", line 69, in <module>
    main()
  File "/Local/ce_dana/Code/ARC//ARC.py", line 65, in main
    arc_object.execute()
  File "/Local/ce_dana/Code/ARC/arc/main.py", line 583, in execute
    fine_only=self.fine_only,
  File "/Local/ce_dana/Code/ARC/arc/scheduler.py", line 486, in __init__
    self.schedule_jobs()
  File "/Local/ce_dana/Code/ARC/arc/scheduler.py", line 496, in schedule_jobs
    self.determine_most_stable_conformer(species.label)
  File "/Local/ce_dana/Code/ARC/arc/scheduler.py", line 2005, in determine_most_stable_conformer
    self.troubleshoot_conformer_isomorphism(label=label)
  File "/Local/ce_dana/Code/ARC/arc/scheduler.py", line 3321, in troubleshoot_conformer_isomorphism
    job = self.job_dict[label]['conformers'][0]
KeyError: 'conformers'