Skip to content

Conformer Search

Conformer-search workflow - find low-energy molecular conformations.

ConformerSearchResult dataclass

ConformerSearchResult(workflow_data: dict[str, Any], workflow_type: str, workflow_uuid: str, complete: bool = True)

Bases: WorkflowResult

Result from a conformer-search workflow.

num_conformers property

num_conformers: int

Number of conformers found.

conformer_uuids property

conformer_uuids: list[list[str | None]]

List of conformer UUIDs (nested for multistage optimization).

radii_of_gyration property

radii_of_gyration: list[float]

Radius of gyration for each conformer (A).

sasa property

sasa: list[float]

Solvent accessible surface area for each conformer (A^2).

polar_sasa property

polar_sasa: list[float]

Polar solvent accessible surface area for each conformer (A^2).

get_energies

get_energies(relative: bool = False) -> list[float]

Get conformer energies.

Parameters:

Name Type Description Default
relative bool

return relative energies in kcal/mol (relative to the lowest energy conformer). If False (default), return absolute energies in Hartree

False

Returns:

Type Description
list[float]

list of conformer energies ordered by energy (lowest first)

get_conformers

get_conformers(n: int | None = None) -> list[Molecule]

Fetch conformer molecules.

Parameters:

Name Type Description Default
n int | None

number of conformers to fetch (default: all). Conformers are ordered by energy, so n=5 returns the 5 lowest-energy conformers

None

Returns:

Type Description
list[Molecule]

molecules

Note

Makes one API call per conformer.

get_conformer

get_conformer(index: int, stage: int = -1) -> Calculation

Fetch a conformer's calculation data by index.

Note

Makes one API call per conformer on first access. Results are cached. Call clear_cache() to refresh.

Parameters:

Name Type Description Default
index int

conformer index (0-based)

required
stage int

optimization stage (-1 for final stage)

-1

Returns:

Type Description
Calculation

calculation object with molecule and energy data

Raises:

Type Description
IndexError

index is out of range

ValueError

conformer UUID is None

submit_conformer_search_workflow

submit_conformer_search_workflow(initial_molecule: StructureInput | SMILES | None = None, conf_gen_settings: ConformerGenSettings | None = None, final_method: Method | str = 'aimnet2_wb97md3', solvent: SolventInput = None, transition_state: bool = False, multistage_opt_settings: MultiStageOptSettings | None = None, conformer_clustering_settings: ConformerClusteringSettings | None = None, initial_conformers: Sequence[StructureInput] | None = None, name: str = 'Conformer Search Workflow', folder_uuid: str | None = None, folder: Folder | None = None, max_credits: int | None = None, webhook_url: str | None = None, is_draft: bool = False) -> Workflow[ConformerSearchResult]

Submits a conformer-search workflow to the API.

Runs in one of two modes:

  • Generate (default): build conformers from initial_molecule using conf_gen_settings, then optimize, deduplicate, and rank them.
  • Screen-only: pass initial_conformers (and leave conf_gen_settings as None) to skip generation and run only optimize / deduplicate / rank on conformers you already have. Useful when geometries come from another tool (RDKit, CREST, OMEGA), a crystal or MD ensemble, or a previous workflow, and you want consistent optimized energies and a deduplicated ranked ensemble.

Parameters:

Name Type Description Default
initial_molecule StructureInput | SMILES | None

molecule to perform the conformer search on (omit when using initial_conformers). A 3D structure for any generator; a SMILES string is also accepted when conf_gen_settings is ETKDGSettings or OpenConfSettings (which build geometry from topology)

None
conf_gen_settings ConformerGenSettings | None

conformer generation method and settings. Defaults to OpenConfSettings(). Available options (importable directly from rowan):

  • ETKDGSettings -- RDKit ETKDG, fast, good for most small molecules (SMILES ok)
  • OpenConfSettings -- OpenConf generator (SMILES ok)
  • iMTDGCSettings -- CREST iMTD-GC metadynamics, more thorough (3D structure only)
  • MonteCarloMultipleMinimumSettings -- MCMM conformer search (3D structure only)
None
final_method Method | str

method to use for the final optimization. Ignored if multistage_opt_settings is provided

'aimnet2_wb97md3'
solvent SolventInput

solvent to use for the final optimization. Ignored if multistage_opt_settings is provided

None
transition_state bool

whether to optimize the transition state. Ignored if multistage_opt_settings is provided

False
multistage_opt_settings MultiStageOptSettings | None

optimization stages and singlepoint settings for ranking conformers. When provided, takes precedence over final_method / solvent / transition_state. When omitted, an MSO is built from those three params. Constraints remain active during conformer generation, but are omitted from transition-state refinement stages

None
conformer_clustering_settings ConformerClusteringSettings | None

cluster the generated ensemble (ReSCoSS k-means on 3D-shape descriptors) and keep only representative conformers for downstream optimization. Not supported with initial_conformers

None
initial_conformers Sequence[StructureInput] | None

pre-generated 3D conformers to optimize, deduplicate, and rank directly, skipping conformer generation (screen-only mode). Requirements (all enforced):

  • mutually exclusive with initial_molecule
  • conf_gen_settings must be None
  • every conformer must be a real 3D structure (no SMILES)
  • every conformer must be the same molecule with identical atom ordering -- conformers are compared atom-by-atom during deduplication, so atom i must be the same atom in every conformer. Read them from one multi-conformer source (one RDKit mol, an SDF, an MD trajectory) rather than assembling them separately
None
name str

name of the workflow

'Conformer Search Workflow'
folder_uuid str | None

UUID of the folder to place the workflow in

None
folder Folder | None

destination folder

None
max_credits int | None

maximum credits for the workflow

None
webhook_url str | None

URL that Rowan will POST to when the workflow completes

None
is_draft bool

save as a draft without starting execution

False

Returns:

Type Description
Workflow[ConformerSearchResult]

submitted workflow

Raises:

Type Description
HTTPStatusError

request to the API fails