pKa
pKa workflow - predict acid/base dissociation constants.
pKaMicrostate
dataclass
pKaMicrostate(atom_index: int, pka: float, smiles: str | None = None, delta_g: float | None = None, uncertainty: float | None = None)
Microstate from a pKa calculation.
Available fields depend on the pKa method used. 3D structure-based methods (aimnet2_wagen2024, gxtb_wagen2026) populate delta_g. SMILES-based methods (chemprop_nevolianis2025, starling) populate smiles; chemprop_nevolianis2025 also populates uncertainty.
Attributes:
| Name | Type | Description |
|---|---|---|
atom_index |
int
|
index of the protonation site atom |
pka |
float
|
predicted pKa value |
smiles |
str | None
|
SMILES of the microstate (SMILES-based methods only) |
delta_g |
float | None
|
free energy of (de)protonation in kcal/mol (3D structure-based methods only) |
uncertainty |
float | None
|
prediction uncertainty (chemprop_nevolianis2025 only) |
pKaResult
dataclass
pKaResult(workflow_data: dict[str, Any], workflow_type: str, workflow_uuid: str, complete: bool = True)
Bases: WorkflowResult
Result from a pKa workflow.
conjugate_acids
property
List of conjugate acid microstates with pKa values.
conjugate_bases
property
List of conjugate base microstates with pKa values.
structures
property
Optimized structure calculations (lazily fetched).
Only available for 3D structure-based methods (aimnet2_wagen2024, gxtb_wagen2026).
Note
Makes one API call per structure on first access. Results are cached. Call clear_cache() to refresh.
Raises:
| Type | Description |
|---|---|
ValueError
|
method is SMILES-based (chemprop_nevolianis2025, starling) |
submit_pka_workflow
submit_pka_workflow(initial_molecule: StructureInput | SMILES, pka_range: tuple[int, int] = (2, 12), method: Literal['aimnet2_wagen2024', 'gxtb_wagen2026', 'chemprop_nevolianis2025', 'starling'] = 'gxtb_wagen2026', solvent: SolventInput = 'water', deprotonate_elements: list[int] | None = None, protonate_elements: list[int] | None = None, mode: Mode = Mode.CAREFUL, name: str = 'pKa 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[pKaResult]
Submits a pKa workflow to the API.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
initial_molecule
|
StructureInput | SMILES
|
molecule to calculate pKa for. Accepts Molecule, stjames.Molecule, RDKit Mol, dict, or SMILES string |
required |
pka_range
|
tuple[int, int]
|
range of pKa values to calculate |
(2, 12)
|
method
|
Literal['aimnet2_wagen2024', 'gxtb_wagen2026', 'chemprop_nevolianis2025', 'starling']
|
algorithm used to compute pKa values:
- |
'gxtb_wagen2026'
|
solvent
|
SolventInput
|
solvent in which pKa values will be computed |
'water'
|
deprotonate_elements
|
list[int] | None
|
elements to deprotonate (atomic numbers) |
None
|
protonate_elements
|
list[int] | None
|
elements to protonate (atomic numbers) |
None
|
mode
|
Mode
|
mode to run the calculation in |
CAREFUL
|
name
|
str
|
name of the workflow |
'pKa 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[pKaResult]
|
submitted workflow |
Raises:
| Type | Description |
|---|---|
ValueError
|
method/input type mismatch, or chemprop used with protonate_elements |
HTTPStatusError
|
request to the API fails |