cfgoldsmith / RMG-Py

Python version of the amazing Reaction Mechanism Generator (RMG).
http://reactionmechanismgenerator.github.io/RMG-Py/
Other
1 stars 4 forks source link

New adsorbate thermochemistry #27

Closed rwest closed 5 years ago

rwest commented 6 years ago

I think this list of adsorbate names used by Felix/Jelena that needs converting into chemgraph structures.

Some of the conventions I'm not so sure about, like the lowercase h.

In the "Meaning" column these are bonds

symbol meaning
- single bond
= double bond
# triple bond
\: vdW bond (which is to a whole molecule not a single atom)
X surface site
Name Meaning SMILES?
C X 4-bonded to C
C-C bidentate X-C#C-X with each C single bonded to surface??
C-CH2 X=C=CH2 ?
C-CH3 X#C-CH3 ?
CH X#CH ?
CH-CH ?
CH-CH-vdw X:CH#CH
CH2 X=CH2
CH2-CH2 X-CH2=CH2
CH3 X-CH3
CH3-CH3 X:CH3-CH3
CH4 X:CH4
CN

CNH CNH2 CO-f COH H2C-CH H2C-CH3 H2C-NH H2C-NH2 H2C-O H2C-OH H2CN-h H2CNH-h H3C-NH2 H3C-OH HC-C HC-CH2 HC-CH3 HCN HCN-h HCNH HCNH-h HCNH2 HCO HCO-h HCOH NH3 NH2 NH N H2N-OH HN-O HN-OH NO NOH HNO-h NO-h H2N-NH2 HN-NH NN HN-NH2 N-NH N-NH2 HN-NH-h HN-N-h HN-CH3 N-CH2 N-CH3 ON-O H2O OH HO-OH O2 OOH O O-NH2 O-CH3 H H2

cfgoldsmith commented 6 years ago

We asked Jelena re: nomenclature. "-h" means "horizontal". She uses it to disambiguate between two different adsorbate geometries, with -h implying bidentate.

kblondal commented 6 years ago

I have written names for all the species using the symbol meanings Prof. West suggested. This will make it easier to automate the generation of adjacency list files.

Adsorbate Name including bonds
H X-H
H2 X:H2
H2O X:OH2
OHl X-OH
HO-OHl X:OH-OH
O2 X-O-O-X
OOH X-O-OH
O X=O
O-NH2 X-O-NH2
O-CH3 X-O-CH3
NH3 X:NH3
NH2 X-NH2
NH X=NH
N X#N
H2N-OH X:NH2-OH
HN-O X:NH=O
HN-OH X-NH-OH
NO X-N=O
NOH X=N-OH
HNO-h X-NH-O-X
NO-h X=N-O-X
H2N-NH2 X:NH2-NH2
HN-NH X:NH-NH
NN X-N=N-X
HN-NH2 X-NH-NH2
N-NH X-N=NH
N-NH2 X=N-NH2l
HN-NH-h X-NH-NH-X
HN-N-h X-NH-N=X
HN-CH3 X-NH-CH3
N-CH2 X-N=CH2
N-CH3 X=N-CH3
ON-O X-NO=O
C X#C
C-C X=C=C=X
C-CH2 X=C=CH2
C-CH3 X#C-CH3
CH X#C-H
CH-CH X=CH-CH=X
CH-CH-vdw X:CH#CH
CH2 X=CH2
CH2-CH2 X-CH2-CH2-X
CH3 X-CH3
CH3-CH3 X:CH3-CH3
CH4 X:CH4
CN X=C=N-X
CNH X=C=NH
CNH2 X#C-NH2
CO-f X=C=O
COH X#C-OH
H2C-CH X-CH2-CH=X
H2C-CH3 X-CH2-CH3
H2C-NH X:CH2=NH
H2C-NH2 X-CH2-NH2
H2C-O X:CH2=O
H2C-OH X-CH2-OH
H2CN-h X-CH2-N=X
H2CNH-h X-CH2-NH-X
H3C-NH2 X:CH3-NH2
H3C-OH X:CH3-OH
HC-C X-CH=C=X
HC-CH2 X-CH=CH2
HC-CH3 X=CH-CH3
HCN X:CH#N
HCN-h X=CH-N=X
HCNH X-CH=NH
HCNH-h X=CH-NH-X
HCNH2 X=CH-NH2
HCO X-CH=O
HCO-h X=CH-O-X
HCOH X=CH-OH
rwest commented 6 years ago

Great! Thanks @kblondal.

@mazeau has a script/notebook that converts most of these into adjacency lists: https://github.com/mazeau/importer/blob/master/RMG-Cat%20thermo.ipynb

Using the "80:20" rule, it's probably soon time to stop improving the script and do the rest by hand.

kblondal commented 6 years ago

That's great! The script seems to work for me, except I get the error:

"AttributeError: 'rmgpy.molecule.molecule.Molecule' object has no attribute 'getNumberOfRadicalElectrons'"

for all of the species (at the command electrons = merged.getNumberOfRadicalElectrons()). Any ideas what's causing it?

If not, perhaps a good solution would be to always set the number of unpaired electrons to 0, since that is the case here?

mazeau commented 6 years ago

I just ran it and I don't get that error so I'm not sure why it is, but that would be easy to change 'electrons' to the sum of old and new electrons.

Just changed it

kblondal commented 6 years ago

Thank you, that works!

I tried the most recent script. Now only the adsorbates with two surface sites are giving me trouble. I keep getting a "KeyError" for the surface sites. I tried changing 'X' to 'Pt' in the names_to_structure dictionary, which made it better. However I still get the error for the second surface site.

rwest commented 6 years ago

Hi. The script was built using the result of Emily's catmerge2 branch which has not yet made it into the master cat branch. That might explain some of the differences

mazeau commented 6 years ago

This is what the dictionary for these is now I manually changed all the u-1 to u0 and used the original name (without the bonds)

dictionary.txt

rwest commented 6 years ago

Great. Having the two X atoms bonded to each other for the bidentate species was a great idea for drawing the pictures, but I haven’t yet thought through the consequences of doing it in the adjacency list. But we can fix later if needed.

rwest commented 6 years ago

I think some (maybe all) of the u1 need fixing to u0 Eg

HC-CH2
multiplicity 1
1 X u0  p0 c0 {2,S}
2 C u0  p1 c0 {1,S} {3,S} {4,D}
3 H u0  p0 c0 {2,S}
4 C u1  p0 c0 {2,D} {5,S} {6,S}
5 H u0  p0 c0 {4,S}
6 H u0  p0 c0 {4,S}
mazeau commented 6 years ago

fixed all of the C and O ones, but left the N ones for now dictionary.txt

rwest commented 5 years ago

I'm guessing this issue can be closed now?