strainedSMILES2xyz
strainedSMILES2xyz is a Python tool that uses RDKit and ORCA to generate 3D .xyz geometries from SMILES strings — specifically designed for strained molecules.
It provides a simple interface for both scripting and command-line use.
📄 Note: A publication describing the method is in preparation. Link will be added here once available.
📦 Installation
Install via pip (requires Python 3.8+):
pip install strainedsmiles2xyz
⚠️ RDKit must be installed separately via conda or similar:
conda install -c conda-forge rdkit=2025.03.1
You will also need ORCA version 6.0 or higher in your PATH or set as ORCA_PATH to enable ORCA based corrections.
🚀 Usage
🔧 From the command line:
python -m strainedsmiles2xyz "SMILES"
or:
strainedsmiles2xyz "SMILES"
This prints an XYZ-formatted structure to stdout.
🐍 From Python:
from strainedsmiles2xyz import smiles_to_xyz
mol, info = smiles_to_xyz(
"C1=CCC1", # SMILES input
print_level=1, # log verbosity
no_chirality_enforced_allowed=True, # allow fallback if stereochemistry fails
use_orca_corrections=False, # apply ORCA optimization corrections
n_cores=1 # number of threads for ORCA
)
molis an RDKitMolobjectinfois a dictionary containing metadata and the"xyz_string"(raw XYZ output)
📁 Included Data
notebooks/: Notebooks demonstrating the inner workings of the method, including how RDKit, Open Babel, and strainedSMILES2xyz perform in different casesbenchmark/: Benchmarking results — XYZ files generated by different methods and re-optimized using GFN2-xTB
⚙ Requirements
- RDKit ≥ 2025.03.0 (Must be installed via Conda or other method — not available via PyPI)
- ORCA ≥ 6.0 (strongly recommended; used for correction step)
🧪 Example
strainedsmiles2xyz "C1=CCC1" > cyclobutene.xyz
📝 Citation
Coming soon — publication in preparation.
📨 Contact
Maintained by Dennis Svatunek. Contributions and suggestions are welcome.
Release files for strainedsmiles2xyz 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| strainedsmiles2xyz-0.2.3.tar.gz | 47.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| strainedsmiles2xyz-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 82.5 kB
Release files / strainedsmiles2xyz-0.2.3.tar.gz
| Download URL | strainedsmiles2xyz-0.2.3.tar.gz |
|---|---|
| Size | 47.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0840bb64a8ce81e3c0632329e18343ec357b447feff599784e9e01736b41394
|
|
BLAKE2b-256 checksum How to use checksums |
bcbcf9147269354de66a68f8f1e1563b7e20ab9b45e6b3f3a72ba050afbfaab0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.13
|
Release files / strainedsmiles2xyz-0.2.3-py3-none-any.whl
| Download URL | strainedsmiles2xyz-0.2.3-py3-none-any.whl |
|---|---|
| Size | 35.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8ed1bebf51e5aeb11ce94abb182bea9c4f888b995312db4d32d63e13aef32d54
|
|
BLAKE2b-256 checksum How to use checksums |
7a2dc457335d5c0f6dac36b91e4b03f257db7e94c84f9afb43b3ba6255ab79e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.13
|