#!/usr/bin/env python
# (C) 2022 Cadence Design Systems, Inc. (Cadence) 
# All rights reserved.
# TERMS FOR USE OF SAMPLE CODE The software below ("Sample Code") is
# provided to current licensees or subscribers of Cadence products or
# SaaS offerings (each a "Customer").
# Customer is hereby permitted to use, copy, and modify the Sample Code,
# subject to these terms. Cadence claims no rights to Customer's
# modifications. Modification of Sample Code is at Customer's sole and
# exclusive risk. Sample Code may require Customer to have a then
# current license or subscription to the applicable Cadence offering.
# THE SAMPLE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED.  OPENEYE DISCLAIMS ALL WARRANTIES, INCLUDING, BUT
# NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. In no event shall Cadence be
# liable for any damages or liability in connection with the Sample Code
# or its use.

# @ <SNIPPET>
from openeye import oechem

mol = oechem.OEGraphMol()
oechem.OESmilesToMol(mol, "C\\C=C\\C=C/C=CC")

for bond in mol.GetBonds():
    if bond.HasStereoSpecified(oechem.OEBondStereo_CisTrans):
        for atomB in bond.GetBgn().GetAtoms():
            if atomB == bond.GetEnd():
                continue
            for atomE in bond.GetEnd().GetAtoms():
                if atomE == bond.GetBgn():
                    continue
                v = []
                v.append(atomB)
                v.append(atomE)
                stereo = bond.GetStereo(v, oechem.OEBondStereo_CisTrans)
                print("Atoms:", atomB.GetIdx(), "and", atomE.GetIdx(), "are", end=" ")

                if stereo == oechem.OEBondStereo_Cis:
                    print("cis")
                elif stereo == oechem.OEBondStereo_Trans:
                    print("trans")
# @ </SNIPPET>
