NMR
Completed results expose both chemical shifts and typed J-coupling predictions through
result.predicted_couplings.
NMR workflow - predict Nuclear Magnetic Resonance spectra.
NMRCoupling
dataclass
NMRCoupling(
nuclei: tuple[int, int],
atom_pairs: tuple[tuple[int, int], ...],
bond_distance: int,
coupling: float,
uncertainty: float | None,
conformer_deviation: float | None,
model: str,
)
Predicted scalar coupling between symmetry-equivalent atom pairs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nuclei
|
tuple[int, int]
|
atomic numbers of the coupled nuclei. |
required |
atom_pairs
|
tuple[tuple[int, int], ...]
|
symmetry-equivalent pairs of 0-indexed atom indices. |
required |
bond_distance
|
int
|
number of bonds separating the nuclei. |
required |
coupling
|
float
|
predicted coupling constant, in Hz. |
required |
uncertainty
|
float | None
|
model uncertainty, in Hz. |
required |
conformer_deviation
|
float | None
|
standard deviation across conformers, in Hz. |
required |
model
|
str
|
model used for the prediction. |
required |
NMRResult
dataclass
NMRResult(
workflow_data: dict[str, Any],
workflow_type: str,
workflow_uuid: str,
complete: bool = True,
)
Bases: WorkflowResult
Result from a Nuclear Magnetic Resonance (NMR) workflow.
chemical_shifts
property
Per-atom NMR chemical shifts (Boltzmann-weighted ensemble average).
Index corresponds to atom index in the molecule. Returns None for atoms without NMR-active nuclei (e.g., oxygen).
per_conformer_chemical_shifts
property
Chemical shifts for each conformer before Boltzmann averaging.
Outer list is per-conformer, inner list is per-atom.
boltzmann_weights
property
Boltzmann weights for each conformer (sum to 1.0).
predicted_peaks
property
Predicted NMR peaks grouped by nucleus atomic number.
Keys are atomic numbers (1 for 1H, 6 for 13C). Peaks with equivalent atoms are merged and shifts are averaged.
predicted_couplings
property
Predicted scalar coupling constants.
submit_nmr_workflow
submit_nmr_workflow(
initial_molecule: StructureInput,
solvent: SolventInput = "chloroform",
do_csearch: bool = False,
do_optimization: bool = True,
name: str = "NMR 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
Submits a Nuclear Magnetic Resonance (NMR) prediction workflow to the API.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
initial_molecule
|
StructureInput
|
Molecule to predict NMR spectra for. |
required |
solvent
|
SolventInput
|
Solvent for NMR calculation (default: chloroform). Must be an NMR-supported solvent (see rowan.NMR_SUPPORTED_SOLVENTS); others raise ValueError. A solvated AIMNet2 singlepoint reweights the conformer ensemble, using CPCM-X where supported and otherwise ALPB. |
'chloroform'
|
do_csearch
|
bool
|
Whether to perform a conformational search. Requires do_optimization. |
False
|
do_optimization
|
bool
|
Whether to optimize conformer geometries. |
True
|
name
|
str
|
Name of the workflow. |
'NMR Workflow'
|
folder_uuid
|
str | None
|
UUID of the folder to store the workflow in. |
None
|
folder
|
Folder | None
|
Folder object to store the workflow in. |
None
|
max_credits
|
int | None
|
Maximum number of credits to use for the workflow. |
None
|
webhook_url
|
str | None
|
URL that Rowan will POST to when the workflow completes. |
None
|
is_draft
|
bool
|
If True, submit the workflow as a draft without starting execution. |
False
|
Returns:
| Type | Description |
|---|---|
Workflow
|
Workflow object representing the submitted workflow. |
Raises:
| Type | Description |
|---|---|
requests.HTTPError
|
if the request to the API fails. |