Skip to content
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

obabel add SMILES stereocenter @/@@ to achiral unsaturated spiro compounds #2674

Open
e-kwsm opened this issue Feb 22, 2024 · 1 comment
Open

Comments

@e-kwsm
Copy link
Contributor

e-kwsm commented Feb 22, 2024

Environment Information

Open Babel version: 3.1.1
Operating system and version: Debian 12.5

Expected Behavior

openbabel yields SMILES without chirality for spiro[4.4]nonatetraene: C1=CC2(C=C1)C=CC=C2.

Actual Behavior

openbabel thinks the spiro center is chiral: C1=C[C@]2(C=C1)C=CC=C2, while it works successfully for spiro[2.2]pentadiene, C1=CC21C=C2, spiro[3.3]heptane, C1CC2(C1)CCC2, and spiro[4.4]nonane, C1CCC2(C1)CCCC2.

I checked all of the combinations of (cyclopropane, cyclopropene, cyclopentane, and cyclopentadiene), and found that spiro[2.4]heptatriene is also misclassified as chiral: C1=C[C@]2(C=C1)C=C2.

Steps to Reproduce

<?xml version="1.0" encoding="UTF-8"?>
<molecule xmlns="http://www.xml-cml.org/schema">
  <atomArray>
    <atom id="a1" elementType="C" x3="0" y3="0" z3="0"/>
    <atom id="a2" elementType="C" x3="-0.94" y3="-1.2" z3="0"/>
    <atom id="a3" elementType="C" x3="-2.258" y3="-0.707" z3="0"/>
    <atom id="a4" elementType="C" x3="-2.258" y3="0.707" z3="0"/>
    <atom id="a5" elementType="C" x3="-0.94" y3="1.2" z3="0"/>
    <atom id="a6" elementType="C" x3="0.94" y3="0" z3="-1.2"/>
    <atom id="a7" elementType="C" x3="2.258" y3="0" z3="-0.707"/>
    <atom id="a8" elementType="C" x3="2.258" y3="0" z3="0.707"/>
    <atom id="a9" elementType="C" x3="0.94" y3="0" z3="1.2"/>
    <atom id="a10" elementType="H" x3="-0.650" y3="-2.230" z3="0"/>
    <atom id="a11" elementType="H" x3="-3.137" y3="-1.316" z3="0"/>
    <atom id="a12" elementType="H" x3="-3.137" y3="1.316" z3="0"/>
    <atom id="a13" elementType="H" x3="-0.650" y3="2.230" z3="0"/>
    <atom id="a14" elementType="H" x3="0.650" y3="0" z3="-2.230"/>
    <atom id="a15" elementType="H" x3="3.137" y3="0" z3="-1.316"/>
    <atom id="a16" elementType="H" x3="3.137" y3="0" z3="1.3168"/>
    <atom id="a17" elementType="H" x3="0.650" y3="0" z3="2.230"/>
  </atomArray>
  <bondArray>
    <bond atomRefs2="a1 a2" order="1"/>
    <bond atomRefs2="a2 a3" order="2"/>
    <bond atomRefs2="a3 a4" order="1"/>
    <bond atomRefs2="a4 a5" order="2"/>
    <bond atomRefs2="a1 a5" order="1"/>
    <bond atomRefs2="a1 a6" order="1"/>
    <bond atomRefs2="a6 a7" order="2"/>
    <bond atomRefs2="a7 a8" order="1"/>
    <bond atomRefs2="a8 a9" order="2"/>
    <bond atomRefs2="a1 a9" order="1"/>
    <bond atomRefs2="a2 a10" order="1"/>
    <bond atomRefs2="a3 a11" order="1"/>
    <bond atomRefs2="a4 a12" order="1"/>
    <bond atomRefs2="a5 a13" order="1"/>
    <bond atomRefs2="a6 a14" order="1"/>
    <bond atomRefs2="a7 a15" order="1"/>
    <bond atomRefs2="a8 a16" order="1"/>
    <bond atomRefs2="a9 a17" order="1"/>
  </bondArray>
</molecule>

Save above as spiro.cml.

$ obabel spiro.cml -o can
C1=C[C@]2(C=C1)C=CC=C2
$ obabel spiro.cml -o mol | obabel -i mol -o can
1 molecule converted
C1=C[C@]2(C=C1)C=CC=C2	
1 molecule converted

Also,

$ obabel '-:C1=C[C@]2(C=C1)C=CC=C2' -o can 
C1=C[C@]2(C=C1)C=CC=C2	
1 molecule converted
$ obabel '-:C1=C[C@@]2(C=C1)C=CC=C2' -o can
C1=C[C@]2(C=C1)C=CC=C2	
1 molecule converted
$ obabel '-:C1=CC2(C=C1)C=CC=C2' -o can 
C1=CC2(C=C1)C=CC=C2	
1 molecule converted
$ obabel '-:C1C[C@@]2(CC1)CCCC2' -o can
C1CCC2(C1)CCCC2	
1 molecule converted
@nbehrnd
Copy link
Contributor

nbehrnd commented Feb 22, 2024

@e-kwsm Complementary observation: entry VS001, spiro[4.5]dec-2-ene in the cipvalidationsuite compiled by Robert Hanson et al. equally is assigned by them by the SMILES string C1[C@]2(CCCC1)CC=CC2. However, the submission of their 3D .sdf file to Open Babel (version 3.1.1 by Jan 10 2024 in Debian 13/trixie)

$ obabel VS001.sdf -ocan
C1CCC2(CC1)CC=CC2	VS001
1 molecule converted
$ obabel -:"C1[C@]2(CCCC1)CC=CC2" -ocan
C1CCC2(CC1)CC=CC2	
1 molecule converted

drops the @. The compilation of 300 structures may contain additional entries worth to test.

Hanson, R. M.; Musacchio, S.; Mayfield, J. W.; Vainio, M. J.; Yerin, A.; Redkin, D. Algorithmic Analysis of Cahn–Ingold–Prelog Rules of Stereochemistry: Proposals for Revised Rules and a Guide for Machine Implementation. J. Chem. Inf. Model. 2018, 58 (9), 1755–1765. https://doi.org/10.1021/acs.jcim.8b00324.

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