Skip to content

Resonance structures question (for fluorinated singlet carbenes) #2784

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
rwest opened this issue Apr 10, 2025 · 1 comment
Open

Resonance structures question (for fluorinated singlet carbenes) #2784

rwest opened this issue Apr 10, 2025 · 1 comment

Comments

@rwest
Copy link
Member

rwest commented Apr 10, 2025

At the moment this question is rather vague, but I'm asking it now anyway, to hopefully start a conversation.

Consider this molecule

1 F u0 p3 c0 {12,S}
2 F u0 p3 c0 {12,S}
3 F u0 p3 c0 {13,S}
4 F u0 p3 c0 {13,S}
5 F u0 p3 c0 {14,S}
6 F u0 p3 c0 {14,S}
7 F u0 p3 c0 {14,S}
8 F u0 p3 c0 {15,S}
9 F u0 p3 c0 {15,S}
10 F u0 p3 c0 {15,S}
11 O u0 p2 c0 {13,S} {16,S}
12 C u0 p0 c0 {1,S} {2,S} {13,S} {14,S}
13 C u0 p0 c0 {3,S} {4,S} {11,S} {12,S}
14 C u0 p0 c0 {5,S} {6,S} {7,S} {12,S}
15 C u0 p0 c0 {8,S} {9,S} {10,S} {16,S}
16 C u0 p1 c0 {11,S} {15,S}

Image
(note that C next to the O with no F atoms attached does not have 2 implicit H atoms, but instead has a lone pair - a singlet carbene)

but there could be a charge separated resonance structure

1 F u0 p3 c0 {12,S}
2 F u0 p3 c0 {12,S}
3 F u0 p3 c0 {13,S}
4 F u0 p3 c0 {13,S}
5 F u0 p3 c0 {14,S}
6 F u0 p3 c0 {14,S}
7 F u0 p3 c0 {14,S}
8 F u0 p3 c0 {15,S}
9 F u0 p3 c0 {15,S}
10 F u0 p3 c0 {15,S}
11 O u0 p1 c+1 {13,S} {16,D}
12 C u0 p0 c0 {1,S} {2,S} {13,S} {14,S}
13 C u0 p0 c0 {3,S} {4,S} {11,S} {12,S}
14 C u0 p0 c0 {5,S} {6,S} {7,S} {12,S}
15 C u0 p0 c0 {8,S} {9,S} {10,S} {16,S}
16 C u0 p1 c-1 {11,D} {15,S}

Image

As shown in the RMG website link here
RMG seems to prefer the charge separated resonance structure.

Is it correct?
What should it be?
How can we tell?

This impacts how we should represent certain reactions of these molecules.
Also, if the non-preferred (i.e. not the lowest energy) form is generated as an alternative but still reactive form, we need to consider how that reacts too? or prevent it from reacting when it shouldn't?

Hopefully @Nora-Khalil can maybe add specifics of what reactions this is causing issue with and what she's tried and learned so far, and maybe some resonance experts like @alongd can mentor us a little!

@Nora-Khalil
Copy link
Contributor

Nora-Khalil commented Apr 11, 2025

Hi, yes, I had a drafted issue of this, but I will just add that info here instead. I have added in certain PFAS-degradation related reactions to RMG database. However, I am running into an issue where, for some reactions, RMG prefers the charge-separated RS of one of the species involved rather than the RS I would like it to use (as defined by the adjacency list that I wrote in the dictionary.txt of the family's training folder). See for example:

In the 1+2_Cycloaddition kinetic family, I am adding in the following reaction to the existing training reactions:
Image

The problem is with this species:
Image

The training reaction is written to use this species with the associated adjacency list:

Image

However, when generating RSs, RMG believes that the charge separated RS is the most stable RS, and uses this adjacency list instead to define the species.

Image

This throws off the retraining, because this new charge separated RS has a different thermo calculated from GAV. For the non charge separated singlet, the species has a H298 of -1044 kJ/mol, calculated from Thermo group additivity estimation: group(O2s-(Cds-Cd)(Cds-Cd)) + group(CsC2sFFF) + group(CsFFFO) + group(CsJ2_singlet-CsH). With the new charge separated RS, the thermo is now -1060 kJ/mol, coming from Thermo group additivity estimation: group(O2s-CsCs) + group(CsC2sFFF) + group(CsFFFO) + group(CsJ2_singlet-CsH).

This difference in thermos is making the BM fit wild at the root node...

This preference for the charge separated RS points back to the get_octet_deviation function in rmgpy/molecule/filtration.py. It marks the singlet RS as unreactive because val_electrons==6 when looking at the carbon with the lone pair. As a result, the octet_deviation is higher for the non charge separated RS compared the charge separated RS, and so RMG settles on using the charged RS structure.

On my own branch, I made some bandaid fixes to this function to bypass this issue. However, it's not intelligent. It involves modifying the value of val_electrons (i.e. increasing it by 2) when we encounter a singlet like this, hence preventing RMG from marking the singlet as unreactive. @rwest and I both agree that this bandaid feels inherently wrong, though, and might cause other issues in the future.

Any help would be appreciated. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants