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.
conformer_uuids
property
List of conformer UUIDs (nested for multistage optimization).
radii_of_gyration
property
Radius of gyration for each conformer (A), None where it failed.
sasa
property
Solvent accessible surface area for each conformer (A^2), None where it failed.
polar_sasa
property
Polar solvent accessible surface area for each conformer (A^2), None where it failed.
dipoles
property
Dipole moment magnitude about the center of mass for each conformer (Debye).
None where the method reports no dipole.
ensemble_properties
property
Ensemble properties weighted by boltzmann_weights.
Each property is averaged over the conformers that have it: SASA, polar SASA, Rg,
the root-mean-square dipole (Debye), and per-atom Mulliken charges. When the run
computed them, it also holds stick spectra with every conformer's lines, each
intensity scaled by its conformer's population: excitation_energies (Hartree) with
oscillator_strengths (UV-vis) and rotatory_strengths (ECD), and
vibrational_frequencies (cm^-1) with ir_intensities (km/mol). Pass them to
rowan.broaden_spectrum for the spectrum. Rotatory strengths are omitted when the
conformers differ in stereochemistry, since mixing enantiomers cancels the ECD signal.
boltzmann_weights
property
Population of each conformer at the weighting temperature (sum to 1.0).
From free energies when every conformer has frequencies, else from ground-state energies. Empty for workflows run before weights were reported.
weighting_temperature
property
Temperature of boltzmann_weights and ensemble_properties (K).
get_energies
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
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
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, frequencies: bool = False, weighting_temperature: float = 298.15, 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_moleculeusingconf_gen_settings, then optimize, deduplicate, and rank them. - Screen-only: pass
initial_conformers(and leaveconf_gen_settingsasNone) 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
|
None
|
conf_gen_settings
|
ConformerGenSettings | None
|
conformer generation method and settings. Defaults to
|
None
|
final_method
|
Method | str
|
method to use for the final optimization. Ignored if
|
'aimnet2_wb97md3'
|
solvent
|
SolventInput
|
solvent to use for the final optimization. Ignored if
|
None
|
transition_state
|
bool
|
whether to optimize the transition state. Ignored
if |
False
|
frequencies
|
bool
|
compute vibrational frequencies of each conformer at the optimization
level, for the ensemble IR spectrum. Ignored if |
False
|
weighting_temperature
|
float
|
temperature for the conformer populations, in Kelvin. With frequencies, populations use free energies at this temperature |
298.15
|
multistage_opt_settings
|
MultiStageOptSettings | None
|
optimization stages and singlepoint settings
for ranking conformers. When provided, takes precedence over
|
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 |
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):
|
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 |