You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
print('benzene')
for atom in benzene.GetAtoms():
print(atom.GetSymbol(), atom.GetIdx(), atom.GetTotalNumHs(), atom.GetFormalCharge(), atom.GetIsAromatic(), atom.GetNumRadicalElectrons(), atom.GetHybridization(), atom.GetTotalValence())
print('benzene_cation')
for atom in benzene_cation.GetAtoms():
print(atom.GetSymbol(), atom.GetIdx(), atom.GetTotalNumHs(), atom.GetFormalCharge(), atom.GetIsAromatic(), atom.GetNumRadicalElectrons(), atom.GetHybridization(), atom.GetTotalValence())
Which prints out:
benzene
C 0 1 0 True 0 SP2 4
C 1 1 0 True 0 SP2 4
C 2 1 0 True 0 SP2 4
C 3 1 0 True 0 SP2 4
C 4 1 0 True 0 SP2 4
C 5 1 0 True 0 SP2 4
benzene_cation
C 0 1 0 False 0 SP2 4
C 1 1 0 False 0 SP2 4
C 2 1 0 False 0 SP2 4
C 3 1 0 False 0 SP2 4 C 4 0 1 False 0 SP 3
C 5 1 0 False 0 SP2 4
RDKit does not recognize the benzene cation as aromatic. I think it is because the carbon atom with the positive charge is recognized as an sp carbon but I think it should be sp2. I think it is believed that the positive charge is in an empty sp2 orbital which is orthogonal to the the aromatic pi system. Hence, the benzene cation should be aromatic.
This means that if I do Chem.MolToSmiles(benzene_cation) I get '[C+]1=CC=CC=C1'.
I have even tried to force sp carbon to sp2 with atom.SetHybridization(Chem.HybridizationType.SP2) but it just produces the following smiles: '[c+]1=CC=CC=C1'.
When looking on a set of cyclic compounds everything is marked correctly to my knowledge.
cyclopropene
C 0 2 0 False 0 SP3 4
C 1 1 0 False 0 SP2 4
C 2 1 0 False 0 SP2 4
cyclopropenium
C 0 1 0 True 0 SP2 4
C 1 1 0 True 0 SP2 4
C 2 1 1 True 0 SP2 3
cyclopentadiene
C 0 1 0 False 0 SP2 4
C 1 1 0 False 0 SP2 4
C 2 1 0 False 0 SP2 4
C 3 1 0 False 0 SP2 4
C 4 2 0 False 0 SP3 4
cyclopentadienyl_cation
C 0 1 0 False 0 SP2 4
C 1 1 0 False 0 SP2 4
C 2 1 0 False 0 SP2 4
C 3 1 0 False 0 SP2 4
C 4 1 1 False 0 SP2 3
cycloheptatriene
C 0 1 0 False 0 SP2 4
C 1 1 0 False 0 SP2 4
C 2 1 0 False 0 SP2 4
C 3 1 0 False 0 SP2 4
C 4 1 0 False 0 SP2 4
C 5 1 0 False 0 SP2 4
C 6 2 0 False 0 SP3 4
tropylium
C 0 1 0 True 0 SP2 4
C 1 1 0 True 0 SP2 4
C 2 1 0 True 0 SP2 4
C 3 1 0 True 0 SP2 4
C 4 1 1 True 0 SP2 3
C 5 1 0 True 0 SP2 4
C 6 1 0 True 0 SP2 4
Is the hybridization and aromaticity set as intended or is there something wrong with how RDKit handles it?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I am trying to understand why the benzene cation atoms are not flagged as aromatic.
I do the following:
I then look at some atom properties:
Which prints out:
benzene
C 0 1 0 True 0 SP2 4
C 1 1 0 True 0 SP2 4
C 2 1 0 True 0 SP2 4
C 3 1 0 True 0 SP2 4
C 4 1 0 True 0 SP2 4
C 5 1 0 True 0 SP2 4
benzene_cation
C 0 1 0 False 0 SP2 4
C 1 1 0 False 0 SP2 4
C 2 1 0 False 0 SP2 4
C 3 1 0 False 0 SP2 4
C 4 0 1 False 0 SP 3
C 5 1 0 False 0 SP2 4
RDKit does not recognize the benzene cation as aromatic. I think it is because the carbon atom with the positive charge is recognized as an sp carbon but I think it should be sp2. I think it is believed that the positive charge is in an empty sp2 orbital which is orthogonal to the the aromatic pi system. Hence, the benzene cation should be aromatic.
This means that if I do
Chem.MolToSmiles(benzene_cation)
I get '[C+]1=CC=CC=C1'.I have even tried to force sp carbon to sp2 with
atom.SetHybridization(Chem.HybridizationType.SP2)
but it just produces the following smiles: '[c+]1=CC=CC=C1'.When looking on a set of cyclic compounds everything is marked correctly to my knowledge.
cyclopropene
C 0 2 0 False 0 SP3 4
C 1 1 0 False 0 SP2 4
C 2 1 0 False 0 SP2 4
cyclopropenium
C 0 1 0 True 0 SP2 4
C 1 1 0 True 0 SP2 4
C 2 1 1 True 0 SP2 3
cyclopentadiene
C 0 1 0 False 0 SP2 4
C 1 1 0 False 0 SP2 4
C 2 1 0 False 0 SP2 4
C 3 1 0 False 0 SP2 4
C 4 2 0 False 0 SP3 4
cyclopentadienyl_cation
C 0 1 0 False 0 SP2 4
C 1 1 0 False 0 SP2 4
C 2 1 0 False 0 SP2 4
C 3 1 0 False 0 SP2 4
C 4 1 1 False 0 SP2 3
cycloheptatriene
C 0 1 0 False 0 SP2 4
C 1 1 0 False 0 SP2 4
C 2 1 0 False 0 SP2 4
C 3 1 0 False 0 SP2 4
C 4 1 0 False 0 SP2 4
C 5 1 0 False 0 SP2 4
C 6 2 0 False 0 SP3 4
tropylium
C 0 1 0 True 0 SP2 4
C 1 1 0 True 0 SP2 4
C 2 1 0 True 0 SP2 4
C 3 1 0 True 0 SP2 4
C 4 1 1 True 0 SP2 3
C 5 1 0 True 0 SP2 4
C 6 1 0 True 0 SP2 4
Is the hybridization and aromaticity set as intended or is there something wrong with how RDKit handles it?
Beta Was this translation helpful? Give feedback.
All reactions