name: openbabel
description: >
A versatile CLI tool for converting molecular file formats, generating 3D atomic coordinates from SMILES, rendering 2D chemical structure images, and preparing or extracting structures for computational workflows.
USE WHEN you need to convert between chemical file formats (e.g., xyz, pdb, mol, smi, gjf), generate 3D structures from SMILES using --gen3d, render molecule images (PNG/SVG), or extract geometries from simulation logs to build new inputs.
compatibility: Requires uv and internet access (uses uvx --from openbabel-wheel obabel ...).
license: LGPL-3.0-or-later
metadata:
author: njzjz-bot
version: '1.1'
repository: https://github.com/openbabel/openbabel
Open Babel
This skill provides practical Open Babel command patterns for common chemistry data tasks.
Quick Start
Check installation through uvx:
uvx --from openbabel-wheel obabel -V
Typical conversion syntax:
uvx --from openbabel-wheel obabel input.ext -i<input_format> -o<output_format> -O output.ext
Core Tasks
1) File format conversion
Convert XYZ to PDB:
uvx --from openbabel-wheel obabel C.xyz -ixyz -opdb -O C.pdb
Open Babel supports a large set of chemistry formats (e.g., xyz, mol, mol2, pdb, smi, Gaussian gjf/log/fchk, etc.).
2) Build structures from SMILES
Generate methane (3D coordinates required):
uvx --from openbabel-wheel obabel -:C --gen3d -omol -O C.mol
Generate a single carbon atom:
uvx --from openbabel-wheel obabel -:[C] --gen3d -omol -O C.mol
Generate methyl radical:
uvx --from openbabel-wheel obabel -:[CH3] --gen3d -omol -O CH3.mol
Important: quote SMILES when they contain brackets or special characters.
Equivalent explicit form:
uvx --from openbabel-wheel obabel -:"[C]([H])([H])[H]" --gen3d -omol -O CH3.mol
3) Export SMILES from one or more structure files
uvx --from openbabel-wheel obabel C.mol C.mol2 C.pdb C.xyz --osmi -O C.smi
4) Render 2D structure images
Generate PNG:
uvx --from openbabel-wheel obabel -:"C([C@@H](C(=O)O)N)S" -opng -O cys.png
Generate SVG:
uvx --from openbabel-wheel obabel -:"C([C@@H](C(=O)O)N)S" -osvg -O cys.svg
Convert Gaussian log directly to image:
uvx --from openbabel-wheel obabel phosphate.log -ilog -opng -O phosphate.png
5) Gaussian workflow helper
Generate Gaussian input from SMILES, then patch header with sed:
uvx --from openbabel-wheel obabel -:CC --gen3d -ogjf | sed "1c %nproc=28\n#opt b3lyp/6-31g(d,p)" > CC.gjf
Generate next-step input from a previous Gaussian log:
uvx --from openbabel-wheel obabel CC.log -ilog -ogjf | sed "1c %nproc=28\n#freq b3lyp/6-31g(d,p)" > CC2.gjf
Agent Checklist
When using this skill for users:
- Confirm source file(s) and desired target format.
- Prefer explicit
-iand-oformat flags for reproducibility. - Add
--gen3dwhen converting SMILES to coordinate-bearing structures. - Quote SMILES strings that contain brackets/parentheses.
- For Gaussian workflows, verify route section and resource lines (
%nproc, method/basis) after generation. - Use
uvx --from openbabel-wheel obabel ...consistently to minimize local dependency setup.
References
- Open Babel project: https://openbabel.org/
- Open Babel GitHub: https://github.com/openbabel/openbabel
- openbabel-wheel package: https://pypi.org/project/openbabel-wheel/