Skip to content

Fatal error with explicit valence for nitrogen #91

@ejtierne

Description

@ejtierne

We're trying to build a mechanism for 2-nitrodiphenylamine:
species(
label='2NDPA',
reactive=True,
structure=adjacencyList(
"""
1 O u0 p3 c-1 {2,S}
2 N u0 p0 c+1 {1,S} {3,D} {4,S}
3 O u0 p2 c0 {2,D}
4 C u0 p0 c0 {2,S} {5,D} {9,S}
5 C u0 p0 c0 {4,D} {6,S} {17,S}
6 C u0 p0 c0 {5,S} {7,D} {18,S}
7 C u0 p0 c0 {6,D} {8,S} {19,S}
8 C u0 p0 c0 {7,S} {9,D} {20,S}
9 C u0 p0 c0 {4,S} {8,D} {10,S}
10 N u0 p1 c0 {9,S} {11,S} {21,S}
11 C u0 p0 c0 {10,S} {12,D} {16,S}
12 C u0 p0 c0 {11,D} {13,S} {22,S}
13 C u0 p0 c0 {12,S} {14,D} {23,S}
14 C u0 p0 c0 {13,D} {15,S} {24,S}
15 C u0 p0 c0 {14,S} {16,D} {25,S}
16 C u0 p0 c0 {11,S} {15,D} {26,S}
17 H u0 p0 c0 {5,S}
18 H u0 p0 c0 {6,S}
19 H u0 p0 c0 {7,S}
20 H u0 p0 c0 {8,S}
21 H u0 p0 c0 {10,S}
22 H u0 p0 c0 {12,S}
23 H u0 p0 c0 {13,S}
24 H u0 p0 c0 {14,S}
25 H u0 p0 c0 {15,S}
26 H u0 p0 c0 {16,S}
"""),
)
Once we comment out the forbidden structure "N_birad_singlet_2singleBonds", RMG-Py starts but then crashes with:

[15:01:43] Explicit valence for atom # 6 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 6 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 6 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 6 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 6 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 6 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 6 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 6 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 6 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 6 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 12 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 12 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 12 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 12 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 10 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 10 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 10 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 10 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 12 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 12 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N greater than permitted
[15:01:43] Explicit valence for atom # 13 N, 4, is greater than permitted
[15:01:43] Explicit valence for atom # 13 N greater than permitted
Traceback (most recent call last):
File "../../../rmg.py", line 165, in
rmg.execute(inputFile, output_dir, **kwargs)
File "/Users/etierney/RMG-Py/rmgpy/rmg/main.py", line 541, in execute
bimolecularReact=self.bimolecularReact)
File "/Users/etierney/RMG-Py/rmgpy/rmg/model.py", line 748, in enlarge
self.processNewReactions(self.react(database, self.core.species[i]), self.core.species[i], None)
File "/Users/etierney/RMG-Py/rmgpy/rmg/model.py", line 649, in react
reactionList.extend(database.kinetics.generateReactionsFromFamilies([moleculeA], products=None, only_families=only_families))
File "/Users/etierney/RMG-Py/rmgpy/data/kinetics/database.py", line 419, in generateReactionsFromFamilies
reactionList.extend(family.generateReactions(reactants))
File "/Users/etierney/RMG-Py/rmgpy/data/kinetics/family.py", line 1244, in generateReactions
reactionList.extend(self.__generateReactions(reactants, forward=False))
File "/Users/etierney/RMG-Py/rmgpy/data/kinetics/family.py", line 1414, in __generateReactions
products0 = [product.generateResonanceIsomers() for product in products0]
File "rmgpy/molecule/molecule.py", line 1463, in rmgpy.molecule.molecule.Molecule.generateResonanceIsomers (build/pyrex/rmgpy/molecule/molecule.c:27204)
File "rmgpy/molecule/molecule.py", line 1464, in rmgpy.molecule.molecule.Molecule.generateResonanceIsomers (build/pyrex/rmgpy/molecule/molecule.c:27141)
File "rmgpy/molecule/resonance.py", line 10, in rmgpy.molecule.resonance.generateResonanceIsomers (build/pyrex/rmgpy/molecule/resonance.c:2463)
File "rmgpy/molecule/resonance.py", line 26, in rmgpy.molecule.resonance.generateResonanceIsomers (build/pyrex/rmgpy/molecule/resonance.c:2255)
File "rmgpy/molecule/resonance.py", line 254, in rmgpy.molecule.resonance.generateKekulizedResonanceIsomers (build/pyrex/rmgpy/molecule/resonance.c:5615)
File "rmgpy/molecule/resonance.py", line 267, in rmgpy.molecule.resonance.generateKekulizedResonanceIsomers (build/pyrex/rmgpy/molecule/resonance.c:5446)
File "rmgpy/molecule/generator.py", line 288, in rmgpy.molecule.generator.toRDKitMol (build/pyrex/rmgpy/molecule/generator.c:6645)
File "rmgpy/molecule/generator.py", line 328, in rmgpy.molecule.generator.toRDKitMol (build/pyrex/rmgpy/molecule/generator.c:6387)
ValueError: Sanitization error: Explicit valence for atom # 13 N greater than permitted

Since the atom number for the Nitrogen changes, I wonder if it happens during a check for resonance structures? Either way, how do we fix it?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions