Configuration & Integrations¶
Global settings, RDKit interoperability, 3D conformers, and pandas support.
Configuration Reference¶
import chython
# 2D layout engine
chython.clean2d_engine = 'smilesdrawer' # default
# Options: 'rdkit', 'smilesdrawer', 'cdk', 'obabel', 'indigo'
# 3D conformer engine
chython.conformer_engine = 'rdkit' # default
# Options: 'rdkit', 'cdpkit'
# Neural AAM device (legacy, unused since migration to ONNX)
chython.torch_device = 'cpu' # kept for backward compatibility
# Java JAR paths (CDK, OPSIN)
chython.class_paths = ['/path/to/cdk.jar', '/path/to/opsin.jar']
# Or via environment variables: CDK_PATH, OPSIN_PATH
RDKit Interoperability¶
from chython import smiles, MoleculeContainer
mol = smiles('c1ccccc1')
# Convert to RDKit Mol
rdkit_mol = mol.to_rdkit()
# Convert from RDKit Mol
mol_back = MoleculeContainer.from_rdkit(rdkit_mol)
3D Conformers¶
import chython
chython.conformer_engine = 'rdkit' # or 'cdpkit'
mol = smiles('CCO')
# Generate conformer (stored internally)
# Access via mol._conformers after generation
# Write 3D coordinates to SDF
from chython import SDFWrite
with SDFWrite('output_3d.sdf') as writer:
writer.write(mol, write3d=0) # conformer index
Pandas Integration¶
import pandas as pd
from chython import smiles, patch_pandas
# Call once to enable molecule display in DataFrames
patch_pandas()
df = pd.DataFrame({
'mol': [smiles('CCO'), smiles('c1ccccc1')],
'name': ['ethanol', 'benzene'],
})
# Molecules display correctly in DataFrame