Ring corrections derived from measured gas enthalpies: 17-ring comparison with RMG, and measured data for fused N/O heteroaromatics

Aperta
#752 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
databases

Direzione di ricerca

Start by reading the ring data in ring.py and polycyclic.py, which the issue names, then compare the submitted measured anchors and blind tests with the existing coverage. The author offers SMILES and full self-test output on request; use those to assess the proposed ring corrections against RMG. Done means establishing whether RMG already represents these rings and identifying validated corrections or discrepancies; the issue does not specify a particular implementation.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Following up on an email exchange with Prof. West (August, and again on 30 Oct 2026), who suggested posting this here.

I'm building LifeSpark, a desktop chemistry application that estimates gas-phase enthalpies of formation by Benson group additivity, with ring corrections derived from measured data. A note on background: I'm not a trained chemist. I'm building it with the help of an AI coding assistant, working from Benson's published method and the measurements cited below. I've tried to check every number against its source, and I'd welcome corrections.

I'm posting two things in case they help RMG:

  1. A comparison of 17 of my derived ring corrections with RMG's, most of which agree within about 4 kJ/mol, plus two that don't.
  2. Measured gas enthalpies for fused and unfused heteroaromatic rings (indole, carbazole, benzimidazole, quinoline, the quinolinones, coumarin, benzofuran, benzothiazole and others), with the ring corrections I derived from them and blind tests on related compounds.
    How the numbers were made: each correction is the measured gas-phase dHf(298.15 K) of one parent compound minus the Benson group sum without a ring term. That correction is then tested on measured compounds that took no part in deriving it. No RMG values are used anywhere in my estimates; RMG's ring.py was used only as a cross-check for part 1. All values are in kJ/mol (1 kcal = 4.184 kJ).

PART 1 - MONOCYCLIC RINGS, DERIVED vs BENSON vs RMG

One measured compound per ring. "derived" is the total ring correction (measured minus the groups, with Benson's applied strain added back so the number compares directly with RMG). RMG values are from ring.py as downloaded on 2026-08-10.

ring                measured   derived   Benson     RMG   derived-RMG
Cyclopropane            53.9     115.8    115.5   115.2        0.6
Methylcyclopropane      24.2     116.1    115.5   115.2        0.9
Cyclopropene           283.9     229.9    224.7   232.1       -2.2
Cyclobutane             28.5     111.0    109.6   109.6        1.4
Cyclobutene            161.0     129.0    124.7   124.9        4.1
Cyclopentane           -77.0      26.1     26.4    26.4       -0.3
Cyclopentene            35.7      24.2     24.7    25.0       -0.7
Cyclopentadiene        134.8      24.1     25.1    25.3       -1.2
Cyclohexane           -123.3       0.5      0.0     0.3        0.1
Cyclohexene             -4.5       4.7      5.9     4.9       -0.2
Cycloheptane          -117.9      26.5     26.8    26.8       -0.3
Cyclooctane           -126.1      38.9     41.4    43.9       -5.0
Oxetane                -80.5     105.1    107.5   104.9        0.2
Ethylene oxide         -52.6     112.4    112.5   112.2        0.2
Tetrahydrofuran       -184.2      22.1     25.1    24.9       -2.9
Cyclohexanone         -226.1      12.8     14.2     5.4        7.4
Furan                  -34.5     -26.3    -26.5   -26.4        0.1

14 of the 17 agree within 4 kJ/mol, and cyclobutene is just over at 4.1. The two real disagreements:

  • Cyclohexanone, +7.4: RMG's 5.4 is well below both Benson's 14.2 and mine, 12.8. I haven't chased this, so it may be my error rather than RMG's, but it looks worth a check.
  • Cyclooctane, -5.0: with substituted cyclooctanes as well, Benson's 41.4 falls in the middle of the measured range, mine (38.9) is low and RMG's (43.9) is high. I think the gap comes from relying on a single compound, not from either table being wrong.

Two rings where I have a value and RMG's ring.py has none: aziridine (derived 1.9, measured 127.1) and cycloheptatriene (derived 17.0, measured 184.4).

The 12 alkylcyclohexanes give a derived median of 0.00 (spread -1.6 to 11.6). The 12 alkylcyclopentanes give 26.33 (spread 22.9 to 33.7). Both match Benson's published values.

PART 2 - HETEROAROMATIC AND FUSED RINGS

The fused-ring question Prof. West asked about in August. In my copy of ring.py and polycyclic.py (2026-08-10) I found no entries for aromatic nitrogen rings: no pyrrole, pyridine, imidazole, indole or quinoline. polycyclic.py describes carbon skeletons only. So I can't set my numbers against a matching RMG entry, and I'm offering the measured data and my tests instead. If RMG covers these rings some other way (through groups, or a newer file), I'd be glad to know, and a run of RMG on the compounds below would be the real comparison.

In my method each aromatic ring is keyed as benzene-like, with one correction derived per ring shape.

2a. Anchors - the measured parent each correction comes from (gas, kJ/mol)

pyrrole                  108.30   Scott 1967
imidazole                132.90   Jimenez 1987
pyrazole                 179.40   Jimenez 1987
1,2,4-triazole           192.70   Jimenez 1989
tetrazole                320.00   Balepin 1977
indole                   164.25   Good 1972 + Ribeiro da Silva 2008
benzimidazole            181.70   Jimenez 1987
indazole                 243.00   Jimenez 1987
carbazole                205.00   Jimenez 1990
quinoline                200.52   Steele, Archer et al. 1988
2-pyridone               -79.7    NIST WebBook
4-pyridone               -40.8    NIST WebBook
2-quinolinone            -25.5    see note *
4-quinolinone             20.8    see note *
uracil                  -298.1    see note *
coumarin                -176.8    one compound only
chromone                -148.5    one compound only
quinazoline-2,4-dione   -271.1    one compound only
phthalazinone             79.1    one compound only
quinoxalin-2(1H)-one      38.6    one compound only
furan                    -34.8    CRC / NIST
isoxazole                 78.6
oxazole                  -15.5    one compound only
benzoxazole               44.80   one compound only
benzothiazole            204.17   one compound only
benzofuran                13.60   one compound only
benzothiophene           166.28   one compound only
  • Pyridone-family sources: NIST WebBook; Galvao 2014; Miranda 2011; Ribeiro da Silva 2000, 2008; Emel'yanenko 2015.

2b. Blind tests - measured compounds that took no part in any derivation
miss = my estimate minus measured, kJ/mol. Joback and Marrero-Gani misses are shown for scale where those methods answer.

compound                  measured    miss   Joback  M-Gani   source
2,5-dimethylpyrrole           39.7     1.7      4.4    23.9   Good 1972
2-methylimidazole             89.8     9.7       --    63.9   Jimenez, Roux et al. 1992
2-ethylimidazole              68.3    10.8       --    66.6   Jimenez, Roux et al. 1992
5-methyltetrazole            280.7     5.9       --   -11.0   Kozyro, Simirskii et al. 1990
9-methylcarbazole            199.1     0.7     50.7    18.5   Steele, Knipmeyer et al. 1991
9-ethylcarbazole             169.7     2.5     59.5    27.0   Jimenez, Roux et al. 1990
1,3-dimethyluracil          -313.6     5.1       --    64.9   Imamura, Takahashi et al. 1989
2-methylquinoline            159.1     0.7     40.1    29.2   Ribeiro da Silva, Matos & Amaral 1995
4-methylquinoline            162.1     5.0     37.1    26.2   same paper
6-methylquinoline            161.0     6.1     38.2    27.3   same paper
8-methylquinoline            167.7    -0.6     31.5    20.6   same paper
quinazoline                  243.1    12.8       --    23.6   Ribeiro da Silva & Matos 1995
quinoxaline                  240.3    10.1       --    26.4   same paper
acridine                     273.9   -13.3     54.4    14.8   Steele, Chirico et al. 1989
6-methyl-2-pyridone         -120.3     7.2       --    75.0   Suradi, El Saiad et al. 1982
2-methyl-4-pyridone          -71.7    -2.5    -16.6    26.4   Suradi, El Saiad et al. 1982
4-methyl-2-quinolinone       -61.0     2.1       --    57.4   Ribeiro da Silva, Matos et al. 1990
2-methyl-4-quinolinone       -23.3    10.7     32.0    31.2   Ribeiro da Silva, Matos et al. 1990
thymine                     -337.6     6.1       --    75.5   Emel'yanenko, Verevkin & Notario 2015
furfural                    -151.0    16.2    -28.2      --   CRC
furfuryl alcohol            -211.8    -4.0    -34.0      --   CRC
2-furancarboxylic acid      -390.0    -8.8    -53.9      --   CRC
2-vinylfuran                  27.8    -7.0    -16.6      --   CRC
3-(2-furanyl)-2-propenal    -105.9     8.5      2.6      --   CRC
3-methylisoxazole             35.6     9.6    -75.8      --
5-methylisoxazole             34.1    11.1    -74.3      --

2c. Tests that FAIL (over a 15 kJ/mol bar), reported as failures

compound                     measured   estimate   miss   note
phenanthridine                 240.5      259.1    18.6   Steele, Chirico et al. 1989
benzo[f]quinoline              233.7      259.1    25.4   McEachern et al. 1975 (one sublimation value, +/-7.4)
3-methylquinoxalin-2(1H)-one   -12.1        5.2    17.3
1-methylhydantoin             -367.4     -339.6    27.8   Ledo 2022
5-methylhydantoin             -391.2     -366.0    25.2   Tavernier 1955 + Ramos 2017
1,3-dimethylbarbituric acid   -547.3     -514.2    33.1   Roux 2011
1,3-diethylbarbituric acid    -611.9     -569.4    42.5   Notario 2014

For phenanthridine and benzo[f]quinoline the carbon parent, phenanthrene, comes out right (209.2 against 207.5). So I take the error to be the angular placement of the N, not the ring skeleton. The two hydantoin misses agree with each other, and so do the two barbiturate misses. For the barbiturates, the miss per N-alkyl is close to N-methylsuccinimide's (24.3), which suggests the N-alkyl group value is at fault rather than the ring.

2d. Saturated heterocycles, for completeness: morpholine (anchor -141.4; 4-formylmorpholine test miss -9.5), piperazine (anchor 23.3; N-aminoethylpiperazine test miss 0.7), 2-oxazolidinone (anchor -346.1, Flores 2016; 3-acetyl test miss 3.1). Oxindole (-66.8, Miranda 2010), 2-benzoxazolinone (-219.0, Morais 2006), 2-imidazolidinone (-176.7), furazan (3,4-dimethylfurazan 107.0, Matyushin 1971) and the beta-lactam (2-azetidinone -96.0) each rest on one compound and are untested.

2e. Rings my method refuses because I could find no measured anchor: purine and other five-rings fused to a pyridine or pyrimidine (7-azaindole, for example), rings sharing a ring nitrogen (imidazo[1,2-a]pyridine), 1,2,4- and 1,3,4-oxadiazole, the thiadiazoles, isothiazole, 1,2-benzisoxazole, thieno[2,3-b]pyridine, 4(3H)-quinazolinone and 1(2H)-isoquinolinone. Also dibenzofuran, whose two measured values disagree by 36 kJ/mol. If anyone knows a reliable gas-phase measurement for any of these, I would be grateful for the reference.

WHAT I CAN ADD

  • A SMILES list for every compound above, so they can be run through RMG directly.
  • The full self-test output each number comes from.

Thanks for RMG, and for Prof. West's help with my earlier questions.

Lee Gobroski

Lingua principale
Python
Stelle
131
Fork
163
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ReactionMechanismGenerator/RMG-database

Tutte le issue di ReactionMechanismGenerator/RMG-database

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.