Skip to content

Solubility

Solubility workflow - predict molecular solubility in various solvents.

SolubilityValue dataclass

SolubilityValue(temperature: float, solubility: float, uncertainty: float | None = None)

Solubility measurement at a specific temperature.

Attributes:

Name Type Description
temperature float

temperature in Kelvin

solubility float

solubility in log(mol/L)

uncertainty float | None

uncertainty in the solubility prediction

SolubilityEntry dataclass

SolubilityEntry(solvent: str, values: tuple[SolubilityValue, ...])

Solubility results for a single solvent.

Attributes:

Name Type Description
solvent str

solvent SMILES

values tuple[SolubilityValue, ...]

solubility values at each temperature

SolubilityResult dataclass

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

Bases: WorkflowResult

Result from an aqueous-solubility workflow.

solubilities property

solubilities: list[SolubilityEntry]

Solubility results per solvent, with each value paired to its temperature.

submit_solubility_workflow

submit_solubility_workflow(initial_smiles: SMILES, method: Literal['fastsolv', 'kingfisher', 'esol'] = 'fastsolv', solvents: list[str] | None = None, temperatures: list[float] | None = None, name: str = 'Solubility 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[SolubilityResult]

Submits a solubility workflow to the API.

Parameters:

Name Type Description Default
initial_smiles SMILES

molecule with SMILES for solubility prediction

required
method Literal['fastsolv', 'kingfisher', 'esol']

solubility prediction method: - "fastsolv": ML-based solid solubility. Supports arbitrary solvents and temperatures. - "kingfisher": ML-based aqueous solubility. Water only, 298.15K only. - "esol": ESOL regression for aqueous solubility. Water only, 298.15K only

'fastsolv'
solvents list[str] | None

list of solvent names or SMILES. Common names like "ethanol", "water", "thf" are recognized (see COMMON_SOLVENTS). For fastsolv, any solvent SMILES is accepted. For kingfisher/esol, must be ["water"] or ["O"]

None
temperatures list[float] | None

list of temperatures in Kelvin. For fastsolv, any temperatures. For kingfisher/esol, must be [298.15] (room temperature)

None
name str

name of the workflow

'Solubility 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[SolubilityResult]

submitted workflow

Raises:

Type Description
ValueError

molecule has no SMILES, or solvents/temperatures are incompatible with the method

HTTPStatusError

request to the API fails

submit_solubility_workflow_group

submit_solubility_workflow_group(initial_smileses: list[SMILES], method: Literal['fastsolv', 'kingfisher', 'esol'] = 'fastsolv', solvents: list[str] | None = None, temperatures: list[float] | None = None, names: list[str] | None = None, folder_uuid: str | None = None, folder: Folder | None = None, max_credits: int | None = None, webhook_url: str | None = None) -> list[Workflow]

Submit a batch of solubility workflows as one submission group.

All molecules use the same method, solvents, and temperatures. A batch may contain up to 5,000 molecules. Each molecule is represented by its own Workflow, and all returned workflows share a submission_group_uuid. Use batch_poll_status() to monitor their UUIDs together and retrieve_workflows() to retrieve their records.

Parameters:

Name Type Description Default
initial_smileses list[SMILES]

nonempty list of up to 5,000 solute SMILES strings

required
method Literal['fastsolv', 'kingfisher', 'esol']

solubility prediction method

'fastsolv'
solvents list[str] | None

solvent names or SMILES strings

None
temperatures list[float] | None

temperatures in Kelvin

None
names list[str] | None

optional workflow names; when provided, one per SMILES string

None
folder_uuid str | None

UUID of the folder in which to store the workflows

None
folder Folder | None

folder in which to store the workflows

None
max_credits int | None

maximum credits to use per workflow

None
webhook_url str | None

URL Rowan will POST to when each workflow completes

None

Returns:

Type Description
list[Workflow]

submitted workflows in one submission group