schrodinger.application.jaguar.html_report.data module

Data structures used by jinja macros in Jaguar report templating

class schrodinger.application.jaguar.html_report.data.ReactionProfileState(label: str, rel_energy_kcal: float | None = None, mol_svg: str | None = None, critical_point_type: CriticalPointType = CriticalPointType.MINIMUM, disconnected_forward: bool = False, link_mol_svg: str | None = None)

Bases: object

A single state (critical point) on a reaction energy profile.

Parameters:
  • label – Display label for this state.

  • rel_energy_kcal – Energy relative to the first state, in kcal/mol.

  • mol_svg – SVG string for the 2D structure image, or None.

  • critical_point_type – The type of this critical point. TS and APPROX_TS both receive transition-state styling; APPROX_TS additionally gets a distinct dashed bar and lighter color.

  • disconnected_forward – Whether the connection between this state and the next is disconnected (no reaction path found).

  • link_mol_svg – SVG string to render centered on the connector line after this state (between this state and the next), or None.

label: str
rel_energy_kcal: float | None = None
mol_svg: str | None = None
critical_point_type: CriticalPointType = 'minimum'
disconnected_forward: bool = False
__init__(label: str, rel_energy_kcal: float | None = None, mol_svg: str | None = None, critical_point_type: CriticalPointType = CriticalPointType.MINIMUM, disconnected_forward: bool = False, link_mol_svg: str | None = None) None
class schrodinger.application.jaguar.html_report.data.TableData(data: list[dict], header_map: dict[str, str] = <factory>, format_map: dict[str, str] = <factory>, align_map: dict[str, str] = <factory>, title: str | None = None, row_classes: list[str] = <factory>)

Bases: object

data: list[dict]
header_map: dict[str, str]
format_map: dict[str, str]
align_map: dict[str, str]
title: str | None = None
row_classes: list[str]
__init__(data: list[dict], header_map: dict[str, str] = <factory>, format_map: dict[str, str] = <factory>, align_map: dict[str, str] = <factory>, title: str | None = None, row_classes: list[str] = <factory>) None
class schrodinger.application.jaguar.html_report.data.ReactionProfileAxisConfig(axis_min: float, axis_max: float, interval: float, ticks: tuple[float, ...] = ())

Bases: object

Pre-computed Y-axis configuration for a reaction energy profile chart.

Parameters:
  • axis_min – Lower bound of the axis range (kcal/mol).

  • axis_max – Upper bound of the axis range (kcal/mol).

  • interval – Tick spacing (kcal/mol).

  • ticks – Tick values within the axis range.

axis_min: float
axis_max: float
interval: float
ticks: tuple[float, ...] = ()
property axis_range: float
__init__(axis_min: float, axis_max: float, interval: float, ticks: tuple[float, ...] = ()) None
schrodinger.application.jaguar.html_report.data.compute_axis_ticks(energies: list[float], target_ticks: int = 5) ReactionProfileAxisConfig

Compute Y-axis range and tick positions for a reaction profile chart.

Parameters:
  • energies – List of energy values (kcal/mol) to cover.

  • target_ticks – Target number of ticks.

Returns:

Axis configuration with range and tick positions.

class schrodinger.application.jaguar.html_report.data.EmbeddedFile(filename: str, content: str, *, human_readable: bool)

Bases: object

A file embedded in an HTML report for inline viewing and download.

Parameters:
  • filename – Display name for the file (e.g. “AutoTS.in”).

  • content – Full text content of the file.

  • human_readable – Whether the file content is intended for human reading. When False, the viewer hides content behind a toggle.

filename: str
content: str
human_readable: bool
classmethod from_path(filepath: str | pathlib.Path, *, human_readable: bool) EmbeddedFile | None

Create an EmbeddedFile by decoding a text file to Unicode. UTF-8 is attempted first because it is deterministic and is the expected format for suite-generated text. If UTF-8 decoding fails, chardet is used as a best-effort fallback for legacy encodings. Only high-confidence guesses are accepted; otherwise the file is skipped as unsupported.

Compressed Maestro files are decompressed to uncompressed Maestro text in memory to avoid appearing as an HTML smuggling payload to virus scanners. Other non-text files are currently unsupported. See inline comments for implementation considerations.

Parameters:
  • filepath – Path to the file to read.

  • human_readable – Whether the file is intended for human reading.

Returns:

An EmbeddedFile with the basename as filename, or None if the file cannot be decoded as text.

__init__(filename: str, content: str, *, human_readable: bool) None
class schrodinger.application.jaguar.html_report.data.EnergyProfileTablePair(states: tuple[ReactionProfileState, ...], axis_config: ReactionProfileAxisConfig, table_rows: tuple[dict, ...], label: str)

Bases: object

Paired reaction-profile diagram and energy table for one energy type.

Parameters:
  • states – Reaction profile states for the diagram.

  • axis_config – Y-axis configuration for the diagram.

  • table_rows – Table data with label, rel, and abs energy values.

  • label – Human-readable label for this energy type.

states: tuple[ReactionProfileState, ...]
axis_config: ReactionProfileAxisConfig
table_rows: tuple[dict, ...]
label: str
__init__(states: tuple[ReactionProfileState, ...], axis_config: ReactionProfileAxisConfig, table_rows: tuple[dict, ...], label: str) None
class schrodinger.application.jaguar.html_report.data.EnergyProfileData(combos: dict[str, EnergyProfileTablePair], energy_types: tuple[dict[str, str], ...], default_type: str, has_free_energy: bool)

Bases: object

Complete energy profile data for the report template.

Parameters:
  • combos – Energy type key to profile/table pair.

  • energy_types – Ordered list of {key, label} dicts for the energy type dropdown.

  • default_type – Key of the initially-selected energy type.

  • has_free_energy – Whether free energy data is available.

combos: dict[str, EnergyProfileTablePair]
energy_types: tuple[dict[str, str], ...]
default_type: str
has_free_energy: bool
__init__(combos: dict[str, EnergyProfileTablePair], energy_types: tuple[dict[str, str], ...], default_type: str, has_free_energy: bool) None
class schrodinger.application.jaguar.html_report.data.CalculationStatus

Bases: StrEnum

Enum of known job statuses. This must be kept in sync with the statuses defined in jinja macros: data/html_report/macros.html

SUCCESS = 'success'
FAILED = 'failed'
CRASHED = 'crashed'
UNKNOWN = 'unknown'