Universal representation conversion
Convert explicit molecular and reaction formats with visible preservation checks.
Choose formats explicitly
Use MCP convert_representation or POST /v1/chemistry/convert-representation:
{"data":"C[C@H](O)Cl","input_format":"smiles","output_format":"sdf","allow_lossy":false}| Input formats | Output formats |
|---|---|
smiles, inchi, mol, sdf | smiles, inchi, inchikey, mol, mol_v3000, sdf, formula, unicode_formula |
reaction_smiles, rxn | reaction_smiles, rxn, rxn_v3000, formula, unicode_formula |
Do not guess a format from a chemical name. A formula or InChIKey cannot uniquely reconstruct a molecular structure, so these are output projections rather than structure-input formats. No external structure-name lookup is implied.
Preserve identity and detect losses
The result includes output, record_count, per-record canonical structures, and preservation checks for molecular graph, stereochemistry, isotopes, charge, atom mapping, properties and coordinates. Inspect lossy, warnings and limitations.
The default allow_lossy:false rejects known information loss. Set it to true only for a deliberate projection, such as a formula or a conversion dropping coordinates or SDF properties. Explicit permission does not claim the target format can represent the lost data.
from cyberrxn import Client
with Client() as client:
result = client.convert_representation(
"CCO", input_format="smiles", output_format="unicode_formula", allow_lossy=True
)
print(result.output)import { CyberRXN } from 'cyberrxn';
const client = new CyberRXN();
const result = await client.convertRepresentation('CCO', {
inputFormat: 'smiles', outputFormat: 'inchi', allowLossy: false,
});
console.log(result.output);Molecule collections and reactions
Multi-record SDF is bounded to 32 records and 2000 atoms total. SMILES/InChI output retains separate records on separate lines. A multi-record collection cannot fit into one MOL record; use SDF. Reaction conversion preserves participants, agents, multiplicities and atom mapping when the formats permit it.
Wildcard fragments such as *CC* can be converted structurally. MOL/SDF polymer substance groups (including SRU) are explicitly rejected rather than expanded into a fabricated finite molecule. They do not define a finite polymer molecular formula or a polymerization prediction. Polymer boundaries.
For a quick readable rendering of existing SMILES, convert_smiles / POST /v1/chemistry/convert returns ASCII and Unicode formulae plus optional InChI/InChIKey. Formula rendering loses structural/isomer identity; retain canonical SMILES alongside the display.
RXN input with a nonempty name/comment header or trailing payload is rejected when those metadata cannot be retained. allow_lossy must be a JSON boolean, not a string or number.