MolecularGraph.jl icon indicating copy to clipboard operation
MolecularGraph.jl copied to clipboard

Some oxygens appear to be SP3 hybridized and aromatic at the same time

Open Boxylmer opened this issue 1 year ago • 4 comments

Hey Mojaie!

Should this be happening? I've found a few molecules that have oxygens showing up as SP3 and aromatic, see the MWE below for the ones I've caught.


smiles = [
    "C1=CC=C2C(=C1)C=CC(=O)O2"
    "CC1=NOC=C1"
    "C1=CON=C1"
    "C1=CC=C2C(=C1)C=CO2"
    "C1=COC(=C1)C=O"
    "C1=COC(=C1)C#N"
]
for smile in smiles
    mol = smilestomol(smile)
    hybs = hybridization(mol)
    as = atomsymbol(mol)
    ar = is_aromatic(mol)
    for i in eachindex(hybs, as, ar)
        if hybs[i] == :sp3 && as[i] == :O && ar[i]
            println(smile)
            break
        end
    end
end

Best, Will.

Boxylmer avatar Aug 24 '23 02:08 Boxylmer

Similarly I'm catching some sp3 aromatic nitrogen and sulfur as well, but not carbon. The full table of the combinations are shown below (I'm working on some fragmentation schemes)

sp3 O (aromatic) => 6
sp3 S => 11
H => 1875
sp3 N => 39
sp2 N (aromatic) => 18
sp2 C (aromatic) => 1425
sp3 O => 166
sp2 C => 118
sp3 I => 2
sp3 Cl => 152
sp2 O => 134
sp3 P => 1
S => 10
sp2 N => 34
sp3 S (aromatic) => 5
P => 2
sp3 F => 35
sp3 N (aromatic) => 11
sp2 S => 3
sp3 Br => 40
sp3 C => 344
sp N => 11
sp C => 16

Boxylmer avatar Aug 24 '23 02:08 Boxylmer

Thank you for the comment. I'm working on hybridization now and there maybe some degradation. For now, newly introduced hybridization_delocalized(mol) method may work better.

mojaie avatar Nov 12 '23 06:11 mojaie

Still discretized aromaticity and orbital hybridization is a difficult problem and there should be options which types of atoms are considered aromatic/hybridized

mojaie avatar Nov 12 '23 06:11 mojaie

5556424f 16308956 f9a99c29 and 51ca339a may improved hybridization and aromaticity determination. This will be available on upcoming v0.17.0.

mojaie avatar Jul 18 '24 14:07 mojaie