Moving a stereoisomer from a structure database into another analysis tool means carrying both its atom connectivity and its configuration. chematic v1.1.7 improves sulfur stereochemistry in MOL output and the reading of ring and double-bond configurations from 3D coordinates.

Methyl phenyl sulfoxide provides a small example of this release’s progress. Switch between its S and R configurations below, convert each SMILES to a V3000 MOL file, and compare the structure read back from that file.

Carry the sulfur configuration into the output file

Methyl phenyl sulfoxide has a methyl group, a phenyl group, and oxygen attached to sulfur. Their spatial arrangement, including sulfur’s lone pair, gives two mirror-image configurations. Here we distinguish them using S and R, the configuration labels assigned by the CIP priority rules.

SMILES encodes local stereochemistry with symbols such as @ and @@. MOL files use coordinates and annotations such as wedge bonds. Conversion must account for which neighboring atoms define the orientation in each notation. The Daylight SMILES specification and RDKit stereochemistry guide explain these representations.

v1.1.7 aligns the ordering of the neighboring positions, including sulfur’s lone pair, across SMILES and MOL reading and writing. In the examples here, S reads back as S, and R as R. The sulfur stereo development record documents the implementation and fixtures.

Switch between S and R

Choose a configuration and representation below. The examples include S=O notation and a form with explicit [S⁺][O⁻] charges. The left panel shows the input structure; the right shows the structure read back after V3000 output.

Methyl phenyl sulfoxide round trips: S → S and R → R.

Sulfoxide retains its S and R configurations after V3000 conversion

The published npm package chematic 1.1.7 performs the conversion and CIP assignment in your browser. You can inspect the generated MOL text or download the file. The colored circle marks the sulfur atom whose configuration is being compared.

@ and @@ depend on the order in which a SMILES traverses neighboring atoms. Changing that order can change the symbol while preserving the configuration. The example displays sulfur’s CIP label alongside the input and output strings.

Run the same round trip in Python

Save roundtrip.py, then run:

python -m pip install "chematic==1.1.7"
python roundtrip.py

The script contains:

import chematic

for smiles in ["C[S@](=O)c1ccccc1", "C[S@@](=O)c1ccccc1"]:
    original = chematic.from_smiles(smiles)
    block = original.to_mol_v3000(original.rdkit_2d_coords())
    restored = chematic.from_mol_v3000(block)
    before = original.cip_stereo(mode="accurate")[0]["descriptor"]
    after = restored.cip_stereo(mode="accurate")[0]["descriptor"]
    print(f"{smiles}: {before} -> {after}")
C[S@](=O)c1ccccc1: S -> S
C[S@@](=O)c1ccccc1: R -> R

rdkit_2d_coords() supplies the 2D coordinates for V3000 output. from_mol_v3000() reads the block back, and cip_stereo(mode="accurate") assigns CIP labels to the resulting structure. Each molecule in this example has one stereocenter at sulfur.

Use depth when reading a 3D structure

A 3D MOL file contains x, y, and z coordinates for its atoms. For suitable structures, those coordinates can encode a configuration even when explicit stereo annotations such as wedge bonds are absent.

Consider a double bond attached to a puckered ring. Keeping only x and y projects the structure onto a plane, which can change the apparent sides of its substituents. For the relevant 3D inputs, the v1.1.7 reader uses z as well to determine the double-bond configuration. It also improves the perception of related ring stereocenters and cage structures such as substituted adamantane.

For this article, we read three regression examples with explicit stereo annotations removed: a molecule with multiple ring stereocenters, an exocyclic alkene, and a substituted adamantane. Each was supplied in V2000 and V3000 format. All six read-back structures matched the expected stereochemical identities of the fixtures. The inputs and outcomes and 3D reader regression tests are available.

Read the output with RDKit too

We checked the four interactive inputs plus 12 structures with other substituents: 16 structures with a stereogenic sulfur atom. Both the Python and npm packages were pinned to published version 1.1.7. RDKit 2026.09.1 independently read the V3000 output from each package.

Operation Result
Python V3000 output, read back by chematic Sulfur CIP label preserved in 16/16
npm V3000 output, read back by chematic Sulfur CIP label preserved in 16/16
V3000 output from both packages, read by RDKit Input stereochemical identity retained in 16/16 for each package

The RDKit checks used CIP labels and canonical isomeric SMILES. These results apply to the 16 selected inputs. The examples were run on October 18, 2026; the Python environment was macOS arm64 with Python 3.13.6. The Python results, npm results, and package and input records identify each conversion.

When passing stereoisomers to another tool, the output format needs to carry the distinctions already present in the input. v1.1.7 improves that handoff for sulfur stereocenters and 3D molecular structures. The release notes cover the file and calculation APIs added in the same version.