Installs into .claude/skills of the current project.
Are you the author of Molecules And Io?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-molecules-and-io)
---
name: molecules-and-io
description: "Build, inspect, convert, serialize, charge, conformer-generate,
visualize, and validate OpenFF Molecule objects."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
---
# OpenFF Molecules and IO
Use this sub-skill when a task is centered on `openff.toolkit.Molecule` creation, inspection, conversion, serialization, conformer generation, partial charges, stereochemistry or tautomer enumeration, SMARTS matching, graph/isomorphism checks, or molecule visualization.
## Start Here
- Read `references/api-reference.md` for verified constructor, conversion, matching, conformer, charge, and visualization API details.
- Read `references/workflows.md` for self-contained recipes covering SMILES, mapped SMILES, files, conformers, charges, stereochemistry, tautomers, SMARTS, round-trips, and visualization.
- Read `references/troubleshooting.md` when molecule creation, file IO, toolkit backend, stereochemistry, partial charge, conformer, or PDB handling fails.
- Run `scripts/smoke_molecule_workflow.py --help` to inspect the bundled smoke workflow, then try a tiny molecule with `--smiles CCO`.
## Best-Fit Tasks
- Create molecules from SMILES or mapped SMILES and preserve or validate atom ordering.
- Read or write small-molecule `SDF`, `MOL`, `SMI`, or `PDB` outputs through `Molecule.from_file()` and `Molecule.to_file()`.
- Convert between OpenFF `Molecule`, RDKit molecules, and OpenEye molecules when the corresponding backend is available.
- Generate conformers, assign supported molecule-level partial charges, enumerate stereoisomers or tautomers, and inspect the resulting molecules.
- Match SMARTS patterns, compare molecules by isomorphism, export a NetworkX graph, or visualize molecules in notebooks.
## Boundaries
- For multi-molecule systems, `Topology.from_molecules()`, `Topology.from_pdb()`, `Topology.to_file()`, hierarchy iteration, OpenMM/MDTraj conversion, or system export, use `../topology-and-systems/SKILL.md`.
- For `ForceField` loading, SMIRNOFF parameter assignment, `create_interchange()`, `create_openmm_system()`, or parameter handler modification, use `../smirnoff-force-fields/SKILL.md`.
- For optional toolkit installation, backend registry ordering, wrapper availability, or advanced toolkit selection policy, use `../toolkit-backends/SKILL.md`.
## Safe Defaults
- Prefer `Molecule.from_smiles(smiles, allow_undefined_stereo=False)` when stereochemistry matters; explicitly explain any fallback to `allow_undefined_stereo=True`.
- Prefer `Molecule.from_mapped_smiles()` for atom-order-sensitive work; ordinary `from_smiles()` stores atom maps but does not use them for ordering.
- Prefer `SDF` for file round-trips that need molecular graph information; avoid treating bare `PDB` or `XYZ` as sufficient graph sources.
- In environments with RDKit and BuiltIn wrappers only, expect `RDKit` conformers and `mmff94`/`gasteiger` charges plus BuiltIn `zeros`/`formal_charge`; do not promise OpenEye, AmberTools, or NAGL-only methods.