Skip to main content

strainedSMILES2xyz

PyPI version

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
)
  • mol is an RDKit Mol object
  • info is 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 cases
  • benchmark/: 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)

Source distribution for strainedsmiles2xyz 0.2.3
File Size Uploaded
strainedsmiles2xyz-0.2.3.tar.gz 47.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for strainedsmiles2xyz 0.2.3
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page