name: structure-generation
description: "Guides agents using datamol to generate and manipulate molecular
structures, including conformers, SASA, alignment, fragmentation, scaffolds,
reactions, attachments, and isomer enumeration."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
Datamol Structure Generation
Use this sub-skill when a task asks to create, enumerate, transform, align, fragment, assemble, scaffold, or react molecular structures with datamol beyond basic molecule conversion.
Route By Task
- Conformers and 3D features: Use
dm.conformers.generate, dm.conformers.cluster, dm.conformers.rmsd, dm.conformers.sasa, dm.conformers.get_coords, dm.conformers.center_of_mass, and dm.conformers.keep_conformers; see workflows and API guidance.
- Alignment and atom ordering: Use
dm.align.template_align, dm.align.auto_align_many, dm.conformers.align_conformers, and dm.reorder_mol_from_template; see workflows and API guidance.
- Fragmentation and assembly: Use
dm.fragment.brics, frag, recap, anybreak, mmpa_cut, break_mol, build, and assemble_fragment_order; see workflows and API guidance.
- Scaffolds and fuzzy scaffolds: Use
dm.to_scaffold_murcko, dm.make_scaffold_generic, dm.strip_mol_to_core, dm.compute_ring_system, and dm.scaffold.fuzzy_scaffolding; see workflows.
- Reactions and attachments: Use
dm.reactions.rxn_from_smarts, apply_reaction, select_reaction_output, is_reaction_ok, can_react, inverse_reaction, convert_attach_to_isotope, num_attachment_points, and open_attach_points; see workflows.
- Isomer enumeration: Use
dm.enumerate_tautomers, dm.enumerate_stereoisomers, dm.count_stereoisomers, dm.enumerate_structisomers, dm.canonical_tautomer, and dm.remove_stereochemistry; see workflows.
Boundaries
- For SMILES parsing, molecule cleaning, neutralization, salt removal, or SDF/dataframe I/O, use the sibling
molecule-io-prep skill before this one.
- For fingerprints, pairwise distances, clustering generated sets by similarity, or diversity selection, use the sibling
fingerprints-similarity skill after structure generation.
- For drawing products, conformers, highlights, or scaffold grids, use the sibling
visualization-utilities skill after this one.
Safety Defaults
- Convert inputs with
dm.to_mol, then sanitize or standardize through molecule-io-prep before reactions, conformers, and enumeration.
- Bound expensive operations with small
n_confs, n_variants, depth, timeout_seconds, max_n_mols, rms_cutoff, and num_threads=1 until the workflow is proven.
- Treat reaction SMARTS, structural isomer enumeration, fuzzy scaffolds, MCS alignment, and fragment assembly as potentially combinatorial.
- See troubleshooting when embedding fails, no conformers exist, template matches are ambiguous, reactions return no products, or enumeration grows too large.
Bundled Smoke Script
Run a deterministic tiny exercise of conformer generation, scaffold extraction, reaction application, and isomer counting:
python sub-skills/structure-generation/scripts/structure_generation_smoke.py --help
python sub-skills/structure-generation/scripts/structure_generation_smoke.py
The script prints JSON and uses only local CPU chemistry operations.